Python格式化字符串详解:百分号%标记及各种数据类型格式描述
格式总结:

格式说明 格式说明
%%
百分号%标记(多余的%是转义函数)
%c
字符及其 ASCII 代码
%s
细绳
%d
有符号整数(十进制)
%u
无符号整数(十进制)
%o
无符号整数(八进制)
%x
无符号整数(十六进制)
%X
无符号整数(十六进制大写字符)
%e
浮点数(科学计数法)
%E
浮点数(科学计数法,将e替换为E)
%f
浮点数(带小数点符号)
%g
浮点数(根据值自动选择%e或%f)
%G
浮点数(与%g类似,根据值自动选择%E或%f)
%p
指针(十六进制打印值的内存地址)
%n
将输出字符数存储在参数列表中的下一个变量中
不过,由于python中的所有内容都可以转换为字符串类型,因此如果没有特殊需求,可以使用'%s'来标记所有内容。
例如: '%s %s %s' % (1, 2.3, ['一', '二', '三'])
它的输出是'1 2.3['一','二','三']',是根据%左边的标记输出的。
虽然第一个和第二个值不是字符串类型,但是仍然没有问题。
【这个过程中,当计算机发现第一个值不是%s时,会先调用整型函数将第一个值1转换为字符串类型,然后调用str()函数输出。 ]
上面只是最简单的格式标记形式。让我们看看更复杂的:
指定输出长度:
“%6.2f”% 1.235
在这种形式中,f前面出现了一个类似小数的6.2,这意味着输出总长度为6个字符,其中有2位小数。
还有更复杂的:
占位符:
'.2f' % 1.235
6前面多了一个0,表示如果输出位数少于6位,则用0补足6位。
该行的输出是“001.24”。可以看到小数点也占一位。
这里类似于0的标记包括-和+。其中-表示左对齐,+表示在正数前面也标注一个+号,默认不加。
例子:
%ns:如果字符串变量s小于n位,则先输出若干空格,然后输出str1。
%-ns:与上面相反,先输出变量s,然后用空格填充任何不足的地方。
其他:
字典格式的输出:
'%(name)s:%(score)06.1f' %{'score':9.5, 'name':'newsim'}
仅当要输出的内容是字典时才使用这种形式。括号中的(name)和(score)对应以下键值对中的键。
有时在%6.2f的形式中,6和2不能预先指定,在程序运行过程中会再次生成。那么如何输入呢?当然,您不能使用%%d.%df 或%d.%d%f。 。
可以使用%*.*f的形式,当然这两个*值会被包含在后面的“要输出的值组”中。
例如: '%*.*f' % (6, 2, 2.345) 相当于 '%6.2f' % 2.345。
但是,如果你记不住,或者不想那么耐心,你完全可以将它们全部替换为 %s,或者使用多个“+”来构造类似的输出字符串。