python怎么编辑程序_少儿编程:Python系列24——字符串的替换和检索

#少儿编程#

因为会汉语拼音了,小po最近迷上打字,他经常会为我们家制作一张购物清单(其实就是他想吃的东西),如图1,然后把这张购物清单作为字符串赋值到一个变量里。

814159478510a6dfaa5fcad132100281.png图1

这次他刚做完,就发觉奶豆和奶棒都写得太简单了,想改一下。可是又不想重新打,就想着如果能直接替换就好了。Python当然能满足小po这个需求,不过在学习如何替换之前,我们先了解一下字符串得长度。

字符串的长度

如同列表和元组一样,字符串也有长度,字符串的长度就是字符的个数。Python语言提供了获取字符串长度的内置函数len():

len(s):

参数:s---字符串

返回值:字符串长度

图2红框内是适用len()方法获取字符串“小po” 的长度。“小po”有3个字符:“小”、“p”、“o”,所以其长度为3。

b26ca84bd02a168c98398f845581da8d.png图2

注意:

字符串的长度并不等于它的最大索引,因为索引是从0开始的。

字符串的替换

在了解如何替换之前,我们先来看一个术语:子字符串。

术语箱

子串(子字符串):在较大的字符串中查找较小的字符串,那个较小的字符串就称为子字符串(substring)。

现在我们就来看看如何帮助小po实现替换奶豆和奶棒的想法。Python语言替换字符串的内置函数是replace()。

replace():把字符串(str)中的旧字符串(old)替换成新字符串(new)

语法:str.replace(old,new)

参数:old---将要被替换的子字符串

new---新字符串,用于替换old子字符串

返回值:生成新的字符串

下面我们来一起看看replace()函数是怎么用的,如图3:

869489811693ad69b4545d37efa3cc84.png图3

红框内的代码qingdan_1.replace("奶豆",naidou),意思就是将变量qingdan_1的字符串中的字符串“奶豆”换成“奶豆:酸奶味”。我们可以看到,替换后,原来的“3、奶豆;”变成了“3、奶豆:酸奶味;”。

那么现在我们要把“奶棒”的内容也改一改呢?如图4:

9cca01c2cc39b3518e70aded1ed14f3e.png图4

图4红框中的代码qingdan_3 = qingdan_2.replace("奶棒",naibang),意思是将变量qingdan_2的字符串中的字符串“奶棒”替换成“奶棒:葡萄味”,并把新的字符串赋值给变量qingdan_3。

注意:

str.replace(old,new)函数执行过后,并不会改变原字符串str,而是生成一个新的字符串,这个新的字符串需要存到另一个变量里。

字符串检索

我们有时也需要在字符串中查找内容,比如小po忘了是否在清单中写上巧克力,他现在想搜索一下,看看清单qingdan_3上有没有“巧克力”。Python语言提供了两个内置函数来实现检索的目的,find()和index()。

find()

find()方法是Python语言提供的内置方法,它是检测字符串是否包含子字符串。

find():检测字符串str1中是否包含子字符串subStr

语法:str1.find(subStr,beg=0,end=len(str1))

参数:str1---被检索的字符串

subStr---是否包含的子字符串

beg---开始索引,默认为0

end---结束索引,默认为被检索的字符串的长度

返回值:如果包含,则返回包含子字符串开始的索引值,否则返回-1

下面我们来看看find()函数怎么用,如图5:

548936c6606d24935b48400e71b27187.png图5

图5中代码① qingdan_3.find(“巧克力”):检测字符串qingdan_3是否包含子字符串“巧克力”,返回的值为19,说明“巧克力”在索引19的位置,也就是说qiangdan_3是包含“巧克力”这个字符串的。

代码② qingdan_3.find(“曲奇”):返回值为-1,说明qingdan_3字符串并不包含“曲奇”这个字符串。

index()

index():检测字符串中是否包含子字符串

语法:str1.index(subStr,beg=0,end=len(str1))

参数:str1---被检索的字符串

subStr---是否包含的子字符串

beg---开始索引,默认为0

end---结束索引,默认为被检索的字符串的长度

返回值:如果包含,则返回包含子字符串开始的索引值,否则抛出异常

下面我们来看看index()方法怎么使用,index()方法和find()方法的使用方式一样,如图6:

6afe848dc60133a93ccc94861bc67f81.png图6

代码① qingdan_3.index(“巧克力”):检测字符串qingdan_3是否包含子字符串“巧克力”,返回的值为19,说明“巧克力”在索引19的位置,也就是说qiangdan_3是包含“巧克力”这个字符串的。

代码② qingdan_3.index(“曲奇”):直接抛出异常,说明qingdan_3字符串并不包含“曲奇”这个字符串。

注意:

从这我们可以看出index()和find()的区别,当我们要找的子字符串并不在被检索的字符串里时,find()方法是返回-1这个值,而index()则是中断程序,直接抛出异常。

小朋友们,我们可以这样理解,find()是查找的意思,当找不到我们要找的内容,find()以返回-1的形式告诉我们没有这个内容。而index()是索引的意思,当我们要找的内容不在这个字符串中,自然是求不出索引值的,所以直接报错了。

in操作

对于检索字符串,虽然Python语言提供了find()和index()两个内置方法,但这不代表我们只能用这两个方法,我们依然可以根据实际需求通过别的方式来实现检索的目的。比如Python语言中的in操作。

in操作是判断是否包含,如图7:

f9f3c054b8f761dfa0e6d9c7c5eab989.png图7

代码① "巧克力" in qingdan_3:判断“巧克力”是否在qingdan_3字符串中,包含的话就返回True;

代码② “曲奇” in qingdan_3:判断“曲奇”是否在qingdan_3字符串中,不包含就返回False。

原创不易,请勿抄袭。欢迎大家关注我,和我多交流,如果你喜欢,请转赞评三连,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值