在程序中,经常会遇到字符串拼接的情况,本文整理了用 python
进行字符串拼接的几种方式,教你如何优雅的拼接字符串。
1. 直接拼接
s = "Hello" "World"
print(s)
# 输出:HelloWorld
两个字符串直接写一起,会视为字符串拼接。
但是它只能拼接字符串常量,不能拼接变量。类似如下写法,是不允许的,会报语法错误。
a = "World"
s = "Hello" a # 语法错误
所以我感觉这种方法简单归简单,但没什么用。
2. 加号拼接
这种用 +
拼接字符串的方法简单方便,是最常用的方法之一了。
a = "Hello"
b = "World"
s = a + " " + b + "!"
print(s)
# 输出:Hello World!
不过这种方法用起来有点不方便的地方在于
只能拼接字符串,如果有某个变量是数字,必须先转成字符串才能继续拼接。
a = 1 s1 = "变量a的值为" + a # 错误 s2 = "变量a的值为" + str(a) # 正确 # 字符串 a 为数字,需要通过 str(a) 转成字符串以后才能进行拼接
- 如果变量较多,字符串拼接的代码看着会比较混乱不直观。
3. 逗号
如果是使用 print
函数来打印一些信息的话,可以通过逗号 ,
来进行输出内容的拼接。
a = 1
print("Hello", a, "World")
# 输出:Hello 1 World
这种方法会依次打印 print
括号里的内容,并且在每个变量字符串之间自动添加空格,并在最后添加换行符。
这种方法在打印一些内容的时候非常好用,相比于加号 +
拼接字符串,它更加方便,而且不需要手动把其他数据类型转成字符串。
缺点就是,如果是多线程的话,不同线程打印的内容可能会交错混乱。
4. join
在将数组内容拼接成字符串的话,正常需要来一个 for
循环,但是这个用 join
函数可以很方便的实现。
alist = ["hello", "world", "!!!"]
s = "*".join(alist)
print(s)
# 输出:hello*world*!!!
代码 "*".join(alist)
中的 "*"
表示数组元素之间用什么字符来拼接,同理可以换成 空格,逗号等等,如果不需要其他字符,可以换成空字符串。
5. format
str.format()
是一种格式化字符串的函数,功能比较强大,用法也很多,这里简单说几种常用的用法。
# 不设置指定位置,按默认顺序
s = "{} {}".format("hello", "world")
# 'hello world'
# 设置指定位置
s1 = "{0} {1}".format("hello", "world")
# 'hello world'
s2 = "{1} {0} {1}".format("hello", "world")
# 'world hello world'
# 设置参数
s = "网站名:{name}, 地址 {url}".format(name="机灵鹤", url="smartcrane.tech")
# 网站名:机灵鹤, 地址 smartcrane.tech
6. f-strings
f-strings
是我特别喜欢用的一种拼接字符串的方法。就是在字符串前面加 f
,然后字符串中大括号 {}
内的部分就可以当作变量来解析。
name = "机灵鹤"
age = 4
s = f"His name is {name}, he's {age} years old."
# "His name is 机灵鹤, he's 4 years old."
非常方便。
大家还有什么比较好用的字符串拼接的方法,欢迎补充分享。
此处评论已关闭