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 list转dict示例分享
Jan 28 Python
Python中的Numpy入门教程
Apr 26 Python
Python中操作MySQL入门实例
Feb 08 Python
Django中redis的使用方法(包括安装、配置、启动)
Feb 21 Python
提升Python效率之使用循环机制代替递归函数
Jul 23 Python
详解Django CAS 解决方案
Oct 30 Python
pytorch实现线性拟合方式
Jan 15 Python
如何基于Python实现数字类型转换
Feb 07 Python
利用python画出AUC曲线的实例
Feb 28 Python
详解pandas中iloc, loc和ix的区别和联系
Mar 09 Python
Python中的xlrd模块使用整理
Jun 15 Python
python基于turtle绘制几何图形
Jun 15 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代码重构工具推荐
2014/10/14 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
PHP+MySQL高并发加锁事务处理问题解决方法
2018/04/30 PHP
PHP实现将上传图片自动缩放到指定分辨率,并保持清晰度封装类示例
2019/06/17 PHP
百度Popup.js弹出框进化版 拖拽小框架发布 兼容IE6/7/8,Firefox,Chrome
2010/04/13 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
浅谈javascript的闭包
2017/01/23 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
Vue.2.0.5过渡效果使用技巧
2017/03/16 Javascript
vue使用axios实现文件上传进度的实时更新详解
2017/12/20 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
wxPython实现画图板
2020/08/27 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
2019/12/12 Python
浅析python中的del用法
2020/09/02 Python
澳大利亚婴儿礼品公司:The Baby Gift Company
2018/11/04 全球购物
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
诚信考试承诺书
2014/03/27 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
投资入股协议书
2016/03/22 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js