字符串格式化输出可以很方便地对字符串进行处理,同时解决字符串和变量同时输出的问题。也使得代码更具可读性。例如:
点击查看代码
在python 3.5以及更早的版本,我们使用format()方法。python 3.6则引入了f字符串方法。
1.format方法
- 基本用法
<字符串>.format(<以逗号分隔的参数>)
字符串中带有一系列待填充槽,用大括号{}表示,括号里带有序号。该方法将参数按序号填充到槽里,返回一个新字符串。如果槽中没有序号,则按顺序填充。
槽的序号顺序可以自己指定(从0开始),参数的序号从零开始。
点击查看代码
x='{1} > {0} > {2}'.format('A','B','C')
print(x)
'''
B > A > C
'''
也可以设置参数。比如'{x}'.format(x='libeiqun')。参数还可以通过列表和字典来设置。
点击查看代码
x='{x} is a {y}'.format(x='tom',y='boy')
print(x)
'''
tom is boy
'''
temp={'x':'li','y':'bei','z':'qun'}
x='{x} {y}{z}'.format(**temp)
print(x)
'''
li beiqun
'''
2.槽内格式控制
槽内除了参数序号,还可以包括格式控制符,用来对填充参数进行处理。
格式为:{<参数序号(可不填)>:<格式控制符>}。格式控制符可分为以下几种:
- 空白填充:仅单个字符
- 对齐:<左对齐 >右对齐 ^居中对齐
- 设置宽度:设置返回字符串的长度
- 分隔符:用于整数和浮点数,对参数加入千位分隔符。
- 设置精度:设置浮点数的小数部分进行有效位数保留,或设置字符串的最大输出长度。
- 类型:设置整数和浮点数的输出格式。
对于整数:b:转为二进制 c:Unicode字符 d:十进制 o:八进制 x:小写十六进制 X:大写十六进制。
对于浮点数:e:输出浮点数的e指数格式 E:E指数格式 f:标准浮点数格式 %:输出百分比格式
输出浮点数常用<.精度>对小数部分进行取精度。
空白填充,对齐,设置宽度是相关字段。设置宽度指定返回字符串的长度;对齐指定左右中对齐方式;空白填充指定多余的字段用什么字符进行填充。它们往往组合调用。
点击查看代码
x='{:*^15}'.format('hello')
print(x)
'''
*****hello*****
'''
print('{x:-^30.5}'.format(x='nuisting'))
'''
------------nuist-------------
'''
分隔符:
点击查看代码
点击查看代码
x='{:*<20,}'.format(1256554562)
print(x)
'''
1,256,554,562*******
'''
精度设置:
点击查看代码
x='{:.3f}'.format(3.1415926)
print(x)
'''
3.142
'''
x='{:-^30.5}'.format('republic')
print(x)
'''
------------repub-------------
'''
类型:
点击查看代码
x='{a:b} {a:c} {a:d} {a:o} {a:x} {a:X}'.format(a=38845)
print(x)
'''
1001011110111101 鞽 38845 113675 97bd 97BD
'''
x='{a:e} {a:E} {a:f} {a:%}'.format(a=3.1415926)
print(x)
'''
3.141593e+00 3.141593E+00 3.141593 314.159260%
'''
2.f字符串
f字符串方法与format并无太大区别。
点击查看代码
x='university'
print(f'{"nuist":*^15} is our {x}')
'''
*****nuist***** is our university
'''