python中格式化输出%d,%-5d, %05d,%.5f区别

8,283 阅读2分钟
以打印输出1-100间整数的累计求和为例,进行说明:


1. %d 普通的整数输出

[Python]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1~100的和为:%d" % (sum,))
# 1~100的和为:5050

最后,再来一点小拓展:



2. %-5d 整数输出,整数的宽度是5位,不足5位,右边补空格

[Python]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1~100的和为:%-5d" % (sum,))
# 1~100的和为:5050
# 其实在5050后面还有一个空格, 用鼠标选中拖黑就能发现其中奥妙奥


3. %5d 整数输出,整数的宽度是5位,不足5位,则从左边以数字0填充,补齐位数,本处是5位数,则需在最左侧补1个0。

[Python]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
9
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1~100的和为:%05d" % (sum,))
# 1~100的和为:05050


4. %.5f 输出小数,即保留小数点后5位数字

[Python]
纯文本查看
复制代码
1
2
3
4
5
6
7
8
9
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1~100的和为:%.5f" % (sum,))
# 1~100的和为:5050.00000


最后,再来一点小拓展:

默认情况下,转换出来的字符串总是右对齐的,不够宽度时左边补充空格。Python 也允许在最小宽度之前添加一个标志来改变这种行为,Python 支持如下标志:
  • -:指定左对齐。
  • +:表示数值总要带着符号(正数带“+”,负数带“-”)。
  • 0:表示不补充空格,而是补充 0。
提示:这三个标志可以同时存在.



同上:

[Python]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print("1~100的和为:%+06d" % sum)
# 最小宽度为6,左边补0,总带上符号
# 1~100的和为:+05050
print("1~100的和为:%-6d" % sum)
# 最小宽度为6,左对齐
# 1~100的和为:5050
# 不要忘记用鼠标选中拖黑才能发现其中奥秘噢

更多学习资料可关注:itheimaGZ获取