2019-10-21

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 对齐

你可能感兴趣的:(2019-10-21)