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实现将绝对URL替换成相对URL的方法
Jun 28 Python
解析Python编程中的包结构
Oct 25 Python
Python理解递归的方法总结
Jan 28 Python
Python3中的bytes和str类型详解
May 02 Python
Python正则表达式匹配数字和小数的方法
Jul 03 Python
Django模板Templates使用方法详解
Jul 19 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
Jul 23 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python实现微信好友的数据分析
Dec 16 Python
Python实现SMTP邮件发送
Jun 16 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
Pytorch使用shuffle打乱数据的操作
May 20 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+DBM的同学录程序(2)
2006/10/09 PHP
php表单提交与$_POST实例分析
2015/01/26 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
jquery+ajax实现直接提交表单实例分析
2016/06/17 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
python日期时间转为字符串或者格式化输出的实例
2018/05/29 Python
python查看模块安装位置的方法
2018/10/16 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
python xlsxwriter模块的使用
2020/12/24 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
介绍下java.util.Arrays类
2012/10/16 面试题
数据保密承诺书
2014/06/03 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
见习报告的格式
2014/10/31 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
借条格式范本
2015/05/25 职场文书
庆七一主持词
2015/06/29 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书
2016年教师节特级教师获奖感言
2015/12/09 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
高二英语教学反思
2016/03/03 职场文书
2019年思想汇报
2019/06/20 职场文书
python scrapy简单模拟登录的代码分析
2021/07/21 Python