python print格式化中用format还是%,还是f,什么时候用数字来 这些格式化数字{}中有时候有数字,有时候没有数字
| 写法 | 状态 | 建议 |
|---|---|---|
% |
已停止新特性,仅老代码/极简日志保留 | 新代码别碰 |
str.format() |
功能完整,但语法啰嗦 | 只在“模板字符串运行时才知道”或“要兼容 ≤3.5”时才用 |
f-string f'{expr}' |
最快、可读、表达式任意 | 默认选它 |
大括号里就是 Python 表达式,永远不会写 {0}、{1}
想复用就先把值绑给局部变量即可:
total = 19.5
print(f'总价:{total}元,含税:{total*1.13:.2f}元')
str.format()| 模式 | 写法 | 何时用 |
|---|---|---|
| 自动位(大括号空着) | "{} + {} = {}".format(a,b,a+b) |
参数只出现一次,顺序与槽位一致即可,省键盘 |
| 手动位(填数字或关键字) | "{0} + {1} = {0}".format(a,b) 或 "{x} + {y} = {x}".format(x=a,y=b) |
① 某个值要重复/复用 |
# 复用同一变量 tpl = "{0:>6} | {0:*<10} | {0:.2f}" print(tpl.format(price)) # price 被用 3 次 # 关键字版 tpl = "{name}:{name:-^20}" print(tpl.format(name="Python")) 空 {} → 按参数顺序一次性用完 出现数字/关键字 → 按号找参,可复用、可乱序
其实就是在.format()中定义变量,0=value,1=value...或者name=value然后.号前面引用变量
如果是f“”就是将变量定义放在外面name=value,print(f"{name}")