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实现在无须过多援引的情况下创建字典的方法
Sep 25 Python
python学习之第三方包安装方法(两种方法)
Jul 30 Python
Python编程中对文件和存储器的读写示例
Jan 25 Python
python实现简易版计算器
Jun 22 Python
pandas 数据归一化以及行删除例程的方法
Nov 10 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
python3 反射的四种基本方法解析
Aug 26 Python
python 实现二维列表转置
Dec 02 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
Python如何实现邮件功能
May 27 Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 Python
基于Python正确读取资源文件
Sep 14 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的array_diff()函数在处理大数组时的效率问题
2011/11/27 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
jQuery Autocomplete自动完成插件
2010/07/17 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
js图片处理示例代码
2014/05/12 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
AngularJS实现Input格式化的方法
2016/11/07 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
2019/11/26 Javascript
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Pandas删除数据的几种情况(小结)
2019/06/21 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
优秀学生干部先进事迹材料
2014/05/26 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
志愿者事迹材料
2014/12/26 职场文书
个人年终总结结尾
2015/03/06 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2016年暑期见闻作文
2015/11/25 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS