找回密码
 立即注册
首页 资源区 代码 Python f-string 全攻略:从入门到大师,让你的编码效率 ...

Python f-string 全攻略:从入门到大师,让你的编码效率翻倍!

123qwe 2025-5-28 22:21:05
目录

  • 什么是 f-string
  • 基础用法

    • 变量插值
    • 表达式嵌入
    • 调用函数

  • 数字格式化

    • 千位分隔符
    • 控制小数位数
    • 百分比转换
    • 科学计数法

  • 文本对齐与填充

    • 填充对齐
    • 自定义填充字符

  • 日期时间格式化
  • 进阶技巧

    • 嵌套 f-string
    • 动态格式化参数
    • 表格对齐
    • 自记录表达式(调试输出)

  • 与其他格式化方法的对比

什么是 f-string

f-string 是 Python 3.6 引入的一种字符串格式化方法。通过在字符串前加 f 或 F 前缀,直接在 {} 中嵌入变量或表达式。相比传统的 % 格式化和 str.format() 方法,f-string 执行速度更快,并且支持复杂的格式化操作,如数字精度控制、对齐、日期格式化等,甚至可用于代码调试。
基础用法

变量插值
  1. name: str = "张三"
  2. age: int = 25
  3. print(f"我是{name},今年{age}岁。")
  4. # 输出: 我是张三,今年25岁。
复制代码
表达式嵌入
  1. x, y = 10, 20
  2. print(f"{x} + {y} = {x + y}")
  3. # 输出: 10 + 20 = 30
复制代码
调用函数
  1. def square(n):
  2.     return n ** 2
  3. num = 5
  4. print(f"{num} 的平方等于 {square(num)}")
  5. # 输出: 5 的平方等于 25
复制代码
数字格式化

千位分隔符
  1. money = 1000000000
  2. print(f"{money:,} 元")
  3. # 输出: 1,000,000,000 元
  4. print(f"{money:_} 元")
  5. # 输出: 1_000_000_000 元
复制代码
控制小数位数
  1. pi = 3.1415926535
  2. print(f"四舍五入到两位: {pi:.2f}")
  3. # 输出: 四舍五入到两位: 3.14
  4. print(f"四舍五入到整数: {pi:.0f}")
  5. # 输出: 四舍五入到整数: 3
复制代码
百分比转换
  1. ratio = 0.75
  2. print(f"百分比: {ratio:.2%}")
  3. # 输出: 百分比: 75.00%
复制代码
科学计数法
  1. value = 0.0001234
  2. print(f"科学计数法: {value:.2e}")
  3. # 输出: 科学计数法: 1.23e-04
复制代码
文本对齐与填充

填充对齐
  1. text = "Python"
  2. print(f"填充10字符左对齐: '{text:<10}'")      # 左对齐
  3. # 输出: 填充20字符左对齐: 'Python              '
  4. print(f"填充10字符右对齐: '{text:>10}'")      # 右对齐
  5. # 输出: 填充20字符右对齐: '              Python'
  6. print(f"填充10字符居中对齐: '{text:^10}'")    # 居中对齐
  7. # 输出: 填充20字符居中对齐: '       Python       '
复制代码
自定义填充字符
  1. text = "Python"
  2. print(f"{text:_^20}")
  3. # 输出: _______Python_______
  4. print(f"{text:#^20}")
  5. # 输出: #######Python#######
复制代码
日期时间格式化
  1. from datetime import datetime
  2. now = datetime.now()
  3. print(f"日期: {now:%Y-%m-%d}")
  4. # 输出: 日期: 2025-05-26
  5. print(f"时间: {now:%H:%M:%S}")
  6. # 输出: 时间: 15:01:15
  7. print(f"当地时间: {now:%c}")
  8. # 输出: 当地时间: Mon May 26 15:01:15 2025
  9. print(f"12小时制: {now:%I%p}")
  10. # 输出: 12小时制: 03PM
复制代码
进阶技巧

嵌套 f-string
  1. value = 42
  2. print(f"{f'The value is {value}':^30}")
  3. # 输出: '       The value is 42        '
复制代码
动态格式化参数
  1. width = 20
  2. precision = 2
  3. num = 3.14159
  4. print(f"Pi: '{num:^{width}.{precision}f}'")
  5. # 输出: Pi: '        3.14        '
复制代码
表格对齐
  1. print(f"{'ID':<5} {'Name':<10} {'Score':>6}")
  2. print(f"1   {'Alice'}     {85.5:>6.2f}")
  3. print(f"2   {'Bob'}       {92.0:>6.2f}")
  4. # 输出:
  5. # ID    Name        Score
  6. # 1     Alice       85.50
  7. # 2     Bob         92.00
复制代码
自记录表达式(调试输出)

f-string 支持在花括号内使用 = 符号来输出表达式及其结果,这在调试时非常有用:
  1. a, b = 10, 5
  2. print(f"{a = }")  # 输出: a = 10
  3. print(f"{a + b = }")  # 输出: a + b = 15
  4. print(f"{a * b = }")  # 输出: a * b = 50
  5. print(f"{bool(a) = }")  # 输出: bool(a) = True
复制代码
与其他格式化方法的对比

方法优点缺点% 格式化语法简单可读性差,不支持复杂格式化str.format()灵活性高代码冗长f-string简洁、高效、可读性强需 Python 3.6+
来源:新程序网络收集,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册