1.说明
Python的格式化输出有好几种方式,比较常用的是%格式化、format()方法以及3.6版本支持的f-string,这三种格式化的用法这里不讲,这里主要讲一下控制占位符的格式,比如说输出长度、对齐方式
2.格式化占位符
占位符 | 说明 |
---|---|
%s | 字符串str() |
%r | 字符串repr() |
%c | 单个字符 |
%b | 二进制整数 |
%o | 八进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%x | 十六进制整数 |
%f | 浮点数 |
%e | e指数 |
%E | E指数 |
%g | e指数或浮点数 |
%G | E指数或浮点数 |
%% | % |
a = 263
b = 168.23654789541255
c = "hello"
print("%d,%f" % (a, b)) # 输出:263,168.236548
print("%f,%d" % (a, b)) # 输出:263.000000,168
print("%o,%x,%e" % (a, a, a)) # 输出:407,107,2.630000e+02
print("%s,%r,%c" % (c, c, 65)) # 输出:hello,'hello',A
3.长度格式
3.1 %方式
a = 263
b = 168.2365
c = "hello"
# 指定输出整数位数,不够则左边补空格或0,-表示左对齐
print("%-5d, %5d, %05d" % (a, a, a)) # 输出:263 , 263, 00263
# 指定保留小数位数(会四舍五入),长度不够则右边补0
print("%f, %.3f, %.5f" % (b, b, b)) # 输出:168.236500, 168.237, 168.23650
# 指定字符串长度,不够则补空格,-表示左对齐
print("%-10s, %10s" % (c, c)) # 输出:hello , hello
3.2 format方式
可以把控制格式写在大括号里的冒号的右边
a = 263
b = 168.2365
c = "hello"
# 右对齐,长度不够则左边补0
print("{:0>5d}".format(a)) # 输出:00263
# 左对齐,长度不够左边补*
print("{:*<5d}".format(a)) # 输出:263**
# 中间对齐,长度不够左右两边都补空格
print("{:^5d}".format(a)) # 输出: 263
# 保留2位小数并保留符号
print("{:.2f}, {:+.2f}, {:-.2f}".format(b, b, b)) # 输出:168.24, +168.24, 168.24
# 长度为10,不够则补空格,居左、居中、居右对齐
print("{:<10s}, {:^10s}, {:>10s}".format(c, c, c)) # 输出:hello , hello , hello
3.3 f-string方式
f-string其实与format()差不多,把变量名写在大括号里的冒号左边即可
a = 263
b = 168.2365
c = "hello"
# 右对齐,长度不够则左边补0
print(f"{
a:0>5d}") # 输出:00263
# 左对齐,长度不够左边补*
print(f"{
a:*<5d}") # 输出:263**
# 中间对齐,长度不够左右两边都补空格
print(f"{
a:^5d}") # 输出: 263
# 保留2位小数并保留符号
print(f"{
b:.2f}, {
b:+.2f}, {
b:-.2f}") # 输出:168.24, +168.24, 168.24
# 长度为10,不够则补空格,居左、居中、居右对齐
print(f"{
c:<10s}, {
c:^10s}, {
c:>10s}") # 输出:hello , hello , hello