在Python中f-string的几个技巧,你都知道吗
目录
- 最基础用法
- 自记录表达式
- 多行f-string
- 在f-string中格式化日期
- 控制浮点数精度
- 标准化显示宽度
- 修改为左对齐
- 设置科学计数法格式
- 控制有效数字位数
f-string想必很多Python用户都基础性的使用过,作为Python3.6版本开始引入的特性,通过它我们可以更加方便地向字符串中嵌入自定义内容,但f-string真正蕴含的功能远比大多数用户知道的要丰富,今天我们就来一起get它们~
最基础用法
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中格式化日期
针对日期类型的变量,我们可以参考下面的方式,直接在f-string中快速地进行格式化:
import datetime now = datetime.datetime.now() print(f'{now:%Y年%m月%d号%H点%M分%S秒}') #输出: 2021年10月18号16点45分58秒
控制浮点数精度
在f-string中我们可以按照下列方式灵活地控制浮点数的小数位数:
import math pi = math.pi print(f'{pi: .3f}') print(f'{pi:.8f}') #输出 3.142 3.14159265
标准化显示宽度
当我们需要对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默认为右对齐,就像上面的例子,但我们可以像下面这样使用<修改显示模式为左对齐:
for x in range(1,11): print(f'{x:<2}|{x**2:<3}|{x**5:<6}') #输出 1 |1 |1 2 |4 |32 3 |9 |243 4 |16 |1024 5 |25 |3125 6 |36 |7776 7 |49 |16807 8 |64 |32768 9 |81 |59049 10|100|100000
设置科学计数法格式
我们可以参考下面的方式实现指定位数的科学计数法显示方式:
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中f-string的几个技巧的文章就介绍到这了,更多相关Python中f-string技巧内容请搜索hwidc以前的文章或继续浏览下面的相关文章希望大家以后多多支持hwidc!
【文章由高防cdn提供,感恩】