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设计模式之观察者模式实例
Apr 26 Python
在Django中创建第一个静态视图
Jul 15 Python
Python编程中的for循环语句学习教程
Oct 14 Python
Python常用算法学习基础教程
Apr 13 Python
Python异常处理操作实例详解
May 10 Python
使用Selenium破解新浪微博的四宫格验证码
Oct 19 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
python整小时 整天时间戳获取算法示例
Feb 20 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
Jul 22 Python
python 并发下载器实现方法示例
Nov 22 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
Python的赋值、深拷贝与浅拷贝的区别详解
Feb 12 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
玛琪朵 Macchiato
2021/03/03 咖啡文化
PHP代码审核的详细介绍
2013/06/13 PHP
php输入数据统一类实例
2015/02/23 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
JavaScript中的闭包原理分析
2010/03/08 Javascript
php上传图片并给图片打上透明水印的代码
2010/06/07 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
纯js网页画板(Graphics)类简介及实现代码
2012/12/24 Javascript
JQuery中操作Css样式的方法
2014/02/12 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
bootstrap table小案例
2016/10/21 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
Vue通过ref父子组件拿值方法
2018/09/12 Javascript
video.js 一个页面同时播放多个视频的实例代码
2018/11/27 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
layui form表单提交后实现自动刷新
2019/10/25 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
python 循环遍历字典元素的简单方法
2016/09/11 Python
python基础教程项目三之万能的XML
2018/04/02 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python地震数据可视化详解
2019/06/18 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
numpy np.newaxis 的实用分享
2019/11/30 Python
浅谈Python中的生成器和迭代器
2020/06/19 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
新奇的小玩意:IWOOT
2016/07/21 全球购物
以太网Ethernet IEEE802.3
2013/08/05 面试题
学习党的群众路线实践活动思想汇报
2014/09/12 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python