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      

==================================================

 

 

==================================================

 

posted @ 2026-09-29 20:19  emanlee  阅读(8)  评论(0)    收藏  举报