关于python:这些fstring的用法90的Pythoner不知道

37次阅读

共计 1996 个字符,预计需要花费 5 分钟才能阅读完成。

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

正文完
 0