python_格式化字符串(什么?你以为是删除字符串?)

2018-12-21  本文已影响3人  北辰玉

格式化

举个常见的例子,我们经常会收到电信运营商的短信如亲爱的xxx 你好!你xx月共消费xx元话费,当前余额是xx元之类的字符串,而xxx的内容都是根据变量变化的,所以需要一种简便的格式化字符串的方式,使用同一套短信模板,发送给不同的用户。

在Python中,采用的格式化方式和C语言是一致的,用%实现,举例如下:

name = '李小龙'
yue = '9'
xiao = '88'
yu = '20'

print('亲爱的%s 你好!你%s月共消费%s元话费,当前余额是%s元' %(name,yue,xiao,yu))

你可能猜到了,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换到该位置, %d表示用整数替换该位置,有几个 %占位符,后面就跟几个变量或者值,顺序要对应好。如果%只有一个要替换的值,可以省略%(name,yue,xiao,yu)的括号。

IDE效果如下

常见的占位符有:

占位符 对应替换的数据类型
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

我上面的示例其实偷懒了,金额之类的格式化占位符应该是浮点数%f的,因为懒 我赋值变量时所有的值都加了''单引号,强行将金额转为字符串的数据类型,所以示例中占位符都用了%s

其中,格式化整数和浮点数还可以指定是否补0和整数与小数的位数:

print('%05d--%5d' %(3, 1))     #结果为3的前面会多5个0 (000003),1的前面则多出5个空格(     1)
print('%.2f' %3.1415926)       #保留小数点后2位(3.14)
上一篇下一篇

猜你喜欢

热点阅读