往字符串里传入对应的值:
1. 传统方案(可读性不好,麻烦)
2. %
name='Tom'
age=20
str='我叫:%s,年龄是:%d' % (name,age)
(1)符号:
- %s 用str()函数进行字符串转换
- %d 转成有符号十进制数
- %f 转成浮点数(小数部分自然截断)
- %x 转成无符号十六进制数(x/X代表转换后的十六进制字符的大小写)
(2)指定宽度:
'%10d' %56 #最小宽度,不足空格补齐,输出为' 56'
'%010d' %56 #用零补齐,输出为'0000000056'
'%-10d' %56 #左对齐右补齐,输出为'56 '
(3)小数(四舍五入):
'%.2f' %1234.56789 #输出为'1234.57
'%9.2f' %1234.56789 #九位包括小数点,输出为' 1234.57'
'%09.2f' %1234.56789 #输出为'001234.57
3. format
(1)顺序填值
'my name is {}, I am {} years old'.format('Tom',16)
(2)下标填值
'my name is {0}, I am {1} years old'.format('Tom',16)
(3)变量填值(基本不用)
'my name is {name}, I am {age} years old'.format(name='Tom',age=16)
指定宽度写法:{:6},对于字符串左对齐右补齐,对于整型左补齐右对齐(不规范),所以:
①想让其规范则使用{:<6}左对齐右补齐,{:>6}右对齐左补齐,{:^6}中间对齐
②加补齐元素{:0<6},{:>6}
③下标填值{0:0<6},{1:>6}
④变量填值{name:0<6},{age:*>6}(麻烦),所以:
python3.6之后的版本推出了f的方法解决变量传值的麻烦:
info=f'我叫:{name:<6},年龄是:{age:>6}'