Python学习笔记(五):字符串切片与常用方法

1 支持换行的字符串

使用三个单引号可以获取换行的字符串。

str = '''今天
天气真好'''
print(str)

结果

今天
天气真好

2 字符串切片

示例

str="01234567"
print(str[1:4]) 

结果

123 #索引为1到4的字符作拼接,左闭右开

2.1 切片规则

字符串名[开始位置索引:结束位置索引:步长]

  1. 区间端点是具体数字时,为左闭右开
str="01234567"
print(str[1:4]) 
123
  1. 其中的步长可以不写,默认为1,表示从左往右选取字符,下一个选取字符为当前字符索引加1。那么-1表示从右往左选取字符,即下一个字符为当前字符索引减1。当然我们可以设置任意的非0整数。
str="01234567"
print(str[1:4])
print(str[4:1:-1])
123
432
  1. 开始位置可以为空,表示最左侧或最右侧,具体由步长的方向决定(步长为正数,表示从左向右,开始位置为空表示最左端;步长为负数,表示从右向左,开始位置为空表示最右端)
str="01234567"
#此时开始位置为最左侧,因步长为+1,从左到右,字符串正序
print(str[:2]) #01,左闭右开
#此时开始位置为最右侧,步长为-1,从右到左,字符串逆序
print(str[:2:-1]) #76543
01
76543
  1. 结束位置的规则和开始位置相同
str="01234567"
print(str[2:]) #234567
print(str[2::-1]) #210
234567
210
  1. 开始位置和结束位置可以为负数,如-1表示倒数第一个字符
str="01234567"
#开始位置也可以为负数,表示倒数第i个数
print(str[-2:]) #67
print(str[4:-1]) #456
67
456
  1. 当开始位置到结束位置的方向与步长的方向不符,将得到空字符
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

你可能感兴趣的:(Python,python,字符串)