格式字符串
- python 使用一个字符串作为模板
- 模板中含有格式符,为真实值预留位置
- 使用tuple或者字典来传递值
- 模板和值之间,用 % 来表示格式化操作
例子:
1) tuple 传值
print("I'm %s, and I'm %d years old" % ('Tony',99) )
2)字典传值
print("I'm %(name)s, and I'm %(age)d years old" % {'name':'Tony','age':99})
字典传值时,我们对格式串进行了 命名 。所以可以接收字典的value(相同名字的key)
格式符含义:
%s 字符串 (采用str()的显示) %r 字符串 (采用repr()的显示) %c 单个字符 %b 二进制整数 %d 十进制整数 %i 十进制整数 %o 八进制整数 %x 十六进制整数 %e 指数 (基底写为e) %E 指数 (基底写为E) %f 浮点数 %F 浮点数,与上相同 %g 指数(e)或浮点数 (根据显示长度) %G 指数(E)或浮点数 (根据显示长度) %% 字符"%"
注意:
1)%s 与 %r 的区别在于, %s 不带'', %r 带
print("%s" % 'abc') # abc print("%r" % 'abc') # 'abc'
2)%% 不懂??
3)其实除了 命名 外,还有其他选项可以控制字符串。
% [(name)] [flags] [width] . [precision] typecode
- 其中flags 有+, -, 0, ' ' 四种。表示字符串前补上这些符号
- width 表示字符串的output长度,左补
- precision代表float类型的output精度
例子:
print("%+10x" % 10) # +a print("%04d" % 5) #0005 print("%6.3f" % 2.3) # 2.300 # width 和precision 也可以动态传递 print("%.4f" % 1.2) #1.2000 print("%.*f" % (4,1.2)) #1.2000