本文共 2263 字,大约阅读时间需要 7 分钟。
字符串字段替换
>>> str1 = "{},{}, and{}".format('first','second', 'third')>>> str1'first,second, andthird'
还可以使用索引的方式替换字符串
>>> '{3} {0} {2} {1} {3} {0}'.format('be','not','or','to')'to be or not to be'
还可以指定命名替换
>>> '{name} is approximately {value:.2f}.'.format(value=3.1415, name='pi')'pi is approximately 3.14.'
如果变量与替换字段同名,还可以使用一种简写,使用f字符串
>>> from math import e>>> f'Euler\'s constant is roughly {e}.'"Euler's constant is roughly 2.718281828459045."
可以在格式化字符串的时候使用字符串数组作为标识符
>>> fullname = ['Alfred', 'Smoketoomucn']>>> 'Mr {name[1]}'.format(name=fullname)'Mr Smoketoomucn'
类型转换,可以指定要转换的类型,以标识符冒号类型符的方式
>>> 'The number is {num:f}'.format(num=22)'The number is 22.000000'>>>
类型 | 含义 |
b | 将整数表示为二进制数 |
c | 将整数解读为Unicode码点 |
d | 将整数视为十进制数进行处理,这是整数默认使用的说明符 |
e | 使用科学表示法来表示小数(用e来表示指数) |
E | 与e相同,但使用E来表示指数 |
f | 将小数表示为定点数 |
F | 与f相同,但对于特殊值(nan和inf),使用大写表示 |
g | 自动在定点表示法和科学表示法之间做出选择。这是默认用于小数的说明符,但在默认情况下至少有1位小数 |
G | 与g相同,但使用大写来表示指数和特殊值 |
n | 与g相同,但插入随区域而异的数字分隔符 |
o | 将整数表示为八进制数 |
s | 保持字符串的格式不变,这是默认用于字符串的说明符 |
x | 将整数表示为十六进制数并使用小写字母;X,与x相同,但使用大写字母 |
% | 将数表示为百分比值(乘以100,按说明符f设置格式,再在后面加上%) |
宽度、精度和千位分隔符
注意:默认数字和字符串的对齐方式是不同的
>>> '{num:10}'.format(num=3)' 3'>>> '{name:10}'.format(name='bob')'bob '>>> 'One googol is {:,}'.format(10**100)'One googol is 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000'>>>
符号、对齐和用0填充
左对齐'<'、居中'^'和右对齐'>'
>>> print('{0:<10.2f}\n{0:^10.2f}\n{0:>10.2f}'.format(3.2123))3.21 3.21 3.21>>>
用指定字符‘$’填充,居中'^',长度15
>>> '{:$^15}'.format('WIN BIG')'$$$$WIN BIG$$$$'>>>
'=' 说明符
>>> print('{0:10.2f}\n{1:10.2f}'.format(3.12, -3.12)) 3.12 -3.12>>> print('{0:10.2f}\n{1:=10.2f}'.format(3.12, -3.12)) 3.12- 3.12>>>
'#'说明符
>>> '{:b}'.format(32)'100000'>>> '{:#b}'.format(32)'0b100000'>>>
>>> '{:g}'.format(42)'42'>>> '{:#g}'.format(42)'42.0000'>>>
字符串方法:
center
find
join 合并序列的元素
>>> seq = ['1', '2', '3', '4', '5']>>> sep = '+'>>> sep.join(seq)'1+2+3+4+5'>>>
replace
split将字符串拆分为序列
>>> sesplit'1+2+3+4+5'>>> sesplit.split('+')['1', '2', '3', '4', '5']>>>
strip 将字符串开头和结尾的空白删除
>>> '$#@#$#$ SPAM *D#$ for everyone!!!***'.strip(' $#@!*')'SPAM *D#$ for everyone'>>>
translate
>>> table = str.maketrans('cs', 'kz')>>> 'this is an incredible test'.translate(table)'thiz iz an inkredible tezt'
转载地址:http://fjmii.baihongyu.com/