python字符串,切片,操作查找和修改

知识点总结

type

函数用于检测数据类型

** eval(str )

用来计算在字符串中的有效Python表达式,并返回一个对象

此函数必须是字符串类型,此函数能根据变量的值推算出数据的类型并进行转换

s1 = '10'
​
list1 = '[10, 20, 30]'
​
t1 = '(10, 20, 30)'
​
print(type(eval(s1))) # <class 'int'>
​
print(type(eval(list1))) # <class 'list'>
​
print(type(eval(t1))) # <class 'tuple'>

字符串(str)

三引号字符串支持换行

a='''hello
    word
你好
    世界'''
print(a)

下标

name = "abcdef"
print(name[1])#b
print(name[0])#a
print(name[2])#c

切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作

序列[开始位置下标:结束位置下标:步长]

注意:

切片语法有三个参数,参数之间使用 : 分割

  • str[1:4:1] 表示 参数1为1,参数2为4,参数三位1

  • str[1:] 表示参数1=1,参数2=最后一个字符,参数3=1

  • str[:3:1] 表示参数1=0,参数2=3,参数3=1

  • str[::1] 表示参数1=0,参数2=字符串长度,参数3=1

  • str[:] 表示各个参数都是默认值

  • str[]

  • 结束位置不包含在切片范围之内

  • 步长是选取间隔,默认步长为1

  • 三个参数都可以为负数

  • 起始位置和结束位置为负数,表示索引是倒叙排序的

  • 步长为正数,表示从左到右选取,为负数,表示从右到左选取

  • 三个参数都可以不写

  • 起始位置默认值=0

  • 结束位置默认值=选取到最后一个字符

  • 步长默认值=1

    例题

    name = "0123456789"

    # 234:起始坐标为2,结束坐标为5但包含5,步长为正数1,表示从坐标2开始向右选取到坐标为5-1的字符

    print(name[2:5:1])

    # 234:省略了步长,则其默认值为1,所以与上面的选取结果一样

    print(name[2:5])

    # 01234:省略了开始坐标和步长,则其默认值分别为 0 和 1,表示从坐标0开始向右选取到坐标为5-1的字

    符,步长为1

    print(name[:5])

    # 123456789 省略了结束坐标和步长,表示从坐标1开始,向又选取到最后一个字符,步长为1

    print(name[1:])

    # 0123456789省略了所有参数,表示从坐标0开始,向右选取到最后一个字符

    print(name[:])

    # 02468:省略了开始坐标和结束坐标,步长为2,表示从坐标0开始,向又间隔一个字符选取一个字符,一直

    选取到最后一个字符

    print(name[::2])

    """

    012345678:省略了开始坐标和步长,表示从坐标0开始,向又选取到-1但又不包含-1(-1倒叙排列索引,及

    最后一个字符索引为-1,倒数第二个索引为-2,倒数第三额索引为-3),

    步长为1

    """

    print(name[:-1])

    # 678省略了步长,表示从坐标-4开始,向又选取到坐标为-1-1(-2)的字符,步长为1

    print(name[-4:-1])

    """

    9876543210

    省略了开始坐标和结束坐标,且步长为-1

    表示从0开始选取到最后一个字符,也就是所有字符

    但因为步长为-1,所以这个选取是倒着的

    """

    print(name[::-1])

    name = "我喜欢看田腾吃"
    print(name[2:5:1])#欢看田
    print(name[2:5])#欢看田
    print(name[:5])#我喜欢看田
    print(name[1:])# 喜欢看田腾吃
    print(name[:])# 我喜欢看田腾吃
    print(name[::2])# 我欢田吃
    print(name[:-1])# 我喜欢看田腾
    print(name[-4:-1])# 看田腾
    print(name[::-1])# 吃腾田看欢喜我

字符串操作查找和修改

查找

find():

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返

回-1。

1.语法

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

name="我喜欢看田腾吃田鼠"
print(name.find('田',))#4
print(name.find('田',5,8))#7
print(name.find('赵'))#-1

index():

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报

异常。

1.语法

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

