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编写一个国际象棋AI程序
Nov 28 Python
如何在Python中编写并发程序
Feb 27 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
Apr 19 Python
Python实现的质因式分解算法示例
May 03 Python
django小技巧之html模板中调用对象属性或对象的方法
Nov 30 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python3列表内置方法大全及示例代码小结
May 10 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
python实现双色球随机选号
Jan 01 Python
对python中各个response的使用说明
Mar 28 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 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中time()和mktime()方法的区别
2013/09/28 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
详细分析PHP 命名空间(namespace)
2020/06/30 PHP
checkbox 复选框不能为空
2009/07/11 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
jQuery最佳实践完整篇
2011/08/20 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
script不刷新页面的联动前后代码
2013/09/18 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
JavaScript比较两个对象是否相等的方法
2015/02/06 Javascript
Java File类的常用方法总结
2015/03/18 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
vue中引入mxGraph的步骤详解
2019/05/17 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
js闭包和垃圾回收机制示例详解
2021/03/01 Javascript
[06:13]DOTA2进化论(修改版)
2013/10/08 DOTA
[01:39:42]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
基本公共卫生服务健康教育工作方案
2014/05/22 职场文书
金融与证券专业求职信
2014/06/22 职场文书
教师暑期培训感言
2014/08/15 职场文书
律师授权委托书范本
2014/10/07 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
四则混合运算教学反思
2016/02/23 职场文书