2023拉

Python拼接字符串

上一篇 / 下一篇  2021-06-24 17:32:18 / 个人分类:Python

    关于Python拼接字符串的7种方法,分别是来自C语言的%方式、format()拼接方式、() 类似元组方式、面向对象模板拼接、join()拼接方式以及f-string方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考下 
    print('%s %s'%('qa','test'))
#C语言%方式类似的占位符还有:%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16
# 进制数),等等。%占位符既是这种拼接方式的特点,同时也是其限制,因为每种占位符都有特定意义,实际使用起来太麻烦了。
s1='hello{}! My name is {}.'.format('alvin','python猫')
print(s1)
#括号{}做占位符,在format方法中再转入实际的拼接值。容易看出,它实际上是对%号
# 拼接方式的改进。这种方式在Python2.6中开始引入
s_1=('Hello' ' ' 'world')
print(s_1)
print(type(s_1))
#s_1并不是一个元组,因为元素间没有逗号分隔符,这些元素间可以用空格间隔,也可以不要空格。使用type()查看,发现它就是一个str类型。我没查到这是啥原因,猜测或许()括号中的内容是被Python优化处理了。
# 这种方式看起来很快捷,但是,括号()内要求元素是真实字符串,不能混用变量,所以不够灵活。

from  string import Template
s= Template('${s1} ${s2}')
print(s.safe_substitute(s1='Hello',s2='world'),type(s))
#面向对象模板拼接
s1='hello world ! '
s2='My name is qa'
print(s1+s2)
# 常用的+号方式 最常用、直观、易懂,是入门级的实现方式。但是,它也存在两处让人容易犯错的地方。
# 首先,新入门编程的同学容易犯错,他们不知道字符串是不可变类型,新的字符串会独占一块新的内存,而原来的字符串保持不变。上例中,拼接前有两段字符串,拼接后实际有三段字符串。
# 其次,一些有经验的老程序员也容易犯错,他们以为当拼接次数不超过3时,使用+号连接符就会比其它方式快,但这没有任何合理根据。
s1=['Hello','World']
print('_'.join(s1))
#str对象自带的join()方法,接受一个序列参数,可以实现拼接。拼接时,元素若不是字符串,需要先转换一下。
# 可以看出,这种方法比较适用于连接序列对象中(例如列表)的元素,并设置统一的间隔符。
name = 'alvin'
myname = 'python_cat'
words = f'Hello {name}. My name is {myname}.'
print(words)
# f-string方式出自PEP 498(Literal String Interpolation,字面字符串插值),从Python3.6版本引入。
# 其特点是在字符串前加 f 标识,字符串中间则用花括号{}包裹其它字符串变量。

TAG:

 

评分:0

我来说两句

Open Toolbar