Python的格式化输出
使用 % 符号进行格式化输出
使用%
符号表示占位符,从而实现格式化输出的方法,应该在很多高级编程语言都是可以直接使用的。通常的有%d
表示输出十进制整数、%f
表示输出浮点小数、%s
表示输出字符串等等。
除了用占位符直接输出,我们有时候可能需要数字或字符串以左对齐或者右对齐的方式输出,或者需要输出占用指定位数的空间(保证数据显示比较整齐),又或者以保留指定位数的方式输出小数等等问题。这就需要我们对占位符有进一步的了解,对于第一个问题,比如我们要输出占10
个空间大小的整数,则可以写成%10d
,其他占位符可以类似操作。对于第二个问题,有占位符的情况下,输出是右对齐的。Python 如果需要左对齐,只要将%10d
变为%-10d
即可。对于第三个问题,比如我们要输出2
位小数,则可以写成%.2f
。注意,这里保留2
位小数默认是四舍五入的。
示例程序:
#使用占位符直接输出
print("%d %f %s" % (20, 20.5, "hello python!"))
#以右对齐方式输出占10位空间大小的整数,并且用0补齐输出
print("%010d" % 100)
#以保留3位小数的方式输出小数,注意是四舍五入的方式
print("%.3f" %(3.1416))
更多的占位符:
使用 format 进行格式化输出
使用format
进行格式化输出,最早是在 Python 2.6 开始使用,主要是通过{}
和format
关键字来引出,用法和之前的占位符使用有点类似,不过这里不需要指明输出类型,而且需要多次输出的变量只需要显示传入一次即可。
示例程序:
#指明要输出的变量的顺序
print("{0} {1} {2} {0} {1}".format(20, 20.5, "hello python!"))
#指明要输出的变量的名称
print("{a} {b}".format(b=666, a=123))
dt = {"a":123, "b":666}
#以解析关键字参数的方式输出
print("{a} {b}".format(**dt))
那如果我们又遇到之前对齐方式或者保留指定位数等问题呢?可以参照下列示例程序。
示例程序:
#以右对齐方式输出占10位空间大小的整数,并且用0补齐输出
print("{:>010}".format(100))
#以居中对齐方式输出占10位空间大小的整数,并且用0补齐输出
print("{:^010}".format(100))
#以保留3位小数的方式输出小数,注意是四舍五入的方式
print("{:.3f}".format(3.1416))
使用 f-string 进行格式化输出
f-string
是从 Python 3.6 才开始使用的一种格式化输出的办法,相比前面两种格式化输出,使用f-string
更易读,更简洁,不易出错,而且速度更快!使用的时候通过f
关键字引出,然后要输出的变量直接在输出内容中用{}
引出。然后其他使用和前面的format
方式类似。
示例程序:
a = 5
dt = {'a': 123, 'b': 666}
print(f"{a} {dt}")
#以右对齐方式输出占10位空间大小的整数,并且用0补齐输出
print(f"{a:>010}")
b = 3.1416
#以保留3位小数的方式输出小数,注意是四舍五入的方式
print(f"{b:.3f}")
总结:我还是喜欢用第一种(%d)的方法来输出。
可以直接返回格式化字符串:
t=100
return '%.2f'%t