在前面的学习中,多次出现字符串相关信息,到底什么是字符串,其相关知识点有什么,本节内容将会讲清楚。
11.1什么是字符串
字符串(String)是Python中的一种基本数据类型,用来存储文本信息。它是由一系列字符(包括字母、数字、标点符号等)组成的序列。
11.2字符串的创建
在Python中,创建字符串非常简单。你可以使用单引号(' ')、双引号(" ")或三引号(''' ''' 或 """ """)来创建字符串。例如:
s1 = 'Hello, world!' # 使用单引号
s2 = "I'm a programmer." # 使用双引号,可以包含单引号
s3 = '''This is a
multiline
string.''' # 使用三引号,可以创建多行字符串
print(s1)
print(s2)
print(s3)
11.3字符串的基本使用
11.3.1字符串的理解
python 中的字符串被单引号或双引号包围。'hello’与"hello"相同。您可以使用以下print()函数显示字符串文字:
print("Hello")
print('Hello')
11.3.2将字符串分配给变量
a = "菜鸟"
print(a)
11.3.3多行字符串
可以使用三个引号将多行字符串分配给变量:
a = """从前有座山,
山里有座庙
庙里有个小和尚"""
print(a)
或者采用三个单引号:
a = '''从前有座山,
山里有座庙
庙里有个小和尚'''
print(a)
11.3.4字符串是数组
Python 没有字符数据类型,单个字符只是一个长度为 1 的字符串。方括号可用于访问字符串的元素。这里用到了切片,在11.5中会进行详细介绍。获取位置 0处的字符(记住第一个字符的位置为 0),例如:
a = "Hello, World!"
print(a[0])
11.3.5遍历字符串
循环遍历单词“菜鸟”中的字母:
for x in "cainiao":
print(x)
11.3.6字符串长度
使用len()函数返回字符串的长度,注意标点符号和空格也算一个长度:
a = "Hello, World!"
print(len(a))
11.3.7检查字符串
要检查字符串中是否存在某个短语或字符,我们可以使用关键字 in。例如:
txt = "The best things in life are free!"
print("free" in txt)
返回结果为布尔类型(True代表有):
也可以通过if来判断是否存在:
txt = "The best things in life are free!"
if "free" in txt:
print("是的, 'free'存在.")
如果检查不是,则:
txt = "The best things in life are free!"
print("FREE" in txt)
因为FREE没有在字符串中,所以检查结果为False。
11.4字符串的操作
11.4.1连接字符串
使用 +
运算符可以将两个字符串连接起来。例如:
s1 = 'Hello, world!' # 使用单引号
s2 = "I'm a programmer." # 使用双引号,可以包含单引号
s3 = '''This is a
multiline
string.''' # 使用三引号,可以创建多行字符串
s4 = s1 + s2 # 结果为 'Hello, world! I'm a programmer.'
print(s4)
如果想让两个字符串中间留有间隔,可采用' '的方式。例如:
s1 = 'Hello, world!' # 使用单引号
s2 = "I'm a programmer." # 使用双引号,可以包含单引号
s3 = '''This is a
multiline
string.''' # 使用三引号,可以创建多行字符串
s4 = s1 + ' '+ s2 # 结果为 'Hello, world! I'm a programmer.'
print(s4)
11.4.2查找子串
使用 find()
或 index()
方法可以查找子串在字符串中的位置。如果找到,返回子串的起始索引;否则返回-1。例如:
s = 'Hello, world!'
print(s.find('world')) # 输出 7,因为 'world' 在 s 中从索引7开始
print(s.find('Python')) # 输出 -1,因为 'Python' 不在 s 中
11.4.3替换子串
使用 replace()
方法可以替换字符串中的子串。
s = 'Hello, world!'
s5 = s.replace('world', 'Python') # 将 'world' 替换为 'Python'
print(s5) # 输出 'Hello, Python!'
11.4.5替换字符串
replace()方法用另一个字符串替换一个字符串。
a = "Hello, World!"
print(a.replace("H", "J"))
11.4.5大小写转换
使用 lower()
、upper()
和 capitalize()
方法可以进行大小写转换。
s = 'Hello, world!'
print(s.lower()) # 输出 'hello, world!',全部转换为小写
print(s.upper()) # 输出 'HELLO, WORLD!',全部转换为大写
print(s.capitalize()) # 输出 'Hello, world!',首字母大写,其余小写
11.4.6格式化字符串
Python中有多种格式化字符串的方法,如 %
运算符、format()
方法和 f-string。以下是使用 format()
方法的例子:
name = '张三'
age = 25
print('我的名字是{},我{}岁了。'.format(name, age)) # 输出 '我的名字是张三,我25岁了。'
11.4.6删除空格
空白是实际文本之前和/或之后的空间,通常您想删除这个空间。strip()方法从开头或结尾删除任何空格:
a = " Hello,World! "
print(a.strip())
11.4.7拆分字符串
split()方法返回一个列表,其中指定分隔符之间的文本成为列表项。split()如果找到分隔符的实例,该方法会将字符串拆分为子字符串。例如我要将下面的字符串以逗号分隔:
a = "Hello, World!"
print(a.split(","))
11.5索引和切片
我们可以通过索引来访问字符串中的单个字符,或使用切片来获取子串。索引从0开始计数。
s = 'Hello, world!'
print(s[0]) # 输出 'H',第一个字符
print(s[7]) # 输出 'w',第八个字符
print(s[2:5]) # 输出 'llo',从第三个字符开始,到第五个字符结束(不包括第五个)
11.5.1切片
我们可以使用切片语法返回一系列字符。指定开始索引和结束索引,以冒号分隔,以返回字符串的一部分。示例:获取从位置 2 到位置 5 的字符(不包括在内):
b = "Hello, World!"
print(b[2:5])
注意:第一个字符的索引为 0。
11.5.2从头开始切片
示例:获取从开始到位置 5 的字符(不包括在内):
b = "Hello, World!"
print(b[:5])
11.5.3切到最后
通过省略结束索引,范围将到最后。例如,获取从位置 2 到最后的字符:
b = "Hello, World!"
print(b[2:])
11.5.4负索引
使用负索引从字符串末尾开始切片,就是从右往左看,不再是从左往右看。例如:
b = "Hello, World!"
print(b[-5:-2])
11.6字符串的其他处理方法总结
- casefold() 将字符串转换为小写
- center() 返回一个居中的字符串
- count() 返回指定值在字符串中出现的次数
- encode() 返回字符串的编码版本
- endswith() 如果字符串以指定的值结尾,则返回 true
- join() 将可迭代的元素连接到字符串的末尾
- index() 在字符串中搜索指定值并返回找到它的位置
关于字符串的处理方法还有很多,对于一些不是很常用的就没在这里总结了,大家可以根据项目需要进行学习,也欢迎大家分享与补充。