问:说说Python种有几种字符串格式化?
答:Python字符串格式化主要有两种方式:分别为占位符(%)和format方式 。文末还有2种要介绍,所以总共有4种 。
其中,占位符(%)方式比较老,而format方式是比较先进的,目前两者共存。占位符方式在Python2.x中用的比较广泛,随着Python3.x的使用越来越广,format方式使用的更加广泛。
下面分别来说说这几种的区别:
1、占位符(%)方式
举2个例子来说明,其他的大家可以自己去试一下 。
%d 格式整型
age = 29
print("my age is %d" %age)
#my age is 29
%s 格式字符串
name = "makes"
print("my name is %s" %name)
#my name is makes
Python还有另外2种格式化的,大家也可以自己去了解一下,我这边简单提一下 。
1、在Python 3.6 中添加了一个新的字符串格式化方法,被称为字面量格式化字符串或者“f-strings”。这个新的方法让你能够在字符串常量中嵌入Python表达式。
>>> f'Hello, {name}!'
'Hello, Bob!'
2、最后一种,在Python里还有另一个字符串格式化工具:模板字符串。使用模板字符串的最佳的时机就是当你的程序需要处理由用户提供的输入内容时。
Template()里面把字符串中某个值用设置变量${key}的方式先写好,然后在substitute()的方式把变量用其他值代替,就完成了字符串的替换。
>>> from string import Template
>>> a=Template('would it be the ${key1} when we meet in ${key2}')
>>> a.substitute(key1='same',key2='heaven')
'would it be the same when we meet in heaven'
好了,说了这么多格式的方式,那到底要怎么选择呢?Python字符串格式化经验法则:如果你的格式化字符串是由用户提供的,那么就是用模板字符串避免安全问题。不然如果是Python 3.6+的话,就使用字符串插值/f-Strings,如果不是就使用str.format进行字符串格式化。
本文来自微信公众号:程序IT圈