相关学习资料:Python字面值 - 网易云课堂study.163.com
格式化字符串变量值 或称 f-string 是带有 'f' 或 'F' 前缀的字符串字面值。以 {} 标示的表达式替换对应的变量。是Python3.6新引入的一种字符串格式化方法。
f-string 在功能方面不逊于传统的 %-formatting 语句和 str.format() 函数 ,同时性能又优于他们,且使用起来也更加简洁明了,因此以后推荐使用 f-string 进行字符串格式化。
简单使用
注:下例的 name 和 age 是变量。
name = 'Tom' age = 17 f'Hello, my name is {name}' # Hello, my name is Tom f"I'm {age} years old." # I'm 17 years old. f'把我的名字放入大括号是{"{name}"}' # 把我的名字放入大括号是{name}
表达式求值
f'I was born in { 2020 - age }.' # I was born in 2003. f'我数学和语文的平均分是{(98+89)/2}' # 我数学和语文的平均分是93.5
函数调用
f'我名字有{len(name)}个字母,全部小写为 {name.lower()}' # 我名字有3个字母,全部小写为 tom import math f'sin(80)的值是{math.sin(80)}' # sin(80)的值是-0.9938886539233752
自定义格式
f-string 可以用 {content:format} 设置字符串的格式,format 为格式描述符。
提示
自定义格式化一般应用在脚本输出的美化和可视化中,对于数据处理会事先将这些内容格式处理好,直接输出就可以了。初学者暂时不用理会这些内容,或许你永远用不到它。
宽度
name_1 = "tom" name_2 = "lily" print(f'{name_1:5}100分') print(f'{name_2:5}100分')
我们看到给其宽度为5个字符,两个名字会占用同样的宽度,不足的用空格补齐。
tom 100分 lily 100分
f'今年{age:08}岁' # 加0不够长度前边补0 # 今年00000017岁
对齐
# < 左对齐(字符串默认对齐方式) # > 右对齐(数值默认对齐方式) # ^ 居中 print(f'欢迎{name_1:<10}光临') print(f'欢迎{name_2:>10}光临') print(f'欢迎{name_1:^10}光临')
输出效果是:
欢迎tom 光临 欢迎 lily光临 欢迎 tom 光临
数字格式化
print(f'最高{8848:+}m') # 显示正号 print(f'最低{-11043: }m') # 空格, 正数前导空格,负数使用减号 # 最高+8848m # 最低-11043m
a = 123.456 f'a is {a:.2f}' # 两位小数 # a is 123.46 f'a is {a:8.2f}' # 8个字符位置, 不够用空格占位 # a is 123.46 f'a is {a:08.2f}' # 8个字符位置, 不够用0占位 # a is 00123.46 f'a is {a:8.2%}' # 共8位, 不足后边补0, 再加百分号 # a is 12345.60% f'a is {3253547568.43:,f}' # 加千分位 # a is 3,253,547,568.430000
lambda 表达式
f'圆面积是{(lambda x: 3.14*x ** 2) (4)}' # 圆面积是50.24 f'圆面积是{(lambda x: 3.14*x ** 2) (100):<+7.2f}' # 圆面积是+31400.00