Python f-string格式化输出详解

在Python中使用f-string进行格式化输出时,可通过特定的语法符号实现左对齐、右对齐和保留小数等操作。以下是具体实现方式及示例:


​一、对齐控制​

1. ​​左对齐​
  • ​语法​​:{变量:<宽度}
    <符号实现左对齐,宽度表示总占位字符数。若内容长度不足,默认用空格填充右侧。
    ​示例​​:
    
    

    python

    复制

    text = "Python"
    print(f"|{text:<10}|")  # 输出 |Python    |[1,3,5](@ref)
  • 2. ​​右对齐​
  • ​语法​​:{变量:>宽度}
    >符号实现右对齐,宽度为总占位字符数,默认空格填充左侧。
    ​示例​​:
    
    

    python

    复制

    num = 123
    print(f"|{num:>8}|")  # 输出 |     123|[2,3,5](@ref)
  • 3. ​​居中对齐​
  • ​语法​​:{变量:^宽度}
    ^符号实现居中对齐,默认空格填充两侧。
    ​示例​​:
    
    

    python

    复制

    text = "Hello"
    print(f"|{text:^10}|")  # 输出 |  Hello   |[3,6](@ref)

  • ​二、保留小数​

    1. ​​固定小数位数​
  • ​语法​​:{变量:.nf}
    n表示保留的小数位数,自动四舍五入。
    ​示例​​:
    
    

    python

    复制

    num = 3.1415926
    print(f"{num:.2f}")  # 输出 3.14[7,8](@ref)
  • 2. ​​结合对齐与小数​
  • ​语法​​:{变量:>宽度.nf}
    可同时指定对齐方式和保留小数。
    ​示例​​:
    
    

    python

    复制

    price = 19.99
    print(f"|{price:>10.2f}|")  # 输出 |     19.99|[6,9](@ref)
  • 3. ​​千分位分隔符​
  • ​语法​​:{变量:,.nf}
    ,实现千分位分隔符,常用于金额或大数字。
    ​示例​​:
    
    

    python

    复制

    value = 1234567.89
    print(f"{value:,.2f}")  # 输出 1,234,567.89[6,9](@ref)

  • ​三、填充字符控制​

    可通过指定填充符号(如*-等)替代默认空格,需在对齐符号前添加填充符。
    ​示例​​:

    
    

    python

    复制

    text = "Python"
    print(f"|{text:*<10}|")  # 输出 |Python​**​​**​|[3,5](@ref)
    value = 3.14
    print(f"|{value:0>8.2f}|")  # 输出 |00003.14|[6](@ref)

    ​四、动态格式控制​

    f-string允许通过变量动态设置对齐宽度或小数位数,适用于需要灵活调整的场景。
    ​示例​​:

    
    

    python

    复制

    width = 12
    precision = 3
    num = 3.14159
    print(f"|{num:<{width}.{precision}f}|")  # 输出 |3.142      |[9](@ref)

    ​五、综合应用场景​

    1. ​​表格对齐输出​
    
    

    python

    复制

    headers = ["商品", "价格", "库存"]
    data = [("苹果", 5.5, 100), ("香蕉", 2.99, 50), ("西瓜", 15.8, 20)]
    
    # 动态计算对齐宽度
    max_name_length = max(len(item[0]) for item in data)
    print(f"{headers[0]:<{max_name_length}} {headers[1]:>8} {headers[2]:>6}")
    for name, price, stock in data:
        print(f"{name:<{max_name_length}} {price:>8.2f} {stock:>6d}")

    输出:

    商品     价格   库存
    苹果      5.50    100
    香蕉      2.99     50
    西瓜     15.80     20
    [3,6](@ref)
    2. ​​调试变量值​

    Python 3.8+支持=符号直接输出变量名和值:

    
    

    python

    复制

    x = 100
    print(f"{x=}")  # 输出 x=100[9](@ref)

    ​总结​

    ​操作​ ​语法​ ​示例​ 引用来源
    左对齐 {变量:<宽度} f"{'Python':<10}"

    1

    3

    5

    右对齐 {变量:>宽度} f"{123:>8}"

    2

    3

    5

    保留小数 {变量:.nf} f"{3.14159:.2f}"

    7

    8

    千分位分隔符 {变量:,.nf} f"{1234567.89:,.2f}"

    6

    9

    自定义填充字符 {变量:填充符对齐符号} f"{'Python':*<10}"

    3

    5

    通过灵活组合这些语法,可以满足大多数格式化输出需求,同时提升代码可读性和专业性。

    作者:m0_dawn

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python f-string格式化输出详解

    发表回复