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对小数进行除法运算的正确方法示例
Aug 25 Python
实践Vim配置python开发环境
Jul 02 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
python django生成迁移文件的实例
Aug 31 Python
Python小程序之在图片上加入数字的代码
Nov 26 Python
django 实现简单的插入视频
Apr 07 Python
python实现猜单词游戏
May 22 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
python爬虫使用正则爬取网站的实现
Aug 03 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
Python一行代码实现自动发邮件功能
May 30 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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
Yii2框架使用计划任务的方法
2016/05/25 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
在Laravel的Model层做数据缓存的实现
2019/09/26 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
一行代码告别document.getElementById
2012/06/01 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
ajax级联菜单实现方法实例分析
2016/11/28 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
JavaScript选择排序算法原理与实现方法示例
2018/08/06 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
node+vue实现文件上传功能
2020/05/28 Javascript
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python中捕获键盘的方式详解
2019/03/28 Python
python实现五子棋游戏
2019/06/18 Python
Python读取VOC中的xml目标框实例
2020/03/10 Python
python tkinter实现连连看游戏
2020/11/16 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
小区物业门卫岗位职责
2014/04/10 职场文书
初中学生期末评语
2014/04/24 职场文书
助人为乐道德模范事迹材料
2014/08/16 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
小学见习报告
2014/10/31 职场文书
社会实践活动总结
2015/02/05 职场文书
教导主任个人总结
2015/03/03 职场文书
2016年学校综治宣传月活动总结
2016/03/16 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
在HTML中引入CSS的几种方式介绍
2021/12/06 HTML / CSS