当前位置:   article > 正文

python格式化输出之 f 字符串(f string)用法_f输出字符串

f输出字符串

f 字符串

1. 千位分隔符

对于位数较多的大数,f 字符串提供了 , 或者 _ 作为千位分隔符,使用方法如下:

>>> n: int = 10000000000
>>> print(f"{n:,}")
>>> print(f"{n:_}")
10,000,000,000
10_000_000_000

>>> n: float = 10000000000.32412
>>> print(f"{n:,}")
>>> print(f"{n:_}")
10,000,000,000.32412
10_000_000_000.32412
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2. 对齐与填充

对于需要输出类似表格形式的内容时,可以通过 :数字 来设置总输出长度,超出字符串长度的将使用空白字符进行占位。
使用 <>^ 分别控制输出内容为左对齐、右对齐与居中对齐。
同时可以使用其他符号来填充原本的空格处,比如 *_#| 等。

>>> var: str = "Hello, World!"
>>> print(f"{var}")
Hello, World!
>>> print(f"{var:5}") # 长度不够就正常输出字符串
Hello, World!
>>> print(f"{var:20}")
Hello, World!      # 注意这里是有空格的
>>> print(f"{var:>20}")
       Hello, World!
>>> print(f"{var:<20}")
Hello, World!      
>>> print(f"{var:^20}")
   Hello, World!    
>>> print(f"{var:*^20}")
___Hello, World!____
>>> print(f"{var:*<20}")
Hello, World!*******
>>> print(f"{var:*>20}")
#######Hello, World!
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

3. 日期和时间

针对 datetime 中的时间类,可以使用多种格式化输出方式,输出想要的时间格式。

>>> from datetime import datetime
>>> now: datetime = datetime.now()
>>> print(f"{now}")  # 2021-08-17 14:00:00.000000
2024-06-19 13:45:04.231588
>>> print(f"{now:%Y-%m-%d %H:%M:%S}")  # %H是24小时制, %I是12小时制
2024-06-19 13:45:04
>>> print(f"{now:%Y-%m-%d %I:%M:%S %p}")  # %p是AM/PM
2024-06-19 01:45:04 PM
>>> print(f"{now:%c}")  # %c是本地日期和时间
Wed Jun 19 13:45:04 2024
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4. 小数格式

对于浮点数,可以使用 .{数字}{格式} 的形式格式化,具体用法如下:

>>> n: float = 123456.78910
>>> print(f"{n:.2f}") # 可以发现,会四舍五入
123456.79
>>> print(f"{n:.2%}")
12345678.91%
>>> print(f"{n:.2e}")
1.23e+05
>>> print(f"{n:.0f}") # 去除小数部分,同时四舍五入
123457
>>> print(f"{n:,.2f}") # 可以结合千位分隔符
123,456.79
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5. 直出结果

对于变量,可以在 f 字符串中使用 = 来不光输出变量的值,并且连带着输出变量名,方便调试与查看。
常规写法的缺点:

  • 后续如果变量 var 的命名发生变化,则 f 字符串中将会有两处需要修改
  • 只输出内容,不输出引号(输出更加干净,在平时输出时应该算是优点,但是在调试时反而不如 = 格式化输出更加鲜明)
>>> a: int = 5
>>> b: int = 10
>>> var: str = "Hello, World!"
>>> print(f"{a + b = }")
a + b = 15
>>> print(f"var = {var}") # 常规写法
var = Hello, World!
>>> print(f"{var = }")
var = 'Hello, World!'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

参考资料:https://www.youtube.com/watch?v=EoNOWVYKyo0

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/1018809
推荐阅读
相关标签
  

闽ICP备14008679号