【Python】占位符格式化输出

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

猜你喜欢

转载自blog.csdn.net/qq_39147299/article/details/128455656