python格式化:%和format

%方法:

%[(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 <module>
    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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值