Python 字符串格式化
首先申明下,本文为笔者学习《Python学习手册》的笔记,并加入笔者自己的理解和归纳总结。
1、字符串格式化表达式(%)
格式符%[(name)][flags][width][.precision]typecode(1) (name)可选,用于选择指定的key。
>>> "%(name)s is %(age)d" % {"name":"Mike", "age":18}
'Mike is 18'(2) flags可选,可以选择的值有:(+)右对齐,正数前加号,负数前减号。
(-)左对齐,正数前无符号,负数前减号。
(空格)右对齐,正数前空格,负数前减号。
(0)右对齐,正数前无符号,负数前减号,用0填充空白处。
>>> "%10d, %10d" % (1234, -1234) # 默认右对齐
' 1234, -1234'
>>> "%+10d, %+10d" % (1234, -1234) # +,右对齐,显示符号
' +1234, -1234'
>>> "%-10d, %-10d" % (1234, -1234) # -,左对齐,不显示加好
'1234 , -1234 '
>>> "%010d, %010d" % (1234, -1234) # 0,右对齐,0是占位符
'0000001234, -000001234'(3) width可选,占有宽度。(4) .precision可选,小数点后保留的位数。
>>> "%010.4f" % (5.0/3) # 10位,显示4位小数
'00001.6667'
>>> "%.6f" % (5.0/3) # 显示6位小数
'1.666667'
>>> "%010.f" % (5.0/3) # 不显示小数
'0000000002'(5) typecode必选。 | 代码 | 意义 |
| s | 字符串 |
| r | 字符串,使用repr |
| c | 字符 |
| d | 十进制整数 |
| i | 整数 |
| u | 无号整数 |
| o | 八进制整数 |
| x | 十六进制整数 |
| e | 浮点指数 |
| E | 浮点指数 |
| f | 浮点数 |
| F | 浮点数 |
| g | 浮点指数或浮点数 |
| G | 浮点指数或浮点数 |
| % | 常量% |
>>> x = 255
>>> "%d, %i, %u" % (x, x, x) # 整型
'255, 255, 255'
>> "%o, %x" % (x, x) # 八进制和十六进制
'377, ff'浮点型 >>> x = 123.4567
>>> "%f, %F" % (x, x)
'123.456700, 123.456700'
>>> "%e, %E" % (x, x)
'1.234567e+02, 1.234567E+02'
>>> "%g, %G" % (x, x)
'123.457, 123.457'2、字符串格式化方法调用
使用字符串的format()方法。在主字符串,通过花括号,使用序列或者关键字指出替代目标。>>> "{0} {1}".format("Hello ", "World!") # 通过序列替代目标
'Hello World!'
>>> "{name} is {age}".format(name="Mike", age="18") # 通过关键字替代目标
'Mike is 18'
>>> "{name} is {0}".format(18, name="Mike") # 混合使用,序列替代在前
'Mike is 18 and live in ShangHai'
>>> "{1[name]} is {0}".format(18, {"name":"Mike"}) # 对替代结果操作
'Mike is 18'在序列或者关键字后添加:,指定具体的格式,格式是[[fill]align][sign][#][0][width][.precision][typecode]。(1) fill可选,空白处填充的字符。
(2) align可选,对齐方式:
(<)内容左对齐。
(>)内容右对齐。
(=)内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。
(^)内容居中。
>>> "{0:-<20}".format("Hello World!") # 左对齐,-填充
'Hello World!--------'
>>> "{0:->20}".format("Hello World!") # 右对齐,-填充
'--------Hello World!'
>>> "{0:-^20}".format("Hello World!") # 居中对齐,-填充
'----Hello World!----'
>>> "{0:0>20}".format(-1234) # 右对齐,0填充,符号在填充右侧
'000000000000000-1234'
>>> "{0:0=20}".format(-1234) # 右对齐,0填充,符号在填充左侧
'-0000000000000001234'(3) width可选,格式化所占宽度。(4) sign可选,有无符号数字
(+)正数前加号,负数前减号。
(-)正数前无符号,负数前减号。
(空格)正数前空格,负数前减号。
>>> "{0:+}, {1:+}".format(1234, -1234) # 加号显示符号
'+1234, -1234'
>>> "{0:-}, {1:-}".format(1234, -1234) # 减号不显示符号
'1234, -1234'
>>> "{0: }, {1: }".format(1234, -1234) # 空格在正数前实现空格
' 1234, -1234'(5) #可选,对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x >>> "{0:+}, {1:+}".format(1234, -1234) # 加号显示符号
'+1234, -1234'
>>> "{0:-}, {1:-}".format(1234, -1234) # 减号不显示符号
'1234, -1234'
>>> "{0: }, {1: }".format(1234, -1234) # 空格在正数前实现空格
' 1234, -1234'版权声明:本文为chennai1101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。