字符串是 Python 中最常用的数据类型,一般使用单引号或引号来创建字符串
语法:
字符串变量名A = '字符串变量值A'
字符串变量名B = "字符串变量值B"
示例:
a = 'Hello A'
print(a)
b = "Hello B"
print(b)
字符串特征
- 一对引号字符串
name1 = 'Tom'
name2 = "Jerry"
- 三对引号字符串,字符串内容原样输出。如果字符串中有换行,输出时一并显示
address1 = '''
Guangdong
Guangzhou
'''
address2 = """
Guangdong
Shenzhen
"""
print(address1)
print(address2)
当字符串内容包含引号时,系统会认为内容中的引号是字符串结束符。导致后面的字符串错误,这个时候怎么书写呢?
使用反斜杠 \ 转义字符
示例:
name = 'I\'m Tom'
print(name)
当字符串内容特别多,在编译器中需要换行时,需要怎么书写呢?
在需要换行的末尾,使用反斜杠 \
示例:
name = 'Tom \
Jerry \
Spike'
print(name)
字符串输出打印
name = 'Tom'
print("我的名字是%s" % name)
print(f"我的名字是{name}")
字符串控制台输入
name = input("请输入您的名字: ")
print(f"您输入的名字是:{name}")
print(f"输入的数据类型是:{type(name)}")
下标
“下标” ⼜叫 “索引” ,就是编号。下标的作⽤即是通过下标快速找到对应的数据。下标从0开始。
语法:
序列[下标] #使用[]中括号
示例:
str1 = "abcdefghijk"
print(f'获取下标为0的数据:{str1[0]}')
print(f'获取下标为5的数据:{str1[5]}')
print(f'获取下标为8的数据:{str1[8]}')
切片
切片是对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
语法:
对象[开始位置下标: 结束位置下标: 步长]
注意:不包含结束位置下标对应的数据,正负整数均可;步⻓是选取间隔,正负整数均可,默认步⻓为1。
示例:
str1 = "abcdefghijk"
print("截取下标从2到5的数据:%s" % str1[2:5])
print("截取前3个数据,此时开始位置下标可以省略:%s" % str1[:3])
print("隔2个字符就截取一个:%s" % str1[::2])
字符串查找
查找即是查找⼦串在字符串中的下标位置或出现的次数。
- len:查询字符串的长度,返回字符串中字符的个数。
语法:
len(序列)
示例:
str1 = "abcdefghijk"
print(len(str1)) # 输出 11
- find:检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则返回-1。
语法:
字符串序列.find(⼦串, 开始位置下标, 结束位置下标) #下标可以省略表示在整个字符串中查找,下标是查找在下标内是否包含子串
示例:
str1 = "abcdefghijk"
print(str1.find('d')) # 查找到 输出下标 3
print(str1.find('cd', 0, 5)) # 查找到 输出下标 2
print(str1.find('aaa')) # 没查找到 输出 -1
- index:检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则报异常。(和 find()用法相同,区别在于find查找不到返回-1,index查找不到报异常)
- rfind:和find()功能相同,但查找⽅向为右侧开始。
- rindex:和index()功能相同,但查找⽅向为右侧开始。
- count:返回某个子串在字符串中出现的次数。
语法:
字符串序列.count(⼦串, 开始位置下标, 结束位置下标) # 下标可以省略表示在整个字符串中查找,下标是查找在下标内是否包含子串
示例:
str1 = "hello world, hello tom, hello jerry"
print(str1.count("hello")) # 打印出现次数 3
print(str1.count("tom")) # 打印出现次数 1
字符串替换
- replace:替换,把字符串A替换为字符串B,返回一个新的字符串,原字符串不变。
语法:
字符串序列.replace(字符串A, 字符串B, 替换次数)
示例:
str1 = "hello world, hello tom, hello jerry"
print(str1.replace("world", "spike")) # 替换后的结果是 hello spike, hello tom, hello jerry
- split:按照指定字符分割字符串,返回一个数组
语法:
字符串序列.split(分割字符, 分割次数)
示例:
str1 = "hello world, hello tom, hello jerry"
print(str1.split(", ")) # 按照分割字符全部分割,总共分割了2此,返回3个元素 ['hello world', 'hello tom', 'hello jerry']
print(str1.split(", ", 1)) # 分割1次,返回2个元素 ['hello world', 'hello tom, hello jerry']