Python3 扩展教程 —— 字符串格式化符号含义及转义字符含义

Python3 扩展教程

格式化占位符

数字占位符,值可以不用写数字

>>> "{0} love {1},{2}".format('I',"You","Aimi")
'I love You,Aimi'

关键字占位符

关键字占位符,需要在值中,对应相关的关键字参数,否则会出错,比如c="You",关键字占位符可以调整顺序。

>>> "{a} love {b},{c}".format(a='I', c="You",b="Aimi")
'I love Aimi,You'
>>> "{a} love {b},{c}".format(a='I',"You","Aimi")
SyntaxError: positional argument follows keyword argument

组合占位符

关键字占位符,如果在数字后面,前面的值可以省去对应的参数名称,但是关键字的参数名称一定要对应上。

>>> "{0} loce {b},{c}".format('I',b='You',c='Aimi')
'I loce You,Aimi'

打印出花括号

这个有点类似于打印反斜杠\,需要输入\\道理一样

问题:想一下,为什么下面的Not Print不打印出来?

>>> "{{0}}".format("Not Print")
'{0}'

解释:因为0已经被解释掉了,跟反斜杠道理一样,示例如下

>>> "{{0}},{0}".format("ddd")
'{0},ddd'

数据格格式化

>>> '{0:.1f}{1}'.format(27.658,'GB')
'27.7GB'

上面示例,为什么打印的不是27.658GB呢? 这是因为在格式化域中,冒号:表示格式化的开始,后面接的是格式化符号,如下格式化符号含义。

字符串格式化符号含义

符号 说明 示例
%c 格式化字符及其 ASCII 码
>>> "%c" % 97
'a'
>>> "%c %c %c" % (97, 98, 99)
'a b c'
%s 格式化字符串
>>> 'I %s You' % 'Love'
'I Love You'
%d 格式化整数
>>> '%d + %d = %d' % (3, 5, 3+5)
'3 + 5 = 8'
%o 格式化无符号八进制数
>>> '%o' % 0xFF
'377'
>>> '%o' % 10
'12'
%x 格式化无符号十六进制数
>>> '%x' % 10
'a'
>>> '%x' % 160
'a0'
%X 格式化无符号十六进制数(大写)
>>> '%X' % 10
'A'
%f 格式化浮点数字,可指定小数点后的精度(默认精确6位)会进行四舍五入
>>> '%f' % 23.82
'23.820000'
>>> '%.2f' % 27.658
'27.66'
>>>
%e 用科学计数法格式化浮点数
>>> '%e' % 23.82
'2.382000e+01'
%E 作用同 %e,用科学计数法格式化浮点数
>>> '%E' % 23.82
'2.382000E+01'
%g 根据值的大小决定使用 %f 或 %e
>>> '%g' % 23.82
'23.82'
%G 作用同 %g,根据值的大小决定使用 %f 或者 %E
>>> '%G' % 23.82
'23.82'

如果你会Java等语言,这种占位符应该很熟悉

格式化操作符辅助命令

符号 说明 示例
m.n m 是显示的最小总宽度,n 是小数点后的位数
>>> '%10.1f' % 23.82
'      23.8'
- 用于左对齐
>>> '%-10d' % 5
'5         '
>>> '%-10.3d' % 5
'005       '
+ 在正数前面显示加号(+)
>>> '%d' % 5
'5'
>>> '%+d' % 5
'+5'
>>> '%+d' % -5
'-5'
# 在八进制数前面显示 '0o',在十六进制数前面显示 '0x' 或 '0X',十进制前面什么也不显示
>>> '%#o' % 10
'0o12'
>>> '%#X' % 10
'0XA'
>>> '%#x' % 108
'0x6c'
>>> '%#d' % 10
'10'
0 显示的数字前面填充 '0' 取代空格
>>> '%3d' % 5
'  5'
>>> '%03d' % 5
'005'
>>> '%-010d' % 5
'5         '
>>> '%-03d' % 5
'5  '

思考,为什么 '%-03d' % 5 结果不是500?

假象一下如果这么操作,那操作金额时,会不会很容易就被攻击了,所以作者吧这种操作还是用空格展示

Python 的转义字符及其含义

符号 说明
\' 单引号
\" 双引号
\a 发出系统响铃声
\b 退格符
\n 换行符
\t 横向制表符(TAB)
\v 纵向制表符
\r 回车符
\f 换页符
\o 八进制数代表的字符
\x 十六进制数代表的字符
\0 表示一个空字符
\\ 反斜杠


未经允许请勿转载:程序喵 » Python3 扩展教程 —— 字符串格式化符号含义及转义字符含义

点  赞 (0) 打  赏
分享到: