您的位置:首页 > 汽车 > 时评 > python格式化输出之 f 字符串(f string)用法

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

2024/11/18 22:41:30 来源:https://blog.csdn.net/weixin_45696455/article/details/139801439  浏览:    关键词:python格式化输出之 f 字符串(f string)用法

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

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!

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

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

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!'

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com