1 支持换行的字符串
使用三个单引号可以获取换行的字符串。
str = '''今天
天气真好'''
print(str)
结果
今天
天气真好
2 字符串切片
示例
str="01234567"
print(str[1:4])
结果
123 #索引为1到4的字符作拼接,左闭右开
2.1 切片规则
字符串名[开始位置索引:结束位置索引:步长]
- 区间端点是具体数字时,为左闭右开
str="01234567"
print(str[1:4])
123
- 其中的步长可以不写,默认为1,表示从左往右选取字符,下一个选取字符为当前字符索引加1。那么-1表示从右往左选取字符,即下一个字符为当前字符索引减1。当然我们可以设置任意的非0整数。
str="01234567"
print(str[1:4])
print(str[4:1:-1])
123
432
- 开始位置可以为空,表示最左侧或最右侧,具体由步长的方向决定(步长为正数,表示从左向右,开始位置为空表示最左端;步长为负数,表示从右向左,开始位置为空表示最右端)
str="01234567"
#此时开始位置为最左侧,因步长为+1,从左到右,字符串正序
print(str[:2]) #01,左闭右开
#此时开始位置为最右侧,步长为-1,从右到左,字符串逆序
print(str[:2:-1]) #76543
01
76543
- 结束位置的规则和开始位置相同
str="01234567"
print(str[2:]) #234567
print(str[2::-1]) #210
234567
210
- 开始位置和结束位置可以为负数,如-1表示倒数第一个字符
str="01234567"
#开始位置也可以为负数,表示倒数第i个数
print(str[-2:]) #67
print(str[4:-1]) #456
67
456
- 当开始位置到结束位置的方向与步长的方向不符,将得到空字符
print("空")
#倒数第4个到倒数第1个,方向为从左到右,但步长-1为从右到左
print(str[-4:-1:-1])
print("空")
空
空
3 字符串常用方法
3.1常用方法一:查找
方法名 | 功能 |
---|---|
int find() | 检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则返回-1。语法规则:字符串序列.find(⼦串, 开始位置下标, 结束位置下标)。注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。 |
void index() | 检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则报异常。语法规则和find相同。 |
int rfind() | 和find()功能相同,但查找⽅向为右侧开始 |
void rindex() | 和index()功能相同,但查找⽅向为右侧开始 |
int count() | 返回某个⼦串在字符串中出现的次数。语法规则: 字符串序列.count(⼦串, 开始位置下标, 结束位置下标)。位置也可以省略 |
3.2常用方法二:修改
3.2.1 replace
字符串序列.replace(旧⼦串, 新⼦串, 替换次数)
注意:替换次数如果超过查出⼦串出现次数,则替换次数为该⼦串出现次数。
str= "hello jack it's tom and maria and your father me"
# 1.replace
print(str.replace("and","but"))
hello jack it's tom but maria but your father me
3.2.2 split
字符串序列.split(分割字符, num)
num表示对多少个分割字符进行处理,该方法返回一个list列表。
str= "hello jack it's tom and maria and your father me"
# 2.split 返回列表
print(str.split()) #无参数则按照空格分割
print(str.split("and"))
#只进行1次分割
print(str.split("and",1))
['hello', 'jack', "it's", 'tom', 'and', 'maria', 'and', 'your', 'father', 'me']
["hello jack it's tom ", ' maria ', ' your father me']
["hello jack it's tom ", ' maria and your father me']
3.2.3 join
对list列表中存储的字符串按某字符串进行拼接。
字符或⼦串.join(多字符串组成的序列)
# join 连接列表返回字符串
list=['tom', 'and', 'maria']
strNew='__'.join(list)
print(strNew)
tom__and__maria
4 不常用方法
4.1 首字母大写
capitalize():将字符串第⼀个字符转换成⼤写,其他都调整为小写。
str="what a Beautiful Girl"
print(str.capitalize())
What a beautiful girl
4.2 每个单词首字母大写
title():将字符串每个单词⾸字⺟转换成⼤写。
str="what a beautiful girl"
print(str.title())
What A Beautiful Girl
4.3 全部转小写
lower():将字符串中⼤写转⼩写。
4.4 全部转大写
upper():将字符串中⼩写转⼤写。
4.5 裁剪空白
lstrip():删除字符串左侧空⽩字符。
rstrip():删除字符串右侧空⽩字符。
strip():删除字符串两侧空⽩字符。
str=" hello neighbor "
print(str.lstrip(),end="")
print("----")
print(str.rstrip(),end="")
print("----")
print(str.strip(),end="")
print("----")
hello neighbor ----
hello neighbor----
hello neighbor----
4.6 对齐填充至固定长度
ljust():返回⼀个原字符串左对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串。
rjust():返回⼀个原字符串右对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语法和
ljust()相同。
center():返回⼀个原字符串居中对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语
法和ljust()相同。
str="hello"
print(str.ljust(7,'0'))
print(str.rjust(7,'0'))
print(str.center(7,'0'))
hello00
00hello
0hello0
4.7判断开头结尾
startswith():检查字符串是否是以指定⼦串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
字符串序列.startswith(⼦串, 开始位置下标, 结束位置下标)
str="doyoulovesunshine"
print(str.startswith("doy"))
True
endswith()::检查字符串是否是以指定⼦串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。
字符串序列.endswith(⼦串, 开始位置下标, 结束位置下标)
str="doyoulovesunshine"
print(str.endswith("hine"))
True
4.8判断是否是固定类型
isalpha():如果字符串⾄少有⼀个字符并且所有字符都是字⺟则返回 True, 否则返回 False。
str="abcdefg"
print(str.isalpha())
True
isdigit():如果字符串只包含数字则返回 True 否则返回 False。
str="23432"
print(str.isnumeric())
True
isalnum():如果字符串⾄少有⼀个字符并且所有字符都是字⺟或数字则返 回 True,否则返回False。
str="sfs234sfd"
print(str.isalnum())
True
isspace():如果字符串中只包含空⽩,则返回 True,否则返回 False。
str=" "
print(str.isspace())
True