这玩意看起来没有啥用,玩玩娱乐还可以,但是用起来了,发觉还是有用的
例子1
In [36]: big_number: int = 1_620_000_000
In [37]: print(f'{big_number:.2e}')
1.62e+09
在科学计数法中,e 表示“10 的幂”。例如,1.62e+09 表示 1.62 乘以 10 的 9 次方,即 1,620,000,000。
在 Python 中,.2e 格式说明符表示将数字格式化为科学计数法,其中小数点后保留 2 位数字。因此,f’{big_number:.2e}’ 将 big_number 格式化为 1.62e+09。
以下是科学计数法的一些其他示例:
6.62607015e-34 表示 6.62607015 乘以 10 的 -34 次方,即 0.000000000000000000000000000000662607015
2.99792458e+08 表示 2.99792458 乘以 10 的 8 次方,即 299,792,458
科学计数法通常用于表示非常大或非常小的数字。例如,光速为 2.99792458e+08 米/秒,而普朗克常数为 6.62607015e-34焦耳·秒。
希望这能回答您的问题。
例子2
In [38]: from datetime import datetime
In [39]: now: datetime = datetime.now()
In [40]: date_spec: str = '%d.%m.%y'
In [41]: print(f'{now:{date_spec}}')
02.04.24
In [42]: number: float = 1000000.1234567
In [43]: spec: str = ',.2f'
In [44]: print(f'{number:{spec}}')
1,000,000.12
定义数字格式说明符:
第六行 spec = ‘,.2f’ 定义了一个名为 spec 的变量,并赋值为一个字符串,该字符串指定了显示数字的格式。此格式说明符使用以下指令:
,: 添加千位分隔符 (例如,1,000,000)
.: 小数点
2: 指定数字应格式化为 2 位小数
例子3
In [45]: custom_folder: str = 'abc'
In [46]: path: str = fr'\Users\home\xxx\{custom_folder}'
In [47]: path
Out[47]: '\\Users\\home\\xxx\\abc'
例子4
In [54]: a: float = 0.1
In [55]: b: float = 0.2
In [56]: print(f'{a + b = :.1f}')
a + b = 0.3
In [57]:
In [57]: print(f'{a + b = }')
a + b = 0.30000000000000004
In [58]: name: str = 'Bob'
In [59]: print(f'{name = !s}')
name = Bob
结果 0.30000000000000004 是由十进制数的浮点表示限制引起的。
对于大多数日常计算,差异可以忽略不计。
对于高精度任务,请探索替代库或定点算术。
在 f-string 中,!s 是一个格式说明符,用于格式化字符串。它指示 Python 将表达式格式化为字符串,并在必要时进行转义。
在您的示例中,表达式为 name,其值为 “Bob”。由于 !s 格式说明符,该值将按原样格式化为字符串,包括双引号。
以下是有关 !s 格式说明符的一些其他详细信息:
它等同于 str() 函数。
它将表达式转换为字符串,并在必要时进行转义。
它支持以下转义字符:
\n:换行符
\t:制表符
\:反斜杠
':单引号
":双引号
例子5
In [63]: from datetime import datetime,date
In [64]: banana: str = '🍌'
In [65]: name: str = 'Bob'
In [79]: print(f'[{today!s}] {name!s} says: {banana!s}')
[2024-04-02] Bob says: 🍌
In [80]: print(f'[{today!r}] {name!r} says: {banana!r}')
[datetime.date(2024, 4, 2)] 'Bob' says: '🍌'
In [81]: print(f'[{today!a}] {name!a} says: {banana!a}')
[datetime.date(2024, 4, 2)] 'Bob' says: '\U0001f34c'
在 f-strings 中,!s、!a 和 !r 是格式说明符,它们控制表达式插入到字符串中的方式。以下是它们各自的含义:
!s (str):
功能: 将表达式格式化为字符串。
!a (ascii):
功能: 将表达式格式化为 ASCII 字符串。
!r (repr):
功能: 使用表达式的 repr() 方法格式化表达式