f-string 是 Python3.6 版本开始引入的个性,想必很多 Python 用户都基础性的应用过,通过它咱们能够更加不便地向字符串中嵌入自定义内容,但 f-string 真正蕴含的性能远比大多数用户晓得的要丰盛,明天咱们就来一起摸索它们!
根底用法
f-string 最根底的用法很简略,如下例所示,在前缀f的字符串中向{}内间接填入要嵌入的值、变量或计算表达式:
print(f'1+1 = {2}')# 输入:1+1 = 2 a = 1 + 1print(f'1+1 = {a}')# 输入:1+1 = 2 print(f'1+1 = {1+1}')# 输入:1+1 = 2
自记录表达式
从 Python3.8 版本开始,f-string 引入了自记录表达式,使得咱们能够依照上面的写法疾速输入一些计算表达式:
import matha = 8print(f'{math.log(8) = }')# 输入:math.log(8) = 2.0794415416798357
多行 f-string
通过最外层包裹小括号,咱们能够像上面这样非常灵活地撰写多行 f-string:
a = 1b = 2c = 3s = ( f'{a = }\n' f'{b = }\n' f'{c = }\n')print(s)# 输入:a = 1b = 2c = 3
管制浮点数精度
在 f-string 中咱们能够依照下列形式灵便地管制浮点数的小数位数:
import mathpi = math.piprint(f'{pi:.3f}')print(f'{pi:.8f}')# 输入3.1423.14159265
进制转换输入
在 f-string 中,咱们能够间接在输入时将指标转换成不同的进制进行输入:
number_10 = 1024print(f'{number_10:b}') # 2进制print(f'{number_10:o}') # 8进制print(f'{number_10:x}') # 16进制小写print(f'{number_10:X}') # 16进制大写print(f'{number_10:c}') # ASCII编码# 输入:100000000002000400400
字符串对齐
f-string 默认为右对齐,咱们能够批改对齐形式:
text = 'python'print(f'{text:>10}') # 右对齐print(f'{text:<10}') # 左对齐print(f'{text:^10}') # 居中对齐print(f'{text:*^10}') # 居中对齐,用*补齐空白n = 10print(f'{text:#^{n}}') # 参数嵌套,居中对齐,用~补齐空白# 输入: pythonpython python**python**##python##
标准化显示宽度
当咱们须要对 f-string 打印内容的显示最小宽度进行限度时,譬如打印出相似表格的构造,能够这样写:
for x in range(1,11): print(f'{x:02}|{x**2:3}/{x**5:6}') # 输入:01| 1| 102| 4| 3203| 9| 24304| 16| 102405| 25| 312506| 36| 777607| 49| 1680708| 64| 3276809| 81| 5904910|100|100000
格式化日期
针对日期类型的变量,咱们能够参考上面的形式,间接在 f-string 中疾速地进行格式化:
import datetimenow = datetime.datetime.now()print(f'{now:%Y年%m月%d号%H点%M分%S秒}') # 输入:2022年05月21号17点04分08秒
迷信计数
咱们能够实现指定位数的迷信计数法显示方式:
import mathpi = math.piprint(f'{pi*100:.10e}') # 输入3.1415926536e+02
管制有效数字位数
咱们还能够管制所显示数字的有效数字位数,即从左开始第一个不为0的数字往右一共显示的个数,当位数低于整数局部时会主动变成迷信计数法格局:
a = 1312.3123123123123print(f'{a:.10g}')#输入:1312.312312 a = 1312.3123123123123print(f'{a:.3g}')#输入:1.31e+03
以上就是本次分享的所有内容,如果你感觉文章还不错,欢送关注公众号:Python编程学习圈,每日干货分享,发送“J”还可支付大量学习材料,内容笼罩Python电子书、教程、数据库编程、Django,爬虫,云计算等等。或是返回编程学习网,理解更多编程技术常识。