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