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 08 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
python 批量解压压缩文件的实例代码
Jun 27 Python
python使用递归的方式建立二叉树
Jul 03 Python
使用python3批量下载rbsp数据的示例代码
Dec 20 Python
使用python matplotlib 画图导入到word中如何保证分辨率
Apr 16 Python
python3中for循环踩过的坑记录
Dec 14 Python
Python创建自己的加密货币的示例
Mar 01 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 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简单构造json多维数组的方法示例
2017/06/08 PHP
Js的MessageBox
2006/12/03 Javascript
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
使用jquery组件qrcode生成二维码及应用指南
2015/02/22 Javascript
jQuery随机密码生成的方法
2015/03/09 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解webpack2+React 实例demo
2017/09/11 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
python基础教程之元组操作使用详解
2014/03/25 Python
举例讲解Python中metaclass元类的创建与使用
2016/06/30 Python
python基础之包的导入和__init__.py的介绍
2018/01/08 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Django后端发送小程序微信模板消息示例(服务通知)
2019/12/17 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
Python selenium抓取虎牙短视频代码实例
2020/03/02 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
在线服装零售商:SheIn
2016/07/22 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
自我评价的正确写法
2013/09/19 职场文书
商场活动策划方案
2014/01/24 职场文书
党员教师工作决心书
2014/03/13 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
2015年推普周活动总结
2015/03/27 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书