字符串格式化
https://docs.python.org/zh-cn/3/tutorial/inputoutput.html#tut-f-strings
https://docs.python.org/zh-cn/3/library/string.html#format-string-syntax
1. f-string
f-string
是标注了 f
或 F
前缀的字符串字面值。
这种字符串可包含替换字段,即以 {表达式}
标注的方式,将 Python 表达式的值添加到字符串内。
常用代码示例:
python
# 直接使用
girl = '小芳'
print(f'{girl},我宣你!') # 小芳,我宣你!
# 计算
i = j = 9
print(f'{i}*{j}={i*j}') # 9*9=81
# 保留指定位小数,会四舍五入
pi = 3.1415926
print(f'pi={pi:.3f}') # pi=3.142
# 对齐
# 因为数字和字符串的默认对齐不一样,所以最好每次都明确指定对齐方式
s = 'hello'
print(f'{s:<9}') # 'hello ' 左对齐
print(f'{s:>9}') # ' hello' 右对齐
print(f'{s:^9}') # ' hello ' 居中
print(f'{s:w<9}') # 'hellowwww' 以w进行填充
# 千位分隔
money = 1234567890
print(f'{money:,}') # 1,234,567,890
# 百分比
r = 0.6789
print(f'{r:.2%}') # 67.89%
2. format()
方法
{}
中表达式语法与 f-string
类似,不再介绍
常用代码示例:
python
# 基本用法
print('{}牺牲生命,{}出卖组织。'.format('就算', '也不'))
# 位置参数,可以共用
print('{0}牺牲生命,{1}出卖组织。'.format('害怕', '所以'))
print('{1}牺牲生命,{0}出卖组织。'.format('忘了', '白白'))
print('{0}牺牲生命,{0}出卖组织。'.format('不要'))
# 关键字参数
print('{a}牺牲生命,{b}出卖组织。'.format(a='与其', b='不如'))
print('{a}牺牲生命,{b}出卖组织。'.format(b='除非', a='绝不'))
print('{a}牺牲生命,{a}出卖组织。'.format(a='坚持'))
# 使用 * 符号,将元组/列表作为位置参数
t = ('不用', '就能')
print('{}牺牲生命,{}出卖组织。'.format(*t))
# 使用 ** 符号,将字典作为关键字参数
d = {'a': '就算', 'b': '也要'}
print('{a}牺牲生命,{b}出卖组织。'.format(**d))
运行输出:
txt
就算牺牲生命,也不出卖组织。
害怕牺牲生命,所以出卖组织。
白白牺牲生命,忘了出卖组织。
不要牺牲生命,不要出卖组织。
与其牺牲生命,不如出卖组织。
绝不牺牲生命,除非出卖组织。
坚持牺牲生命,坚持出卖组织。
不用牺牲生命,就能出卖组织。
就算牺牲生命,也要出卖组织。
3. %
运算符
%
运算符(求余符)也可用于字符串格式化。
已经不推荐使用: https://docs.python.org/zh-cn/3/tutorial/inputoutput.html#old-string-formatting