目录
字符串的格式化
常见的格式字符
格式字符 |
说明 |
%s |
字符串 (采用str()的显示) |
%r |
字符串 (采用repr()的显示) |
%c |
单个字符 |
%b |
二进制整数 |
%d |
十进制整数 |
%i |
十进制整数 |
%o |
八进制整数 |
%x |
十六进制整数 |
%e |
指数 (基底写为e) |
%E |
指数 (基底写为E) |
%f、%F、%F |
浮点数 |
%g |
指数(e)或浮点数 (根据显示长度) |
%G |
指数(E)或浮点数 (根据显示长度) |
%% |
字符"%""%" |
例子:
>>> x = 1235
>>> so="%o" % x
>>> so
"2323"
>>> sh = "%x" % x
>>> sh
"4d3"
>>> se = "%e" % x
>>> se
"1.235000e+03"
>>> chr(ord("3")+1)
"4"
>>> "%s"%65
"65"
>>> "%s"%65333
"65333"
>>> "%d"%"555" #试图将字符串转换为整数进行输出,抛出异常
TypeError: %d format: a number is required, not str
>>> int('555') #可以使用int()函数将合法的数字字符串转换为整数
555
>>> '%s'%[1, 2, 3]
'[1, 2, 3]'
>>> str((1,2,3)) #可以使用str()函数将任意类型数据转换为字符串
'(1, 2, 3)'
>>> str([1,2,3])
'[1, 2, 3]'
format()方法
更加灵活,不仅可以使用位置进行格式化,还支持使用与位置无关的参数名字来进行格式化,并且支持序列解包格式化字符串
【 例1】
print("The number {0:,} in hex is: {0:#x}, the number {1} in oct is {1:#o}".format(5555,55))
输出:
The number 5,555 in hex is:0x15b3, the number 55 in oct is 0o67
解析:
{0:}或者{0}代表format(a0,a1,a2)中的a0,{0:#格式字符}即对a0进行格式化
【例2】
print("my name is {name}, my age is {age}, and my QQ is {qq}".format(name = "Dong Fuguo",age = 37,qq = "306467355"))
输出:
my name is Dong Fuguo, my age is 37, and my QQ is 306467355