当前位置: 首页 > 后端技术 > Python

90%的Pythoner都不知道这些f-strings的用法!_0

时间:2023-03-26 13:20:03 Python

f-string是Python3.6中引入的一个特性。想必很多Python用户都基本使用过。通过它,我们可以更方便地将自定义内容嵌入到字符串中,但是f-string真正包含的功能远比大多数用户知道的要多,今天就让我们一起来一探究竟吧!基本用法f-string最基本的用法很简单,如下例所示,直接在以f为前缀的字符串中填入要嵌入{}的值、变量或计算表达式:print(f'1+1={2}')#输出:1+1=2a=1+1print(f'1+1={a}')#输出:1+1=2print(f'1+1={1+1}')#Output:1+1=2自录表达式从Python3.8开始,f-string引入了自录表达式,方便我们快速输出一些计算表达式,如下:importmatha=8print(f'{math.log(8)=}')#output:math.log(8)=2.0794415416798357multi-linef-string在最外层包裹了括号,我们可以很灵活的写multi-linef如下-string:a=1b=2c=3s=(f'{a=}\n'f'{b=}\n'f'{c=}\n')print(s)#输出:a=1b=2c=3控制浮点数的精度在f-string中,我们可以通过以下方式灵活控制浮点数的小数位数:importmathpi=math.piprint(f'{pi:.3f}')print(f'{pi:.8f}')#output3.1423.14159265十六进制转换输出在f字符串中,我们可以直接将目标转换成不同的十六进制输出:number_10=1024print(f'{number_10:b}')#二进制print(f'{number_10:o}')#八进制print(f'{number_10:x}')#十六进制小写print(f'{number_10:X}')#16进制uppercaseprint(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=10填充空白print(f'{text:#^{n}}')#参数嵌套,居中对齐,用~#Output:pythonpythonpython**python**##python##Standardizeddisplaywidth当我们需要显示f-string打印内容时限制最小宽度,比如打印出一个类似表格的结构,可以这样写:forxinrange(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|05|9081|100000格式化日期对于日期类型变量,我们可以参考下面的方法直接在f-string中快速格式化:importdatetimenow=datetime.datetime.now()print(f'{now:%YYear%mmonth%dnumber%H点%M分%S秒}')#output:2022-05-2117:04:08secondsscientificnotation我们可以实现指定位数的科学计数显示方法:importmathpi=math.piprint(f'{pi*100:.10e}')#输出3.1415926536e+02来控制有效位数我们还可以控制显示的有效位数,即左起第一个不为0的数字显示的总数右边,当位数低于整数部分时,会自动变成科学计数格式:a=1312.3123123123123print(f'{a:.10g}')#Output:1312.312312a=1312.3123123123123print(f'{a:.3g}')#Output:1.31e+03总结Python中f-string的几个技巧的文章到此结束。这些技巧你学会了吗?还有哪些疯狂炫酷的代码欢迎在留言区讨论!以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”也能领取大量学习资料或前往编程学习网了解更多编程技术知识。