python的格式化输出(format,%)实例详解


Posted in Python onJune 01, 2018

皇城PK

Python中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢?

自从Python2.6引入了format这个格式化字符串的方法之后,我认为%还是format这根本就不算个问题。不信你往下看。

# 定义一个坐标值
c = (250, 250)
# 使用%来格式化
s1 = "敌人坐标:%s" % c

上面的代码很明显会抛出一个如下的TypeError:

TypeError: not all arguments converted during string formatting

像这类格式化的需求我们需要写成下面丑陋的格式才行:

# 定义一个坐标值
c = (250, 250)
# 使用%丑陋的格式化...
s1 = "敌人坐标:%s" % (c,)

而使用format就不会存在上面的问题:

# 定义一个坐标值
c = (250, 250)
# 使用format格式化
s2 = "敌人坐标:{}".format(c)

很显然,上面这一个理由就已经足够让你在以后的项目中使用format了。

新特性

在Python3.6中加入了 f-strings :

In[1]: name = "Q1mi"
In[2]: age = 18
In[3]: f"My name is {name}.I'm {age}"
Out[3]: "My name is Q1mi.I'm 18"

常用的format用法

通过位置

In[1]: data = ["Q1mi", 18]
In[2]: "Name:{0}, Age:{1}".format(*data)
Out[2]: 'Name:Q1mi, Age:18'

通过关键字

In[1]: data = {"name": "Q1mi", "age": 18}
In[2]: "Name:{name}, Age:{age}".format(**data)
Out[2]: 'Name:Q1mi, Age:18'

通过对象属性

In[1]: class Person(object):
  ...:   def __init__(self, name, age):
  ...:     self.name = name
  ...:     self.age = age
  ...:   def __str__(self):   
  ...:     return "This guy is {self.name}, {self.age} years old.".format(self=self)
  ...:   
In[2]: p = Person("Q1mi", 18)
In[3]: str(p)
Out[3]: 'This guy is Q1mi, 18 years old.'

通过下标

In[1]: "{0[0]} is {0[1]} years old.".format(data)
Out[1]: 'Q1mi is 18 years old.'

填充与对齐

填充常跟对齐一起使用

^、<、>分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充。

In[1]: "{:>10}".format('18')
Out[1]: '    18'
In[2]: "{:0>10}".format('18')
Out[2]: '0000000018'
In[3]: "{:A>10}".format('18')
Out[3]: 'AAAAAAAA18

补充一个字符串自带的zfill()方法:

Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0。

zfill()方法语法:str.zfill(width)

参数width指定字符串的长度。原字符串右对齐,前面填充0。

返回指定长度的字符串。

In[1]: "18".zfill(10)
Out[1]: '0000000018'

精度与类型f

精度常跟类型f一起使用。

In[1]: "{:.2f}".format(3.1415926)
Out[1]: '3.14'

其中.2表示长度为2的精度,f表示float类型。

其他进制

主要就是进制了,b、d、o、x分别是二进制、十进制、八进制、十六进制。

In[1]: "{:b}".format(18)
Out[1]: '10010'
In[2]: "{:d}".format(18)
Out[2]: '18'
In[3]: "{:o}".format(18)
Out[3]: '22'
In[4]: "{:x}".format(18)
Out[4]: '12'

千位分隔符

In[1]: "{:,}".format(1234567890)
Out[1]: '1,234,567,890'

总结

以上所述是小编给大家介绍的python的格式化输出(format,%)实例详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
10款最好的Web开发的 Python 框架
Mar 18 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
python实现感知器
Dec 19 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
Jun 23 Python
Python lambda函数基本用法实例分析
Mar 16 Python
Python split() 函数拆分字符串将字符串转化为列的方法
Jul 16 Python
python如何提取英语pdf内容并翻译
Mar 03 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
Python计算信息熵实例
Jun 18 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
Jun 01 #Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 #Python
Python中if elif else及缩进的使用简述
May 31 #Python
python基于物品协同过滤算法实现代码
May 31 #Python
python写入并获取剪切板内容的实例
May 31 #Python
python3实现基于用户的协同过滤
May 31 #Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 #Python
You might like
PHP连接SQLServer2005方法及代码
2013/12/26 PHP
php缓冲输出实例分析
2015/01/05 PHP
php使用GD创建保持宽高比缩略图的方法
2015/04/17 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
mui框架移动开发初体验详解
2017/10/11 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
2018/09/15 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
微信小程序基于高德地图查找位置并显示文字
2019/10/30 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python continue继续循环用法总结
2018/06/10 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
Python批量将图片灰度化的实现代码
2020/04/11 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
复古服装:RetroStage
2019/05/10 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
创业计划书中包含的9个方面
2013/12/26 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
工程承诺书怎么写
2014/05/24 职场文书
学校感恩教育活动总结
2014/07/07 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
五年级作文之成长
2019/09/16 职场文书