Python 格式字符串字面值 f-string 常见用法:调试输出、日期格式化、表达式计算、ASCII输出等

发布于:2025-06-25 ⋅ 阅读:(23) ⋅ 点赞:(0)

f-string 是Python 3.6 引入的新语法,称作格式字符串字面值,标注了 fF 前缀的字符串字面值。这种字符串可包含替换字段,即以 {} 标注的表达式。其他字符串字面值只是常量,格式字符串字面值则是可在运行时求值的表达式。f-string 功能强大、性能优越。

输出变量、可打印字符串、ASCII

name = "中国"
print(f"He said his name is {name}.")
print(f"He said his name is {name!s}.")
# He said his name is 中国.

print(f"He said his name is {name!r}.")
# He said his name is '中国'.

print(f"He said his name is {name!a}.")
# He said his name is '\u4e2d\u56fd'.

目前支持的转换旗标有三种: !s 会对值调用 str()!r 调用 repr()!a 则调用 ascii()

输出变量名和变量值

foo = "bar"
print(f"{ foo = }")
#  foo = 'bar'

大括号里的=用于输出变量名和变量值,一般用于调试。

表达式计算

# 计算圆的面积
radius = 5
print(f"半径为 {radius} 的圆面积是 {3.14 * radius ** 2:.2f}")
# 半径为 5 的圆面积是 78.50


# 条件表达式
age = 25
print(f"你{'已经' if age >= 18 else '还未'}成年")
# 你已经成年

格式化字符串

import decimal


width = 10
precision = 4
value = decimal.Decimal("12.34567")
print(f"result: {value:{width}.{precision}}")

# result:                1.346

:用户格式化输出字符串,width设置输出10位宽,precision设置精度,4位数。

日期格式化

from datetime import datetime


today = datetime.now()
print(f"今天是:{today:%Y-%m-%d %H:%M:%S}")
# 今天是:2025-06-21 23:59:59

print(f"{today=:%Y-%m-%d %H:%M:%S}")
# today=2025-06-21 23:59:59

输出十六进制

number = 1024
print(f"{number:x}, {number:#0x}")
# 400, 0x400

print(f"{number:b}, {number:#0b}")
# 10000000000, 0b10000000000

print(f"{number:o}, {number:#0o}")
# 2000, 0o2000

alpha = 0x61
print(f"{alpha:c}")
# a

可用的整数表示类型:
1

参考链接

https://docs.python.org/zh-cn/3.13/reference/lexical_analysis.html#formatted-string-literals
https://blog.csdn.net/lilongsy/article/details/105709553
https://docs.python.org/zh-cn/3.13/library/string.html#formatspec


网站公告

今日签到

点亮在社区的每一天
去签到