Python的格式化输出
方法一:传统方法
与C语言类似,可以采用%作为格式化输出的标记。如:
print('the first number: %5d, the second number: %8.2f' % (123, 456.789))
整数的输出
%d 十进制 %o 八进制 %x 十六进制
浮点数的输出
%f 保留小数点后面6位有效数字,%.3f保留3位小数位
%e 保留小数点后面6位有效数字,指数形式输出,%.3e保留3位小数位,指数形式输出
字符串的输出
%s 字符串;%c 字符
%10s 右对齐,占位符10位;%-10s 左对齐,占位符10位
%.2s 截取2位字符串; %10.2s 10位占位符,截取两位字符串
其他(常用转义字符)
\ 续行符;\\ 反斜杠符号;\' 单引号;\" 双引号;\n 换行;\t 横向制表符;\v 纵向制表符
方法二:format方法
与第一种方法相比,新的Python版本更倾向于使用format方法。它的使用也更加灵活,下面简单介绍一下:
template.format(p0, p1, ..., k0=v0, k1=v1, ...)
template是一个字符串,其中包括需要格式化输出的部分,这些部分各用大括号括起来{}。format后面的参数p表示第几个位置的需要格式化输出的变量。如:
“first argument: {0}, second one: {1}”.format(47, 11) # "first argument: 47, second one: 11"
大括号里面的数字代表了第几个参数,Python是从0开始计算的。位置后冒号之后的参数,则分别代表了每个格式化输出部分的格式。如{0: 5d}, {1: 8.2f}。还有些参数选项可以选择加在“:”后:
‘<’ 表示左对齐;‘>’ 表示右对齐;‘^’ 表示居中;:号后面带填充的字符,只能是一个字符,不指定默认用空格填充;
‘,’ 表示用‘,’作为千分位分隔符,+ 表示在正数前显示+,在负数前显示-
不设置指定位置,按默认顺序
"{} {}".format("hello", "world")
设置指定位置
"{0} {1}".format("hello", "world")
设置参数
"网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com")
通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
"网站名:{0[name]}, 地址 {a[url]}".format(site)
通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
"网站名:{0[0]}, 地址 {0[1]}".format(my_list)