python 字符串格式化
字符串格式化
字符串插入很多变量
一个例子
name='tom'
height=170
print('我叫'+name+‘,身高’+str(height)_'厘米')
什么问题?
简易性
可读性
换一种方法
name='tom'
height=170
print('我叫%s,身高%scm'%(name,height))
提高了
简易性
可读性
values 可以是
普通的数值对象,字符串对象
Tuple,表示多个对象填format里面的占位符%
例子
name='tom'
age=20
info='我叫%s年龄是%s ' %(name,age),age#2个元素以上需要同元组形式
tu =(name,age)
info='我叫%s,年龄是%s'%(name,age)
符号
%s 用str()函数进行字符串转换
%d 转成有符号十进制数
%f 转成浮点数(小数部分自然截断)
%x 转成无符号十六进制数(x/X代表转换后的十六进制字符的大小)
常见用法-指定宽度
>>>'%d' % 56
'56'
>>>'%10d' %56 #最小宽度,不足空格补齐
' 56'
>>>'%010d' % 56 # 补零
‘0000000056’
print('%1d' %56)# 最小宽度为2
print('%10d' %56)#最小-正数-右对齐,左补齐
56
print('-10%' %56)#最小--正数-左对齐,右补齐
56
工资举例子
print('%06d' %4000)
print('%06d' % 50000)
常见用法-十六进制
>>>"%x" % 108
'6c'
>>>''%x"% 108
'6c'
>>>"%#x" %108
‘0x6c’
>>>"%#x" %108
'0x6c'
小数处理
print('%f' %3.1415926)
www.cnblogs.com/wupeiqi/
https://pythonav.com/
小数处理
print(‘%f’ %3.1415926) #格式化输出默认是6位,--四舍五入
print('%.2f' 3.1415926)#.2f 保留两位
print('%5.2f' % 3.1415926) 5.2 5代表有总共有五位数字展示 没有那么位数用空格补齐
#format----s位置不能空着
name ='tom'
age =20
#1.顺序填值
info = '我叫{},年龄是{}'.format(name,age)
print(info)
错误示例
info ='我叫{},年龄是{}'.format((name,age)) 括号中为一个元组 现在为有一个为空 会报错越界
2.对齐
info ='我叫{:5},年龄是{:5}'.format(name.,age)
我叫返回时字符串 右补齐
我叫tom ,年龄 20
int类型数据左补齐
> < >右对齐 左补齐 ,<------ 左对齐,右补齐。
^---- 中间对齐 亦或符号
1,顺序填写值
'my name is {},I am {} years old '.format('tom',16)
2.下标填值
'I am {1} years old ,my name is{0}'.format('tom',16)
下标对齐
name='tom'
age='20'
info ='我叫{1:>5),年龄是{0:>5)'.format(name,age)
print(info)
#补零
info ='我叫{1:*>5},年龄是{0:*>5}'.format(name,age)
print(info)
3.变量填值
'my name is {name},I am{age}'.format(name='tom',age=16)
info ='我叫{:>5}'
常见用法-小数
'{:09.2f}{{}}'.format(1234.567890) #如果字符串内本身就有花括号.
扩展-python3.6以后的扩展
>>> name ="Fred"
>>>f"He said his name is {name}."
'He said his name is Fred.'
info =f'我叫{name},年龄是{age}'
print(info)
name:>5 age:>5 对齐