Python仙术 第2期 f-string的各种小寄巧(语法糖时间)

见习法师

>>> print(f"1+1={1+1}")
1+1=2
>>> x = 1 + 1
>>> print(f"1+1={x}")
1+1=2
>>>  

这是f-string最基本的用法,直接在字符串中插入一个对象(值/变量/表达式)。

魔法师

自记录

>>> print(f"{1 + 1 = }")
1 + 1 = 2
>>> a, b = 2, 6
>>> print(f"{a + b = }")
a + b = 8
>>> print(f"{a=},{b=},{a+b=}")
a=2,b=6,a+b=8

数字处理

千分位分隔, 只支持下划线_ 和逗号,

>>> print(f"{1145141919810:,}")
1,145,141,919,810
>>> print(f"{1145141919810:_}")
1_145_141_919_810

浮点数修约
默认修约(小数点后6位)

>>> a = 1.145141919
>>> print(f"{a:f}")
1.145142

指定位数修约

>>> a = 1.145141919
>>> print(f"{a:.2f}")
1.15

注意这里的修约规则实际上是四舍六入五凑偶,而不是四舍五入。

科学计数法

>>> a = 99 ** 9
>>> print(f"{a:e}")
9.135172e+17
>>> print(f"{a:E}")
9.135172E+17

这些方法可以联合使用

>>> a = 99 ** 9
>>> print(f"{a:.3e}")
9.135e+17
>>> a = 123456789.987654321
>>> print(f"{a:_.3f}")
123_456_789.988

时间对象处理

>>> from datetime import datetime
>>> now = datetime.now()
>>> print(f"{now:%c}")
Wed Mar 13 08:13:10 2024
>>> print(f"{now:%Y-%m-%d %H:%M:%S}")
2024-03-13 08:13:10

缩进控制

x=1

>>> print(f"|{x:3}|")
|  1|
>>> print(f"|{x:03}|")
|001|
>>> print(f"|{x:<3}|")
|1  |
>>> print(f"|{x:>3}|")
|  1|
>>> print(f"|{x:^3}|")
| 1 |
>>> print(f"|{x:_>3}|")
|__1|
>>> x=-1
>>> print(f"|{x:=3}|")
|- 1|

大魔导师

输出九九乘法表

for x in range(1, 10):
    for y in range(1, x + 1):
        print(f"|{x}*{y}={x * y:<2}", end="")
    print("|")

运行结果

|11=1 |
|2
1=2 |22=4 |
|3
1=3 |32=6 |33=9 |
|41=4 |42=8 |43=12|44=16|
|51=5 |52=10|53=15|54=20|55=25|
|6
1=6 |62=12|63=18|64=24|65=30|66=36|
|7
1=7 |72=14|73=21|74=28|75=35|76=42|77=49|
|81=8 |82=16|83=24|84=32|85=40|86=48|87=56|88=64|
|91=9 |92=18|93=27|94=36|95=45|96=54|97=63|98=72|9*9=81|

18 Likes

顶顶

1 Like

老法师

3 Likes

f-string现在越来越猛了,功能也越来越离谱

比如 python3.12 里,f-string 里面也可以双引号

f"Linux.do water big three, {", ".join(waters)}"
30 Likes

学习学习

1 Like

佬教我python,我要拜师 :laughing:

1 Like

之前还真不知道f-string有这么多用法

1 Like

这样的

|1*1=1 |
|2*1=2 |2*2=4 |
|3*1=3 |3*2=6 |3*3=9 |
|4*1=4 |4*2=8 |4*3=12|4*4=16|
|5*1=5 |5*2=10|5*3=15|5*4=20|5*5=25|
|6*1=6 |6*2=12|6*3=18|6*4=24|6*5=30|6*6=36|
|7*1=7 |7*2=14|7*3=21|7*4=28|7*5=35|7*6=42|7*7=49|
|8*1=8 |8*2=16|8*3=24|8*4=32|8*5=40|8*6=48|8*7=56|8*8=64|
|9*1=9 |9*2=18|9*3=27|9*4=36|9*5=45|9*6=54|9*7=63|9*8=72|9*9=81|
3 Likes

问一下,如何在 f-string 里面打印 “{}” ?比如我给 GPT 定义一个 prompt ,给的输出格式是 JSON的,就有 ‘{}’

1 Like

f"{{}}"

2 Likes

另外json这种建议字符串拼接,除非你乐意

print("If you want to print \"\\\\\\\\\", you can use \"print(\"\\\\\\\\\\\\\\\\\")")
1 Like

至尊法师

1 Like

Python 万物皆类 直接*10086

1 Like

砂糖酱 赞赞

2 Likes

format用惯了,看到fstring应激了

1 Like

我也要学python,加油

1 Like

不错

1 Like

来学习了

1 Like

越看后面越牛逼

1 Like

py太爽了吧,其他语音能不能学一学啊

1 Like