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,爬虫,云计算等等。或是返回编程学习网,理解更多编程技术常识。