''
、双引号 ""
或三引号 ''' '''
来表示一个字符串。
Python 中的字符串可以包含任何字符,数字或符号,也可以包含空格或者其它特殊符号。换行符、制表符等特殊字符可以通过特殊的转义字符来表示,例如 '\n'
表示一个换行符,'\t'
表示一个制表符。
使用单引号和双引号可以定义一个简单的字符串:
# 使用单引号将字符串'hello python'赋值给一个名为str1的变量
str1 = 'hello python'
# 使用双引号将字符串"hello world"赋值给一个名为str2的变量
str2 = "hello world"
当字符串中包含引号时,可以使用反斜杠 \
进行转义:
# 将包含转义符的字符串"He said, \"I'm fine.\""赋值给一个名为str3的变量
str3 = "He said, \"I'm fine.\""
使用三引号可以定义一个多行字符串,这在编写如 HTML 代码等多行文本时非常有用:
# 使用三个单引号将HTML代码块赋值给一个名为str4的变量
str4 = '''
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
'''
Python 中的字符串可以像列表一样,通过索引来获取指定位置的字符。字符串中的第一个字符索引为 0,向后依次递增:
# 将字符串"hello"赋值给一个名为str的变量,输出str的第1-5个字符
str = "hello"
print(str[0]) # 'h'
print(str[1]) # 'e'
print(str[2]) # 'l'
print(str[3]) # 'l'
print(str[4]) # 'o'
如果要获取字符串中倒数第几个字符,可以使用负数索引:
# 将字符串"hello"赋值给一个名为str的变量,输出倒数第1个字符和倒数第2个字符
str = "hello"
print(str[-1]) # 'o'
print(str[-2]) # 'l'
在 Python 中,可以通过切片操作来获取子串。切片操作的语法为 str[start:end]
,其中 start
表示起始位置(包含在内),end
表示结束位置(不包含)。例如:
# 将字符串"hello world"赋值给一个名为str的变量,输出从第1-5个字符(不包括第5个字符)和从第7个字符到字符结束
str = "hello world"
print(str[0:5]) # 'hello'
print(str[6:]) # 'world'
两个字符串可以通过加号 +
进行拼接:
# 将字符串"hello"和"world"赋值给两个名为str1和str2的变量,使用加号将它们拼接起来,并输出结果
str1 = "hello"
str2 = "world"
print(str1 + " " + str2) # 'hello world'
一个字符串可以通过乘号 *
来重复多次:
# 将字符串"hello"赋值给一个名为str的变量,使用乘号输出该字符串的三倍
str = "hello"
print(str * 3) # 'hellohellohello'
使用 len()
函数可以获取一个字符串的长度:
# 将字符串"hello"赋值给一个名为str的变量,输出该字符串的长度
str = "hello"
print(len(str)) # 5
Python 中字符串有很多内置方法,下面简要介绍一些常用的方法。
这两个方法都用于在字符串中查找指定的子串,它们的差别在于如果找不到子串时的返回值不同。find()
方法会返回 -1
表示找不到,而 index()
方法会抛出一个 ValueError 异常。
# 将字符串"hello world"赋值给一个名为str的变量,输出子串"world"的起始位置和不存在的子串"good"的位置(-1),尝试输出不存在的子串"good"的位置并捕获 ValueError 异常
str = "hello world"
print(str.find("world")) # 6
print(str.find("good")) # -1
try:
print(str.index("good")) # 抛出 ValueError 异常
except ValueError as e:
print(e)
这个方法用于将指定子串替换为另一个子串:
# 将字符串"hello world"赋值给一个名为str的变量,将其中的子串"world"替换为"python"并输出结果
str = "hello world"
new_str = str.replace("world", "python")
print(new_str) # 'hello python'
这个方法将一个字符串按照指定分隔符分割成多个子串,并将所有子串以列表的形式返回:
# 将字符串"hello,world,python"赋值给一个名为str的变量,使用逗号作为分隔符将其拆分为列表并输出结果
str = "hello,world,python"
lst = str.split(",")
print(lst) # ['hello', 'world', 'python']
这个方法用于将列表或者其它可迭代对象的元素按照指定的分隔符连接成一个字符串:
# 将列表["hello", "world", "python"]赋值给一个名为lst的变量,使用逗号作为分隔符将其拼接为字符串并输出结果
lst = ["hello", "world", "python"]
str = ",".join(lst)
print(str) # 'hello,world,python'
这个方法用于删除字符串两端的空格或指定的字符:
# 将字符串" hello "赋值给一个名为str的变量,去除字符串两端的空格并输出结果,再将字符串"<p>hello</p>"赋值给一个名为str的变量,去除字符串两端的"<p>"和"</p>"并输出结果
str = " hello "
new_str = str.strip()
print(new_str) # 'hello'
str = "<p>hello</p>"
new_str = str.strip("<p>").strip("</p>")
print(new_str) # 'hello'