##Python程序设计基础——字符串的格式化输出
- 类似C的方法:
>>> print('%s%d'%('数字:',0))
数字:0
print('%d,%d'%(0,1))
0,1
>>> print('%d,%d,%d'%(0,1,0))
0,1,0
所以我们使用格式化字符串的方法是为了什么呢,这跟我们使用计算机的意义是相同的——简便。
print 函数一旦要输出很多对位置,数据类型有具体要求的内容时就会很麻烦,相信很多学习计算机语言的人都有这种感受,所以使用格式化的方法,一个萝卜一个坑地输入,不需要中断输入过程,而且对于数据类型也不需要考虑太多。
- format格式化输出
format格式化输出在上一篇里面已经复习过了。这是一个很强大的内置功能函数,
a. 可以控制精度(’.2f’ )
>>> print(format(23.23459,'.2f'))
23.23
b. 添加逗号(’,.2f’)
>>> print(format(123423.23459,',.2f'))
123,423.23
c. 指定最小宽域(‘12,.2f’)(使得输出的数据都在右端整齐排列)(不知道为什么亲自实践无法证明这一点)
num1 = 12334.00223
num2 = 1234.23123
num3 = 123123.31245
for i in [num1, num2, num3]:
print(format(i,'9,.3f'))
程序运行结果:
12,334.002
1,234.231
123,123.312
d.按照科学计数法输出:
>>> print(format(123456.789,'e'))
1.234568e+05 //仅仅是写成科学计数法的形式
>>> print(format(123456.789,'.2e'))
1.23e+05//这样就能实现对精度的控制了
除此以外,利用str.format()还可以格式化输出字符串:
print('{}{}{}'.format('猫妖传:','评分:',9.8)) # 优势1:不用担心用错类型码。
print('{},{}'.format(10,20)) # 不设置指定位置时,默认按顺序对应。
print('{1},{0}'.format(0,1)) # 优势2:当设置指定位置时,按指定的对应。
print('{0},{1},{0}'.format(0,1)) # 优势3:可多次调用format后的数据。
程序运行结果:
猫妖传:评分:9.8
10,20
1,0
0,1,0
相比与上述方法,该方法的优势在于:
- 不用担心弄错类型码。
- 当设置指定位置时,按指定的对应。
- 可多次调用format后的数据。
区别:
1 str.format()使用的花括号{},不是圆括号()
2 对数据的引用更为灵活,不限次数,虽然默认一一对应,但是也可以指定顺序。