三种语法
%,format,f-string
print("格式 %s" %'hello')
##
%[-][+][0][m][.n]格式化字符 参数
m:占位符
-:左对齐
+:右对齐,其中-+都需要配合m使用
.n:在字符串中代表截取字符串的前n位
0:在数字的输出中,可以把左边都补0
%s | 占位符 |
%d | 10进制 |
%o | 8进制 |
%x | 16进制 |
%f | 浮点数(默认6位小数) |
%b | 2进制,format中独有 |
Format
template = '格式化的内容是{}'
print(template.format('hello'))
其中逗号代表千分位符,把12345表示为12,345
#index的使用,format的数量可以不等于前方{}的数量
print("{0}{1}{0}".format(1,2))
>>> 1,2,1
使用举例,占位,截取,右对其,居中对其,任意字符填补
# 的使用举例,主要的作用在不同进制之前加上标识符
print("|{0:d}|{0:x}|{0:o}|{0:b}|".format(13)}
print("|{0:d}|{0:#x}|{0:#o}|{0:#b}|".format(13)}
>>>|13|d|15|1101|
>>>|13|0xd|0o15|0b1101|
sign的使用举例,主要用于在输出中更明显的区分正负数
print("|{0:d}|{0:d}|".format(13,-13)}
print("|{0:+d}|{0:+d}|".format(13,-13)}
print("|{0:-d}|{0:-d}|".format(13,-13)}
print("|{0: d}|{0: d}|".format(13,-13)}
>>>|13|-13|
>>>|+13|-13|
>>>|13|-13|
>>>| 13|-13|
有关format的参数传递
#按*args传入固定参数
print("{} {} {}".format(1,2,3))
#按**kwargs传入可变参数
print("{name} {age} {sex}".format(name='alex',age=18,sex='man'))
>>>123
>>>alex 18 man
当然你可以按元组或字典方式传入
par = (1,2,3)
print("{0[0]} {0[1]} {0[2]}".format(par))
par = {'x':1,'y':2,'z':3}
print("{0[x]} {0[y]} {0[z]}".format(par))
>>>123
>>>123
显示千分位
print('{:,.2f}'.format(123456,5678))
>>>123,456.57
F-string
是format的变形用法
python 3.6版本的新功能
也支持类方法的调用,是fstring的最强大功能
name = 'tom'
age = 18
salary = 1223.21
print(f'{name:.2s},{age:010d},{salary:,.2f}')
print(f'{name:capitalize()},{age:010d},{salary:,.2f}')
>>>to,0000000018, 1,223.21
>>>Tom,0000000018, 1,223.21