{month:0>2}-{day:0>2}"
'2022-01-01'
数字格式化
浮点数 :指定精度显示
pi = 3.141592654
print(f"PI = {pi:.2f}")
# PI = 3.14
print(f"PI = {pi:.3f}")
# PI = 3.142
科学计数
print(f"{pi:e}") # 不指定精度,默认6位小数,和format一致
# 3.141593e+00
print(f"{pi:.2e}")
# 3.14e+00
百分比格式化 :兼顾小数位保留和百分号格式化功能
print(f"PI = {pi:.3%}")
# PI = 314.159%
print(f"PI = {pi:.2%}")
# PI = 314.16%
千位分隔符 :使用 ,
格式化数字展示(常用于金额),易于阅读
>>> f"{234234234:,}"
'234,234,234'
>>> f"{234234234.1314:,.2f}"
'234,234,234.13'
>>> f"{234234234.1314:_.2f}"
'234_234_234.13'
进制转换
先看看python中常用的用法及其效果:
num = 23
bin(num) # '0b10111'
oct(num) # '0o27'
hex(num) # '0x17'
在f-string中,b、o、x分别代表二进制、八进制、十六进制
f"{num:b}" # '10111'
f"{num:o}" # '27'
f"{num:x}" # '17'
要想实现常用用法的效果,进制规则代码前需要加#
号:
f"{num:#b}" # '0b10111'
f"{num:#o}" # '0o27'
f"{num:#x}" # '0x17'
f"{num:#X}" # '0X17'
日期格式化
适用于 date
、datetime
和 time
对象
today = datetime.datetime.today()
f"{today:%Y}" # '2022'
f"{today:%Y-%m}" # '2022-12'
f"{today:%Y-%m-%d}" # '2022-12-16'
f"{today:%F}" # '2022-12-16'
f"{today:%D}" # '12/16/22'
f"{today:%X}" # '21:01:27'
f"{today:%F %X}" # '2022-12-16 21:01:27'
更多日期格式信息:日期格式信息
Suggestion
(这个建议是引用的其他地方的,发现很多博文都有,就不标出来源了,因为不确定最初的版本来自哪里)
1、如果格式化的字符串是由用户输入的,那么基于安全性考虑,推荐使用Template
2、如果使用的python3.6+版本的解释器,推荐使用F-Strings
3、如果要兼容python2.x版本的python解释器,推荐使用format形式
4、一般不推荐使用%,尤其是生产环境