Python的字符串格式化输出
概述
summary = '''
Python用一个tuple(其实可以不写tuple括号也可以)将多个值传递给模板,每个值对应一个格式符.
'''
example = '''
e.g :
依次传值
"I'm %s. I'm %d year old" % ('Hom', 30)
词典传值
"I'm %(name)s. I'm %(age)d year old" % {'name':'Hom', 'age':30}
'''
可以使用的格式符
#基本格式符
layout = '''
%s 字符串 (采用str()的显示)
%r 字符串 (采用repr()的显示)
%c 单个字符(chr()函数转换)
%b 二进制整数(只能用于字符串format方法和format函数,%不能用.)
%d和%i 十进制整数(带符号)
%u 十进制整数(不带符号)
%o 八进制整数
%x和%X 十六进制整数, 区别在于输出时大小写.
%e和%E 指数 (基底写为e或E)
%f和%F 浮点数
%g和%G 指数(e/E)或浮点数 (根据显示长度), 即%e和%f自动判断
%% 输出字符%
要是想输出%则要使用%%进行转义操作.
'''
#加强符
exactly = '''
(name): 命名,用于字典控制赋值
加强符: 正号+, 负号-, 空格 , 零0, 井号#
正号+ :表示正号或右对齐。01 数值显示正号; 02 数值或字符串从右向左 补齐输出长度 ,不足时 左侧补空格.
负号- :表示右对齐。01 数值或字符串从左向右 补齐输出长度 ,不足时 右侧补空格。
空格 :表示在正数的左侧填充一个空格,负数则不填充, 从而使得负数和正数对齐; 对字串无效。
零0 :表示使用0填充"左侧"多余空格部分。仅对数值起效, 不能和-一起用.
井号# :对于八进制和十六进制, 前面显示0或0x或0X
'''
#控制符
controller = '''
width: 显示宽度,总长度,会补齐空格. 该部分可以设为*, 此时长度由后面的元组中指定.
.precision: 对于数值, 表示小数点后精度; 对于数值转字符串, 表示字符串有效长度(包括.+-符号). 该部分可以设为*, 此时长度由后面的元组中指定.
一般使用*号代替
'''
实例
正号 及 零
# 正号 - 数值
a0 = "=%d=" % 10
a1 = "=%+d=" % 10
a2 = "=%+5d=" % 10
a3 = "=%+05d=" % 10
a4 = "=%05d=" % 10
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)
<<<输出>>>
=10=
=+10=
= +10=
=00010=
# 正号 - 补齐
b = "six"
b0 = "=%s=" % b
b1 = "=%10s=" % b
b2 = "=%+10s=" % b
print(b0)
print(b1)
print(b2)
<<<输出>>>
=six=
= six=
= six=
# 负号 - 数值
a0 = "=%d=" % 10
a1 = "=%-d=" % 10
a2 = "=%-5d=" % 10
a3 = "=%-05d=" % 10
print(a0)
print(a1)
print(a2)
print(a3)
<<<输出>>>
=10=
=10=
=10 =
=10 =
# 负号 - 补齐
b = "six"
b0 = "=%s=" % b
b1 = "=%-10s=" % b
print(b0)
print(b1)
<<<输出>>>
=six=
=six =
16进制
c0 = "%d to hex is %x" %(100, 100)
c1 = "%d to hex is %#x" %(100, 100)
print (c0)
print (c1)
<<<输出>>>
100 to hex is 64
100 to hex is 0x64
空格
d0 = "=% d=" % 5
d1 = "=% d=" % -5
d2 = "=% d=" % -5
print(d0)
print(d1)
print(d2)
<<<输出>>>
= 5=
=-5=
=-5=
控制 长度 及 截取
点号: 左侧指定输出长度, 右侧指定截取长度; 先截取再输出; 对数值 和 字串 生效
e = "string"
e0 = "=%5s=" % e # 指定输出长度
e1 = "=%.3s=" % e # 截取长度
e2 = "=%5.3s=" % e # 截取指定长度3,输出为指定长度5
e5 = "=%*.*s=" % (5, 3, 56.123456789) # e2 的动态写法
print(e0)
print(e1)
print(e2)
print(e5)
<<<输出>>>
=string=
=str=
= str=
=string=
= 56.=