%方法:
%[(name)][flags][width][.precision]typecode
· (name):可选,用于选择指定的key
· flags:可选,可供选择的值有:
· +:右对齐,正数前加正号,负数前加负号
· -:左对齐,正数前无符号,负数前加负号
· 空格:右对齐,正数前加空格,负数前加负号
· 0: 右对齐,正数前无符号,负数前加负号,用0填充空白处
· width:可选,表示占有宽度
· .precision:可选,表示小数点后保留的位数
· typecode:必选
· s:获取传入对象的__str__方法的返回值,并将其格式化到指定的位置
· r:获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
· c:整数:将数字转换成其unicode对应的值,10进制范围为0≤i≤1114111(py2.7只支持0~255);字符:将字符添加到指定位置
· o:将整数转换成八进制,并将其格式化到指定位置
· x:将整数、浮点数转换成十六进制,并将其格式化到指定位置
· d:将整数、浮点转换成十进制,并将其格式化到指定位置
· e:将整数、浮点数转换成科学记数法,并将其格式化到指定位置
· E:将整数、浮点数转换成科学记数法,并将其格式化到指定位置
· f:将整数、浮点数转换成浮点数,并将其格式化到指定位置
· F:将整数、浮点数转换成浮点数,并将其格式化到指定位置
· g:自动调整将整数、浮点数转换成浮点数或科学记数法(超过6位用科学记数法)
· G:自动调整将整数、浮点数转换成浮点数或可续记数法(超过6位用科学记数法)
· %:当字符串中存在格式化标志时,需要用%表示(转义)一个百分号(Python中百分号不是自动将整数转换成二进制而方式)
一些奇怪条件
填充的内容就是不能是元组
实例
a='output a number:%10.3f'%2.2333
print(a)
a='output a number:%-10.3f'%2.2333
print(a)
a='output a number:%010.3f'%2.2333
print(a)
a='output a str:%s'%'guess what'
print(a)
输出:
output a number: 2.233
output a number:2.233
output a number:000002.233
output a str:guess what
format方法
①默认操作:
print('{}正在看着{}'.format('桶','头罩'))
print('{}正在看着{}'.format('桶',''))
print('{}正在看着{}'.format('桶'))
输出结果:
桶正在看着头罩
桶正在看着
Traceback (most recent call last):
File "C:\Users\ASUS\Desktop\hey.py", line 3, in
print('{}正在看着{}'.format('桶'))
IndexError: Replacement index 1 out of range for positional args tuple
#出错惹!↑要两个空都有东西,没有也得意思意思填上
注意:此间的参数是按顺序进行替换的,顺序一定要对
②位置参数
实例:
print('{0}正在看着{1}'.format('桶','头罩'))
print('{1}正在看着{0}'.format('桶','头罩'))
输出结果:
桶正在看着头罩
头罩正在看着桶
③关键字参数
实例:
print('{a}正在看着{b}'.format(a='桶',b='头罩'))
print('{a}正在看着{b}'.format(b='头罩',a='桶'))
#参数之间位置交换是可以的,反正已经指向了确定的参数
输出结果:
桶正在看着头罩
桶正在看着头罩
注意:位置方法和关键字方法可以混用,但关键字一定不能扰乱位置的顺序(即位置在前,关键字在后)
print('{a}正在看着{0}的{b}'.format('战损',a='桶',b='头罩'))
print('{a}正在看着{0}的{b}'.format(a='桶','战损',b='头罩'))
输出
桶正在看着战损的头罩
#第二行报错
④列表替换
实例
a=['战损','桶','头罩']
print('{ls[1]}正在看着{ls[0]}的{ls[2]}'.format(ls=a))
输出结果:
桶正在看着战损的头罩
存疑:为什么需要ls=a????
解释:a是别名,需要把它和真名等同起来??
填充
1、冒号做为命令的开始,后面跟不同的指令,具体顺序如下:填充符号、对齐方式(> 右对齐,< 左对齐,^ 居中对齐)、宽度、进制
print('{:*>5}'.format(233))
print('{:0>5}'.format('hey'))
**233
00hey
2、进制输出 b、d、o、x分别是二进制、十进制、八进制、十六进制。
print('{:*<8b}'.format(10))
1010****
3、浮点型的精度
print('{:.2f}'.format(3.1415))
3.14
原文链接:https://blog.csdn.net/GreatRedRabbit/article/details/105289289