目录
字符串
格式化输出
切片
字符串常用操作方法
查找相关
find()
index()
count()
修改相关
replace()
split()
join()
转换大小写
删除空白字符
字符串对齐
判断相关
判断开头或结尾
isalpha()
isdigit()
isalnum()
isspace()
字符串
字符串可以用单引号,双引号,三引号来表示
str1 = 'aaa'
str2 = "bbb"
str3 = '''ccc'''
str4 = """ddd"""
在字符串中回车换行时,执行效果不同
str5 = 'aa' \
'a'
str6 = "bb" \
"b"
str7 = """cc
c"""
print(str5)
print(str6)
print(str7)
效果
如果字符串中存在单引号,我们该怎么做呢
可以使用双引号或三引号
str1 = "I'm Wang"
str2 = """I'm Wang"""
或,使用单引号再使用转义字符
str1 = 'I\'m Wang'
格式化输出
name = "Wang"
print("我是%s" % name)
print(f"我是{name}")
切片
是指对操作的对象截取其中一部分的操作。字符串,列表,元组都支持切片操作
语法
序列[开始位置下标:结束位置下标:步长]
注意:
不包含结束位置下标对应的数据,正负整数均可;
步长是选取间隔,正负整数均可,默认步长为1.
str1 = "0123456789"
print(str1[2:5:1]) # 234 步长为1,相当于每次选取+1
print(str1[2:5]) # 234 默认步长为1
print(str1[2:5:2]) # 24 步长为2
print(str1[2:8:2]) # 246 不包含结束下标的数据,谨记
print(str1[2:]) # 23456789 不写结束下标,选取到最后
print(str1[:]) # 0123456789 不写开始和结束下标,选取所有
print(str1[::-1]) # 9876543210 如果步长为负数,表示倒序
print(str1[-4:-1]) # 678 下标-1表示最后一个数据
print(str1[-4:-1:-1]) # (输出为空) -4到-1方向为从左到右,而步长-1方向为从右到左,方向冲突,无法选取数据
print(str1[-1:-4:-1]) # 987 方向一致
字符串常用操作方法
查找相关
find()
检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始的位置下标,否则则返回-1
语法
字符串序列.find(子串,开始位置下标,结束位置下标)
index()
检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始的位置下标,否则则报异常
语法
字符串序列.index(子串,开始位置下标,结束位置下标)
count()
返回某个子串在字符串中出现的次数
语法
字符串序列.index(子串,开始位置下标,结束位置下标)
str1 = "01234567890123456789"
#find
print(str1.find("345")) # 3
print(str1.find("345", 10, 18)) # 13
print(str1.find("111")) # -1
# index
print(str1.index("345")) # 3
print(str1.index("345", 10, 18)) # 13
print(str1.index("111")) # 报错
# count
print(str1.count("345")) # 2
print(str1.count("345", 10, 18)) # 1
print(str1.count("111")) # 0
rfind():和find()功能相同,但查找方向为右侧开始
rindex():和index()功能相同,但查找方向为右侧开始
修改相关
replace()
替换
语法
字符串序列.replace(子串,新串,替换次数)
str1 = "Hello World,Hello Python"
str2 = str1.replace("H", "h") # 全部替换
print(str2) # hello World,hello Python
str3 = str1.replace("H", "h", 1) # 替换1次
print(str3) # hello World,Hello Python
split()
分割
语法
字符串序列.split(分割字符,num)
str1 = "Hello World,Hello Python,Hello Split"
list1 = str1.split(",") # 全部分割
print(list1) # ['Hello World', 'Hello Python', 'Hello Split']
list2 = str1.split(",", 1) # 分割1次
print(list2) # ['Hello World', 'Hello Python,Hello Split']
join()
连接,合并
语法
连接符.join(序列)
list1 = ["aa", "bb", "cc"]
str1 = "--".join(list1) # 用--连接list1的各个元素
print(str1) # aa--bb--cc
转换大小写
str1 = "hello world,Hello python"
# capitalize 字符串首字母大小,其它转为小写
print(str1.capitalize()) # Hello world,hello python
# title 每个单词首字母转为大小
print(str1.title()) # Hello World,Hello Python
# upper 都转为大小
print(str1.upper()) # HELLO WORLD,HELLO PYTHON
# lower 都转为小写
print(str1.lower()) # hello world,hello python
删除空白字符
str1 = " hello world "
print(str1.lstrip()) # 删除左侧空白字符
print(str1.rstrip()) # 删除右侧空白字符
print(str1.strip()) # 删除两侧空白字符
效果
字符串对齐
str1 = "hello"
print(str1.ljust(10)) # 左对齐
print(str1.ljust(10, '_')) # 左对齐,不足10位填充下划线
print(str1.rjust(10)) # 右对齐
print(str1.rjust(10, '_')) # 右对齐,不足10位填充下划线
print(str1.center(10, '_')) # 居中
效果
判断相关
判断开头或结尾
str1 = "hello world,hello python"
print(str1.startswith("hello")) # True
print(str1.startswith("ello")) # False
print(str1.startswith("ello", 1)) # True
print(str1.startswith("ello", 1 ,5)) # True 1和5代表开始位置下标和结束位置下标
print(str1.endswith("python")) # True
isalpha()
如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
str1 = "hello world"
print(str1.isalpha()) # False
str2 = "hello"
print(str2.isalpha()) # True
str3 = ""
print(str3.isalpha()) # False
isdigit()
如果字符串只包含数字则返回True,否则返回False
str1 = "hello123"
print(str1.isdigit()) # False
str2 = "123456"
print(str2.isdigit()) # True
isalnum()
如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
str1 = "hello123"
print(str1.isalnum()) # True
str2 = "123456"
print(str2.isalnum()) # True
str3 = "123**"
print(str3.isalnum()) # False
isspace()
如果字符串中只包含空白则返回True,否则返回False
str1 = "hello123"
print(str1.isspace()) # False
str2 = " 1 2 3 4 5 6 "
print(str2.isspace()) # False
str3 = ""
print(str3.isspace()) # False
str4 = " "
print(str4.isspace()) # True