#少儿编程#

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

图1

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

字符串的长度

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

len(s):

参数:s---字符串

返回值:字符串长度

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

图2

注意:

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

字符串的替换

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

术语箱

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

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

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

语法:str.replace(old,new)

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

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

返回值:生成新的字符串

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

图3

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

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

图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:

图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:

图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:

图7

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

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

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

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

  1. python寻找完全平方数_少儿编程|Python小课堂 – 寻找aabb完全平方数

    某个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数.比如:0,1,4,9,16,25,36等. 我们的任务是找到形如aabb的这样的完全平方数 (即前两位相等,后两位也相等 ...

  2. 少儿编程python教材_少儿编程|Python环境安装

    一.为什么要学Python? 小学 山东,浙江,北京地区小学已将Python内容纳入教材 高中 浙江省已将信息技术教材编程语言替换为Python 大学 计算机二级考试加入"Python 语言 ...

  3. python 儿童 游戏_少儿编程分享:手把手教你用Python编写战斗机游戏(完)

    原标题:少儿编程分享:手把手教你用Python编写战斗机游戏(完) 加入图像 现在我们已经能够玩游戏了,但这个游戏丑确实有点丑 .接下来,我们要把单调的白色矩形换成好看的图片. 在前面的代码中,我们用 ...

  4. 用python画小兔子_少儿编程分享:手把手教你用PYTHON编写兔獾大作战(一)

    原标题:少儿编程分享:手把手教你用PYTHON编写兔獾大作战(一) 游戏制作 我们今天要制作的小游戏是Bunnies vs. Badgers (兔獾大作战).游戏中的兔子通过射箭抵御獾的进攻,从而保卫 ...

  5. python五角星教程_绘制五角星_清华尹成python入门教程_少儿编程视频-51CTO学院

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  6. python代码少儿编程转换_数据类型转换_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  7. 数学表达式转换成python_简单数学表达式_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  8. python儿童编程教程视频_简单回顾_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  9. 利用python绘制奥运五环_绘制奥运五环_清华尹成python入门教程_少儿编程视频-51CTO学院...

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

最新文章

  1. 从五个方面做IT职业规划
  2. fj怎么样_一朝中毒普拉多,万能解药FJ酷路泽
  3. 小程序的前端坑(持续更新)
  4. java面试题标签_java面试笔试题 (WEB)
  5. 一周一论文(翻译)——[SIGMOD 2015] TIMELY RTT-based Congestion Control for the Datacenter
  6. C++ 容器的综合应用的一个简单实例——文本查询程序
  7. db platform mysql_xss-platform
  8. 7-46 银行排队问题之单队列多窗口服务 (10 分)
  9. sql 大于某个日期_图解面试题:如何比较日期数据?
  10. MySQL实习训练1
  11. Linux中命令行进行WiFi连接(零基础详解)
  12. html单元格下拉菜单怎么做,Excel 2013如何制作下拉菜单?(excel下拉菜单怎么做?)...
  13. 《梦幻西游手游》分析报告
  14. 创建maven项目时添加自定义property属性
  15. Excel数据导入___你hold住么(一)
  16. 最近刷爆朋友圈的“召唤神龙”
  17. Percentile
  18. EasyPusher安卓Android手机直播推送之MediaCodec 硬编码H264格式
  19. 内网渗透(九)之内网信息收集-手动本地信息收集
  20. Centos 7 安装 docker

热门文章

  1. 动环监控系统的服务器部署在,动环监控系统【斯必得智慧机房】
  2. 流利说英语level4_英语流利说-懂你英语Level4Unit1Part1
  3. 入门CG板绘须知:学插画需要学好素描吗?
  4. 论坛,贴吧,Q群,微信个人号群发
  5. css网页布局小练习,文字案例,小米官网卡片案例
  6. [288]关于MySQL的1064错误
  7. 要想走向比目前更为理想的境况
  8. 【1】深度学习之饮水思源:从感知机到深度网络
  9. 工作3年,看啥资料能月薪30K?
  10. Linux中/proc目录下文件详解 /proc/devices文件 /proc/modules文件