Python 输出整数 123,总宽度 10 个字符;格式化输出,格式化字符串
Python 输出整数 123,总宽度 10 个字符
目标:把数字 123 输出,占 10 个字符位置,分:右对齐(默认)、左对齐、居中、补 0、补其他符号。
说明:
123本身 3 个字符,剩余 7 个是填充字符(空格 / 0 等)
方式 1:% 旧式格式化(C 风格)
num = 123
print("%10d" % num) # 右对齐,空格填充,占10位
print("%-10d" % num) # 左对齐,空格填充
print("%010d" % num) # 右对齐,0填充
输出:
123
123
0000000123
方式 2:str.format () 格式化
num = 123
print("{:10d}".format(num)) # 右对齐(默认)
print("{:<10d}".format(num)) # 左对齐 <
print("{:>10d}".format(num)) # 右对齐 >
print("{:^10d}".format(num)) # 居中 ^
print("{:010d}".format(num)) # 补0右对齐
print("{:_10d}".format(num)) # 下划线填充 【这个错误;填充字符必须写在对齐符号前面,不能直接写_10d。 数字类型默认是右对齐>,但是如果你要自定义填充字符,必须显式写出对齐符号!】
print("{:_>10d}".format(num)) # 下划线填充
输出:
123
123
123
123
0000000123
_______123
方式 3:f-string(Python3.6+,最推荐)
num = 123
print(f"{num:10d}") # 右对齐,空格
print(f"{num:<10d}") # 左对齐
print(f"{num:>10d}") # 右对齐
print(f"{num:^10d}") # 居中
print(f"{num:010d}") # 补0
print(f"{num:->10d}") # 短横线填充+右对齐
输出同上。
格式符号速查表
表格
| 符号 | 含义 | 示例 f"{123: 符号 10d}" | 结果(10 字符) |
|---|---|---|---|
> |
右对齐(数字默认) | f"{123:>10d}" |
123 |
< |
左对齐 | f"{123:<10d}" |
123 |
^ |
居中对齐 | f"{123:^10d}" |
123 |
0 |
填充 0(只能用于数字) | f"{123:010d}" |
0000000123 |
| 任意字符 | 自定义填充符,写在对齐符前面 | f"{123:#>10d}" |
#######123 |
方式 4:format 函数
num = 123
print(format(num,"10d"))# 右对齐,空格
print(format(num,"<10d")) # 左对齐
print(format(num,">10d")) # 右对齐
print(format(num,"^10d")) # 居中
print(format(num,"010d")) # 补0
print(format(num,"->10d")) # 短横线填充+右对齐
输出:
123
123
123
123
0000000123
-------123
==================================================
两个整数:num1=123,num2=456,每个数字占 10 字符宽度。
博客原文核心三类:
%、str.format、f-string,下面一次性全部示例。
num1 = 123
num2 = 456
print("="*60)
print("1. 旧式 % 格式化(C风格)")
print("%10d%10d" % (num1, num2)) # 右对齐,空格填充
print("%-10d%-10d" % (num1, num2)) # 左对齐,空格填充
print("%010d%010d" % (num1, num2)) # 右对齐,0填充
print("="*60)
print("2. str.format() 格式化(重点,课堂用)")
# 2.1 自动按顺序占位 {}
print("{:10d}{:10d}".format(num1, num2))
# 2.2 索引 {0},{1}
print("{0:10d}{1:10d}".format(num1, num2))
# 2.3 命名参数
print("{a:10d}{b:10d}".format(a=num1, b=num2))
# 对齐符号 > < ^
print("{:>10d}{:>10d}".format(num1, num2)) # 显式右对齐
print("{:<10d}{:<10d}".format(num1, num2)) # 左对齐
print("{:^10d}{:^10d}".format(num1, num2)) # 居中对齐
# 自定义填充字符【必须写对齐符!之前踩坑点】
print("{:_>10d}{:_>10d}".format(num1, num2)) #下划线填充右对齐
print("{:_<10d}{:_<10d}".format(num1, num2)) #下划线填充左对齐
print("{:_^10d}{:_^10d}".format(num1, num2)) #下划线填充居中
print("{:0>10d}{:0>10d}".format(num1, num2)) #0填充右对齐
print("{:-^10d}{:-^10d}".format(num1, num2)) #短横线居中
# 动态宽度(变量指定宽度)
w = 10
print("{:{w}d}{:{w}d}".format(num1, num2, w=w))
print("="*60)
print("3. f-string 格式化(Python3.6+)")
print(f"{num1:10d}{num2:10d}")
print(f"{num1:>10d}{num2:>10d}")
print(f"{num1:<10d}{num2:<10d}")
print(f"{num1:^10d}{num2:^10d}")
print(f"{num1:_>10d}{num2:_>10d}")
print(f"{num1:0>10d}{num2:0>10d}")
print("="*60)
print("4. 附加:正负号格式(博客原文包含符号控制)")
num3 = -123
num4 = -456
print("{:10d}{:10d}".format(num3, num4))
print("{:+=10d}{:+=10d}".format(num1, num2)) #显示正负号
print("{: =10d}{: =10d}".format(num1, num2)) #正数前面留空格
输出预览
============================================================
1. 旧式 % 格式化(C风格)
123 456
123 456
00000001230000000456
============================================================
2. str.format() 格式化(重点,课堂用)
123 456
123 456
123 456
123 456
123 456
123 456
_______123_______456
123_______456_______
___123_______456___
00000001230000000456
---123-------456----
123 456
============================================================
3. f-string 格式化(Python3.6+)
123 456
123 456
123 456
123 456
_______123_______456
00000001230000000456
============================================================
4. 附加:正负号格式(博客原文包含符号控制)
-123 -456
+123 +456
123 456
==================================================
==================================================

浙公网安备 33010602011771号