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 相关文章推荐
Python写的创建文件夹自定义函数mkdir()
Aug 25 Python
python关闭windows进程的方法
Apr 18 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
python二分查找算法的递归实现方法
May 12 Python
django+js+ajax实现刷新页面的方法
May 22 Python
基于Django contrib Comments 评论模块(详解)
Dec 08 Python
python把转列表为集合的方法
Jun 28 Python
django 捕获异常和日志系统过程详解
Jul 18 Python
Python使用Matlab命令过程解析
Jun 04 Python
Python如何读写二进制数组数据
Aug 01 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
详解Python为什么不用设计模式
Jun 24 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
地摊中国 - 珍藏老照片
2020/08/18 杂记
改变Apache端口等配置修改方法
2008/06/05 PHP
php gzip压缩输出的实现方法
2013/04/27 PHP
jQuery基础框架浅入剖析
2012/12/27 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
将form表单中的元素转换成对象的方法适用表单提交
2014/05/02 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
微信小程序利用button控制条件标签的变量问题
2020/03/15 Javascript
vue中h5端打开app(判断是安卓还是苹果)
2021/02/26 Vue.js
Python批量修改文件后缀的方法
2014/01/26 Python
Python图算法实例分析
2016/08/13 Python
深入浅出分析Python装饰器用法
2017/07/28 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python中Apriori算法实现讲解
2017/12/10 Python
PyTorch的torch.cat用法
2020/06/28 Python
Python爬虫爬取糗事百科段子实例分享
2020/07/31 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
经典c++面试题五
2014/12/17 面试题
办公室保洁员岗位职责
2013/12/02 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
给上级领导的感谢信
2015/01/22 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
MySQL基础(一)
2021/04/05 MySQL
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技