美文网首页
python_格式化字符串(什么?你以为是删除字符串?)

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

作者: 北辰玉 | 来源:发表于2018-12-21 13:55 被阅读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)
    

    相关文章

      网友评论

          本文标题:python_格式化字符串(什么?你以为是删除字符串?)

          本文链接:https://www.haomeiwen.com/subject/lbhukqtx.html