Python格式化字符串(格式化输出)
我们在《个Python程序——在屏幕上输出文本》中讲到过 print() 函数的用法,这只是最简单最初级的形式,print() 还有很多高级的玩法,比如格式化输出,这就是本节要讲解的内容。
熟悉C语言 printf() 函数的读者能够轻而易举学会 Python print() 函数,它们是非常类似的。
print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出,具体请看下表。转换说明符 | 解释 |
|---|---|
%d、%i | 转换为带符号的十进制整数 |
%o | 转换为带符号的八进制整数 |
%x、%X | 转换为带符号的十六进制整数 |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f、%F | 转化为十进制浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式(变量、常量、数字、字符串、加减乘除等各种形式)的值代替。
【实例】输出一个整数:
运行结果:age = 8
print("C语言中文网已经%d岁了!" % age)
C语言中文网已经8岁了!
在 print() 函数中,由引号包围的是格式化字符串,它相当于一个字符串模板,可以放置一些转换说明符(占位符)。本例的格式化字符串中包含一个
%d说明符,它最终会被后面的 age 变量的值所替代。中间的
%是一个分隔符,它前面是格式化字符串,后面是要输出的表达式。当然,格式化字符串中也可以包含多个转换说明符,这个时候也得提供多个表达式,用以替换对应的转换说明符;多个表达式必须使用小括号
( )包围起来。请看下面的例子:name = "C语言中文网"
age = 8
url = "http://c.biancheng网站站点" rel="nofollow" />
C语言中文网已经8岁了,它的网址是http://c.biancheng网站站点" rel="nofollow" />
n = 1234567
print("n(10):%10d." % n)
print("n(5):%5d." % n)
url = "http://c.biancheng网站站点" rel="nofollow" />
n(10): 1234567.
n(5):1234567.
url(35): http://c.biancheng网站站点" rel="nofollow" />
n = 123456
# %09d 表示最小宽度为9,左边补0
print("n(09):%09d" % n)
# %+9d 表示最小宽度为9,带上符号
print("n(+9):%+9d" % n)
f = 140.5
# %-+010f 表示最小宽度为10,左对齐,带上符号
print("f(-+0):%-+010f" % f)
s = "Hello"
# %-10s 表示最小宽度为10,左对齐
print("s(-10):%-10s." % s)
运行结果:
n(09):000123456
n(+9): +123456
f(-+0):+140.500000
s(-10):Hello .
指定小数精度
对于小数(浮点数),print() 还允许指定小数点后的数字位数,也即指定小数的输出精度。精度值需要放在最小宽度之后,中间用点号
.隔开;也可以不写最小宽度,只写精度。具体格式如下:%m.nf
%.nf
m 表示最小宽度,n 表示输出精度,.是必须存在的。请看下面的代码:
f = 3.141592653
# 最小宽度为8,小数点后保留3位
print("%8.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0
print("%08.3f" % f)
# 最小宽度为8,小数点后保留3位,左边补0,带符号
print("%+08.3f" % f)
运行结果:
3.142
0003.142
+003.142
- 随机文章
- 马尔代夫宰人吗(马尔代夫是否存在谋杀事件?)
- 马尔代夫的婚假(马尔代夫推出新规:员工婚假最高可达30天)
- 嗯哼马尔代夫度假(嗯哼度假:探秘马尔代夫纯净海岛福地)
- 马尔代夫斑头雁(马尔代夫的斑头雁惊艳亮相!)
- 裙子 马尔代夫(马尔代夫旅行中必备的裙装)
- 新加坡和马尔代夫(新加坡与马尔代夫:两个海上旅游胜地)
- 咸阳马尔代夫玫瑰(咸阳市举行“马尔代夫玫瑰”培育比赛)
- 咸阳马尔代夫花海(咸阳花海异域风情,仿佛置身马尔代夫)
- 印度邻国马尔代夫(马尔代夫成为印度封锁中的主要受害者)
- 湖北荆门马尔代夫(湖北荆门现实版马尔代夫,美如天堂!)
- 洛阳孟津马尔代夫(洛阳孟津游客前往马尔代夫度假的故事)
- 济宁马尔代夫植物(济宁市民志愿者前往马尔代夫保护植物)
- 白贝壳岛马尔代夫(后的:马尔代夫白贝壳岛,浪漫之旅!)
- 胖子梦想马尔代夫(重温胖子梦想,走进马尔代夫旅游胜地)
- 海滩马尔代夫壁纸(美丽的马尔代夫沙滩:免费高清壁纸。)
- 发文致歉马尔代夫(对马尔代夫事件致歉,重建合作关系!)
- 李哲 马尔代夫(李哲探秘马尔代夫:海豚、沙滩和潜水!)
- 宜都马尔代夫位置(宜都珊瑚岛:马尔代夫海域的世外桃源)
- 哪里 马尔代夫(重返热带天堂:马尔代夫旅游重开!)
- 杨波 马尔代夫(杨波在马尔代夫发现新物种,震惊科学界!)
- 苏丹 马尔代夫(苏丹和马尔代夫发生的重要事件:新闻报道)
- 直飞马尔代夫班机(直飞马尔代夫航班,开启梦幻海岛之旅)
- 明星 马尔代夫(明星享受马尔代夫度假生活,尽情纵情玩乐)
- 马尔代夫今晚新闻(马尔代夫今晚新闻:最新疫情情况报道)
- 康亮 马尔代夫(康亮:马尔代夫推动环境可持续性,制定新政策)
- 里皮 马尔代夫(题目:中国男足主帅里皮现身马尔代夫)
- 沉船遗址马尔代夫(马尔代夫发现沉船遗址成为旅游新热点)
- 预定马尔代夫蜜月(浪漫马尔代夫:新婚夫妇的完美度假地)
- 青岛马尔代夫洗浴(青岛洗浴中心打造马尔代夫式豪华体验)
- 马尔代夫关税弊端(探讨马尔代夫关税制度的缺陷及影响。)
