f-string例举

246 阅读3分钟

在 f-string 中,{} 中的内容可以使用格式说明符进行更细致的控制,控制格式的具体方式是通过在花括号中使用冒号 : 后接格式化说明符。f"{x:02}" 是一种格式化写法,其中的 02 是一个格式说明符,意味着:格式化数字时,数字最少需要两位,不足两位时用零填充。

以下是一些常见的类似 f"{x:02}" 的格式说明符及其用法:


1. 数字格式化

  • 填充与宽度

    • f"{x:02}":将 x 格式化为至少 2 位,不足的位数用零填充。
    • f"{x:05}":将 x 格式化为至少 5 位,不足的位数用零填充。
    • f"{x:10}":将 x 格式化为 10 位,默认使用空格填充。

    示例:

    x = 7
    print(f"{x:02}")  # 输出 07
    print(f"{x:05}")  # 输出 00007
    print(f"{x:10}")  # 输出 '         7'(9个空格填充)
    
  • 对齐

    • f"{x:<5}":左对齐,宽度 5 位。
    • f"{x:^5}":居中对齐,宽度 5 位。
    • f"{x:>5}":右对齐,宽度 5 位。

    示例:

    x = 7
    print(f"{x:<5}")  # 输出 '7    '(左对齐)
    print(f"{x:^5}")  # 输出 '  7  '(居中对齐)
    print(f"{x:>5}")  # 输出 '    7'(右对齐)
    
  • 填充字符

    • f"{x:.^10}":使用点号 . 填充,居中对齐,宽度为 10。
    • f"{x:*^10}":使用星号 * 填充,居中对齐,宽度为 10。

    示例:

    x = 7
    print(f"{x:.^10}")  # 输出 '....7.....'
    print(f"{x:*^10}")  # 输出 '****7****'
    

2. 浮动点数格式化

  • 小数位数

    • f"{x:.2f}":将 x 格式化为保留 2 位小数。
    • f"{x:.3f}":将 x 格式化为保留 3 位小数。

    示例:

    pi = 3.14159
    print(f"{pi:.2f}")  # 输出 3.14
    print(f"{pi:.3f}")  # 输出 3.142
    
  • 科学计数法

    • f"{x:.2e}":将 x 格式化为科学计数法,保留 2 位小数。

    示例:

    large_number = 123456789
    print(f"{large_number:.2e}")  # 输出 1.23e+08
    
  • 百分比

    • f"{x:.2%}":将 x 格式化为百分数,保留 2 位小数。

    示例:

    percentage = 0.567
    print(f"{percentage:.2%}")  # 输出 56.70%
    

3. 十进制、十六进制、八进制和二进制格式化

  • 十进制

    • f"{x:d}":将 x 格式化为十进制。

    示例:

    x = 42
    print(f"{x:d}")  # 输出 42
    
  • 十六进制

    • f"{x:x}":将 x 格式化为小写十六进制。
    • f"{x:X}":将 x 格式化为大写十六进制。

    示例:

    x = 255
    print(f"{x:x}")  # 输出 ff
    print(f"{x:X}")  # 输出 FF
    
  • 八进制

    • f"{x:o}":将 x 格式化为八进制。

    示例:

    x = 64
    print(f"{x:o}")  # 输出 100
    
  • 二进制

    • f"{x:b}":将 x 格式化为二进制。

    示例:

    x = 5
    print(f"{x:b}")  # 输出 101
    

4. 数字千分位分隔符

  • f"{x:,}":将 x 格式化为包含千分位分隔符的数字。

    示例:

    large_number = 1000000
    print(f"{large_number:,}")  # 输出 1,000,000
    

5. 宽度与对齐结合

可以同时指定宽度、对齐方式和填充字符。例如:

  • f"{x:*^10}":居中对齐,使用星号填充,总宽度为 10。
  • f"{x:*>10}":右对齐,使用星号填充,总宽度为 10。
  • f"{x:<10}":左对齐,使用空格填充,总宽度为 10。

6. 日期和时间格式化

使用日期格式化字符串来控制日期和时间的格式。

from datetime import datetime
now = datetime.now()
print(f"{now:%Y-%m-%d}")  # 输出:2024-12-06
print(f"{now:%H:%M:%S}")  # 输出:14:35:45

总结

f-string 的格式化语法非常灵活,可以用于多种场景,包括数字、日期、时间、对齐、填充等。常见的语法包括:

  • 填充与宽度:{x:02}, {x:10}, {x:.^10}
  • 浮点数格式:{x:.2f}, {x:.2e}, {x:.2%}
  • 数字格式:{x:d}, {x:x}, {x:b}, {x:,}
  • 日期和时间:{x:%Y-%m-%d}, {x:%H:%M:%S}
  • 对齐与填充:{x:<5}, {x:>5}, {x:*^10}

f-string 提供了非常简洁、强大的字符串格式化能力,广泛应用于数据展示和报告生成中。