问:说说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
2、format方式
本文例子参考如下链接:
https://www.cnblogs.com/lvcm/p/8859225.html
在Python3引入了一个新的字符串格式化的方法,并且随后支持了Python2.7。这个新的字符串格式化方法摆脱了%操作符并且使得字符串格式化的语法更规范了。现在时候通过调用字符串对象的.format() 方法进行格式化。
Python还有另外2种格式化的,大家也可以自己去了解一下,我这边简单提一下 。
1、在Python 3.6 中添加了一个新的字符串格式化方法,被称为字面量格式化字符串或者“f-strings”。这个新的方法让你能够在字符串常量中嵌入Python表达式。
>>> f'Hello, {name}!'
'Hello, Bob!'
>>> 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进行字符串格式化。