【无为则无心&Python基础】— 27、Python序列--字符串的常用操作方法

常用操作方法

字符串的常用操作方法有查找、修改和判断三大类。

1、查找

所谓字符串查找方法即是,查找一个子串在字符串中的位置或出现的次数。

@1.find( )方法

find( )方法是,检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始位置的下标,否则则返回-1。

语法
字符串序列.find(子串, 开始查找的位置下标, 结束查找的位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

快速体验
mystr = "Life is short,you need Python。"

print(mystr.find('short'))  # 8

# 在字符串标记的范围内查找
print(mystr.find('o', 13, 25))  # 15

print(mystr.find('hello'))  # -1
@2.index( )方法

index( )方法检测某个子串是否包含在这个字符串中,如果存在返回这个子串开始的位置下标,否则则报异常。

index( )方法获取指定元素在列表中的第一次出现时索引,如果一个字符串内出现多处子串存在,返回第一个子串开始的位置下标。

语法
字符串序列.index(子串, 开始查找的位置下标, 结束查找的位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

快速体验
mystr = "Life is short,you need Python。"

print(mystr.find('short'))  # 8

# 在字符串标记的范围内查找
# 可以只写开始位置
print(mystr.find('o', 13, 25))  # 15

# 报错ValueError: substring not found
print(mystr.find('hello'))
@3.rfind( )rindex( )方法
  • rfind( )方法: 和find( )方法功能相同,但查找方向为右侧开始。
  • rindex( )方法:和index( )方法功能相同,但查找方向为右侧开始。

注意:但是下标还是从左到右,从0开始算起。知识查找开始的方向不同。

@4.count( )方法

count( )方法:返回某个子串在字符串中出现的次数。

语法
字符串序列.count(子串, 开始位置下标, 结束位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

快速体验
mystr = "Life is short,you need Python。"

print(mystr.count('o'))  # 3

# 在字符串标记的范围内查找
# 可以只写开始位置
print(mystr.count('o', 13, 25))  # 1

print(mystr.count('hello'))  # 0

2、修改

所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。(字符串修改的方法很多,我们只讲解一下最常用的。)

@1、replace( )方法

replace( ):替换

语法
字符串序列.replace(旧子串, 新子串, 替换次数)

注意:替换次数如果查出子串出现次数,则替换次数为该子串出现次数。

快速体验
mystr = "hello and String and python and world"

# 1.把字符串中的and全部换成he,查出几次,替换几次。
# 结果:hello he String he python he world
new_str = mystr.replace('and', 'he')
print(new_str)

# 2。替换次数如果超出子串出现的次数,表示替换所有子串
# 结果:hello he String he python he world
new_str = mystr.replace('and', 'he', 10)
print(new_str)

# 3、查出的子串中,只替换前两个
# 结果:hello he String he Python and world
new_str = mystr.replace('and', 'he', 2)
print(new_str)
注意(重要)

调用了replace( )方法后,发现原有字符串的数据并没有做到修改,修改后的数据是replace( )方法的返回值,说明字符串是不可变数据类型。关于不可变数据类型概念可点击查看。

同时也说明:说明replace( )方法有返回值,返回值是修改后的字符串。

应该所有关于字符串修改的函数,都有返回值,且返回修改后的字符串。

总结:数据按照是否能直接修改分为可变类型数据和不可变类型数据两种。字符串类型的数据修改的时候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。

@2.split( )方法

split( )方法:按照指定字符分割字符串。返回一个列表,并丢失字符串中包含的分割字符。

语法
字符串序列.split(分割字符, num)

注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。

快速体验
mystr = "hello and String and python and world"

# 1.以and为分割符,分割字符串,出现的分割全部分割。
# 结果:['hello ', ' String ', ' python ', ' world']
new_str = mystr.split('and')
print(new_str)

# 2.只把前两次出现的分割符,进行字符串的分割
# 结果:['hello ', ' String ', ' python and world']
new_str = mystr.split('and', 2)
print(new_str)

注意:如果分割字符是原有字符串中的子串,分割后则丢失该子串。

@3.join( )方法

join( )方法:用一个字符或子串合并字符串,即将多个字符串合并为一个新的字符串。

语法
字符或子串.join(多字符串组成的序列)
快速体验
# 合并列表里面的字符串为一个大的字符串
# 结果:aa...bb...cc
mylist = ['aa', 'bb', 'cc']
print('...'.join(mylist))

# 结果:hello world hello python
list1 = ['hello', 'world', 'hello', 'python']
print(' '.join(list1))

@4.capitalize()方法

capitalize( )方法:将字符串第一个字符转换成大写。

"""
 下面结果可以看到两点
 1.字符串的第一个字符变成大写了。
 2.除了首字符外,其他字符如有大写,都变成小写。
"""
# 结果:Life is short,you need python。
mystr = "life is short,you need Python。"
new_str = mystr.capitalize()
print(new_str)

注意:capitalize( )方法转换后,只字符串第一个字符大写,其他的字符全都小写。

@5.title( )方法

title( )方法:将字符串每个单词首字母转换成大写。

# 将字符串中的每个单词的首字母都转换成大写。
# 如果单词的首字母原本就是大写,保持不变。
# 结果:Life Is Short,You Need Python。
mystr = "life is short,you need Python。"
new_str = mystr.title()
print(new_str)

@6.lower( )方法

lower( )方法:将字符串中大写转小写。

# 把字符串变成全小写。
# 结果:life is short,you need python。
mystr = "life is short,You Need Python。"
new_str = mystr.lower()
print(new_str)

@7.upper( )方法

upper( )方法:将字符串中小写转大写。

# 把字符串变成全大写。
# 结果:LIFE IS SHORT,YOU NEED PYTHON。
mystr = "life is short,You Need Python。"
new_str = mystr.upper()
print(new_str)

@8.lstrip( )方法

lstrip( )方法:删除字符串左侧空白字符。

mystr = "   Life is short,you need Python。  "
new_str = mystr.lstrip()
print(new_str)
@9.rstrip( )方法

rstrip( )方法:删除字符串右侧空白字符。

mystr = "   Life is short,you need Python。  "
new_str = mystr.rstrip()
print(new_str)
@10.strip( )方法

strip( )方法:删除字符串两侧空白字符。

mystr = "   Life is short,you need Python。  "
new_str = mystr.strip()
print(new_str)
@11.ljust( )方法

ljust( )方法:返回一个原字符串左对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法
字符串序列.ljust(长度, 填充字符)

示例

# 输出结果:Pyhton....
mystr = "Pyhton"
new_str = mystr.ljust(10 , ".")
print(new_str)
@12.rjust( )方法

rjust( )方法:返回一个原字符串右对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法和ljust( )方法相同。

示例

# 字符串序列.rjust(长度, 填充字符)
# 输出结果:....Pyhton
mystr = "Pyhton"
new_str = mystr.rjust(10 , ".")
print(new_str)
@13.center( )方法

center( )方法:返回一个原字符串居中对齐的字符串,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法和ljust( )方法相同。

示例

# 字符串序列.center(长度, 填充字符)
# 输出结果:..Pyhton..
mystr = "Pyhton"
new_str = mystr.center(10 , ".")
print(new_str)

"""
 有的时候可能不是绝对居中,
 补充字符数可能是奇数,
 调整长度即可让补充字符数变成偶数,
 来达到绝对居中效果。
"""

3、判断

所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。

@1.startswith( )方法

startswith( )方法:检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

语法
字符串序列.startswith(子串, 开始位置下标, 结束位置下标)

开始位置下标和结束位置下标可以不写,不写则是全字符串内检查。

快速体验
mystr = "Life is short,you need Python"

# 结果:True
new_str = mystr.startswith('Li')
print(new_str)

# 结果False
mystr = "Life is short,you need Python"
new_str = mystr.startswith('Li', 3, 15)
print(new_str)
@2.endswith( )方法

endswith( )方法:检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开始和结束位置下标,则在指定范围内检查。

语法
字符串序列.endswith(子串, 开始位置下标, 结束位置下标)

开始位置下标和结束位置下标可以不写,不写则是全字符串内检查。

快速体验
mystr = "Life is short,you need Python"

# 结果:False
new_str = mystr.endswith('thons')
print(new_str)

# 结果:False
new_str = mystr.endswith('thon', 5, 20)
print(new_str)
@3.isalpha( )方法

isalpha( )方法:如果字符串至少有一个字符,并且所有字符都是字母则返回 True, 否则返回 False。

mystr = "Life is short,you need Python"
mystr1 = 'hello'
mystr2 = 'hello12345'

# 结果:False 因为有空格 
new_str = mystr.isalpha()
print(new_str)

# 结果:True
new_str = mystr1.isalpha()
print(new_str)

# 结果:False 因为有数字
new_str = mystr2.isalpha()
print(new_str)
@4.isdigit( )方法

isdigit( )方法:如果字符串只包含数字则返回 True,否则返回 False。

mystr = "12345 12345"
mystr1 = 'aaa12345'
mystr2 = '12345'

# 结果: False 因为有空格 
new_str = mystr.isdigit()
print(new_str)

# 结果:False 因为有字母
new_str = mystr1.isdigit()
print(new_str)

# 结果:True
new_str = mystr2.isdigit()
print(new_str)
@5.isalnum( )方法

isalnum( )方法:如果字符串至少有一个字符,并且所有字符都是字母或数字或者字母和数字的组合,则返回 True,否则返回False。

mystr = "Life is short,you need Python"
mystr1 = 'aaa12345'
mystr2 = '12345-'

# 结果:False 因为有空格
new_str = mystr.isalnum()
print(new_str)

# 结果:True
new_str = mystr1.isalnum()
print(new_str)

# 结果:False 只能是数字或者字母,其他字符都不行
new_str = mystr1.isalnum()
print(new_str)
@6.isspace( )方法

isspace( )方法:如果字符串中只包含空白,则返回True,否则返回False。

mystr = "Life is short,you need Python"
mystr1 = '     '

# 结果:False
new_str = mystr.isspace()
print(new_str)

# 结果:True
new_str = mystr1.isspace()
print(new_str)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值