name="我喜欢看田腾吃田鼠"
print(name.index('田',))#4
print(name.index('田',5,8))#7
print(name.index('赵'))#报错

rfind(): 和find()功能相同,但查找方向为==右侧==开始。

rindex():和index()功能相同,但查找方向为==右侧==开始。

count():

返回某个子串在字符串中出现的次数

1.语法

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

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

name="我喜欢看田腾在田野中吃田鼠"
print(name.count('田',))#3
print(name.count('田',5,10))#1
print(name.count('赵'))#0

修改

replace():替换

1.语法

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

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

name = "田腾在田野里吃田鼠"
print(name.replace('田', '李'))# 李腾在李野里吃李鼠
print(name.replace('田', '李', 2))# 李腾在李野里吃田鼠
print(name)# 田腾在田野里吃田鼠

注意:数据按照是否能直接修改分为 可变类型 和 不可变类型 两种。字符串类型的数据修改的时

候不能改变原有字符串,属于不能直接修改数据的类型即是不可变类型。

split():按照指定字符分割字符串

1.语法

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

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

name="我喜欢看 田腾在田野里 吃 田鼠"
print(name.split('田'))# ['我喜欢看 ', '腾在', '野里 吃 ', '鼠']
print(name.split('田',2))# ['我喜欢看 ', '腾在', '野里 吃 田鼠']
print(name.split(' '))# ['我喜欢看', '田腾在田野里', '吃', '田鼠']
print(name.split(' ',2))# ['我喜欢看', '田腾在田野里', '吃 田鼠']

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

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

1.语法

字符或子串.join(多字符串组成的序列)

list1=['田','腾','爱吃','田','鼠']
print('小'.join(list1))#田小腾小爱吃小田小鼠

capitalize():将字符串第一个字符转换成大写,剩下的字符小写

1.例子

name = "hello TianTen"
print(name.capitalize())#Hello tianten

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

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

1.例子

name = "Tian Teng what are you doing"
print(name.title())#Tian Teng What Are You Doing

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

1.例子

name = "Tian Teng what are you doing"
print(name.lower())#tian teng what are you doing

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

1.例子

name = "Tian Teng what are you doing"
print(name.upper())#TIAN TENG WHAT ARE YOU DOING

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

1.例子

name = "      Tian Teng what are you doing"
print(name.lstrip())#Tian Teng what are you doing

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

1.例子

name = "Tian Teng what are you doing       "
print(name.rstrip())#Tian Teng what are you doing

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

1.例子

name = "      Tian Teng what are you doing         "
print(name.strip())#Tian Teng what are you doing

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

1.语法

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

mystr='hello'
l1=mystr.ljust(10,'.')
l2=mystr.ljust(10)
print(l1)#'hello.....'
print(l2)#'hello     '

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

ljust()相同。

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

法和ljust()相同。

判断

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

startswith():检查字符串是否是以指定子串开头,是则返回 True,否则返回 False。如果设置开始

和结束位置下标,则在指定范围内检查

1语法

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

name='Tian Teng what are you doing'
print(name.startswith('Tian'))#True
print(name.startswith('Tian', 5, 20))#False

endswith()::检查字符串是否是以指定子串结尾,是则返回 True,否则返回 False。如果设置开

始和结束位置下标,则在指定范围内检查。

1.语法

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

name='Tian Teng what are you doing'
print(name.endswith('doing'))#True
print(len(name))#28
print(name.endswith('doing', 5, 26))#False

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

tian='tianteng'
du='du123'
print(tian.isalpha())#True
print(du.isalpha())#False

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

tian='tianteng'
du='du123'
li='123456'
print(li.isdigit())#True
print(tian.isdigit())#False
print(du.isdigit())#False

isalnum():如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回

False。

tian='tianteng'
du='du123'
li='123456'
print(li.isalpha())#False
print(tian.isalnum())#True
print(du.isalnum())#True

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

tian = '1 2 3 4 5'
du = ' '
print(tian.isspace())# 结果:False
print(du.isspace())#  结果:True
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值