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