8. 格式化输出进阶
f-string 高级技巧
浮点数四舍五入
python
num = 3.1415926
print(f"{num:.2f}") # 保留两位小数 → 3.14
print(f"{num:.4f}") # 保留四位小数 → 3.1416
int_num = 123.987
print(f"{int_num:.0f}") # 整数舍入(0位小数)→ 124
▶ 运行结果:
输出
3.14
3.1416
124
百分比格式化
python
rate = 0.758
print(f"{rate:.2%}") # 75.80%
print(f"{rate:.1%}") # 75.8%
rate2 = 0.3
print(f"{rate2:.0%}") # 30%
▶ 运行结果:
输出
75.80%
75.8%
30%
前导零设置
python
num1 = 5
num2 = 123
print(f"{num1:03d}") # 3位长度,不足补零 → 005
print(f"{num2:05d}") # 5位长度 → 00123
decimal_num = 7.89
print(f"{decimal_num:06.2f}") # 总长度6,保留2位小数 → 007.89
▶ 运行结果:
输出
005
00123
007.89
大数字格式化(千分位分隔符)
python
big_num = 1234567.89
print(f"{big_num:,}") # 1,234,567.89
print(f"{big_num:,.2f}") # 1,234,567.89(结合小数保留)
int_big = 987654321
print(f"{int_big:,}") # 987,654,321
▶ 运行结果:
输出
1,234,567.89
1,234,567.89
987,654,321
文本对齐 + 自定义填充字符
python
text = "Python"
print(f"{text:<10}") # 左对齐,总长度10 → "Python "
print(f"{text:>10}") # 右对齐,总长度10 → " Python"
print(f"{text:^10}") # 居中对齐 → " Python "
# 填充自定义字符(仅支持一个字符)
print(f"{text:-<10}") # 左对齐,填充 - → "Python----"
print(f"{text:=>10}") # 右对齐,填充 = → "====Python"
print(f"{text:*^10}") # 居中,填充 * → "**Python**"
▶ 运行结果:
输出
Python
Python
Python
Python----
====Python
**Python**
日期时间格式化
python
import datetime
now = datetime.datetime.now()
print(f"{now:%Y-%m-%d}") # 年-月-日 → 2025-11-13
print(f"{now:%Y/%m/%d %H:%M:%S}") # 年/月/日 时:分:秒 → 2025/11/13 17:40:09
print(f"{now:%H:%M:%S}") # 时:分:秒 → 17:40:09
print(f"{now:%A, %B %d, %Y}") # 星期, 月份 日期, 年 → Monday, November 13, 2025
today = datetime.date.today()
print(f"{today:%d/%m/%Y}") # 日期/月/年 → 13/11/2025
▶ 运行结果:
输出
2026-07-19
2026/07/19 11:09:43
11:09:43
Sunday, July 19, 2026
19/07/2026
调试技巧(f-string 便捷调试)
python
x = 10
y = 20
print(f"{x = }") # 直接显示变量名和值 → x = 10
print(f"{y = }") # y = 20
print(f"{x + y = }") # x + y = 30
num = 3.1415
print(f"{num = :.2f}") # 结合格式 → num = 3.14
▶ 运行结果:
输出
x = 10
y = 20
x + y = 30
num = 3.14
动态设置宽度和精度
python
width = 8
precision = 2
value = 123.456
print(f"{value:{width}.{precision}f}") # 总宽度8,保留2位 → " 123.46"
▶ 运行结果:
输出
123.46
列表去掉 [ ] 输出
python
my_list = [1, 2, 3, 4]
# 方法1:用 join() 拼接
print(' '.join(map(str, my_list))) # 1 2 3 4
print(','.join(map(str, my_list))) # 1,2,3,4
# 方法2:用 * 解包列表
print(*my_list) # 1 2 3 4
print(*my_list, sep=',') # 1,2,3,4
# 方法3:str() + 字符处理
print(str([my_list]).strip("]").strip("["))
print(str([my_list]).strip("]").strip("[").replace(",", " "))
▶ 运行结果:
输出
1 2 3 4
1,2,3,4
1 2 3 4
1,2,3,4
1, 2, 3, 4
1 2 3 4
输出二进制数
Python 提供多种方式输出二进制格式的整数:
python
num = 10
# 使用 format() 方法
print('{0:b}'.format(num)) # 1010
# 使用 f-string
print(f'{num:b}') # 1010
# 使用 bin() 函数(含 0b 前缀)
binary_str = bin(num)[2:] # 去掉前缀 '0b'
print(binary_str) # 1010
▶ 运行结果:
输出
1010
1010
1010