无法理解,为什么要用len来定义start和end?

无法理解,为什么要用len来定义start和end?


问题:

无法理解,为什么要用len来定义start和end?而且我按提示运行后失败,请问是什么原因?


3-23 编程练习

​下列字符串中,判断名字以xiaomu开头,地点以BeiJing结尾,如何编写代码,返回结果都为True呢?

str_1 = "My name is xiaomu, I'm from BeiJing."

任务提示

1、str.startswith(item, start, end),start和end是可选参数,指定了这两个值,表示在指定范围内检查字符串是否以指定内容开头

2、str.endswith(item, start, end),表示在指定范围内检查字符串是否以指定内容结尾

3、len()函数用于计算字符串的长度,判断名字以xiaomu开头,开始范围start可定义为len("My name is ")

4、判断地点以BeiJing结尾,end可定义为len("My name is xiaomu, I'm from BeiJing")


我的代码:

# coding:utf-8


str_1 = "My name is xiaomu, I'm from BeiJing."

start = len('My name is')

end = len('My name is xiaomu, I'm from BeiJing')

str_1_start = str_1.startswith('xiaomu',start,end)

str_1_end = str_1.endswith('BeiJing',start,end)


print(str_1_start)

print(str_1_end)


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2021-06-21 17:55:11

同学,你好!

1、使用len()可以获取字符串的长度,用来作为查询时的起始位置和结束位置

2、报错是由于字符串中引号使用的不对,当字符串中有单引号时,外边要用双引号引起来

http://img1.sycdn.imooc.com//climg/60d061660987750e07730083.jpg

祝学习愉快!

  • 提问者 camaelyuxi #1

    嗯嗯,引号问题解决了,但是使用len()来查询起始位置和结束位置的方法还是比较糊涂。

    1、以xiaomu开头,为什么start定义为len("My name is ")?——xiaomu在"My name is "的后面

    2、以BeiJing结尾,为什么end定义为len("My name is xiaomu, I'm from BeiJing")?——BeiJing在"My name is xiaomu, I'm from BeiJing"的里面,我试了一下,只用了"from BeiJing",就两个都是false了

    2021-06-21 18:09:27
  • 好帮手慕美 回复 提问者 camaelyuxi #2

    同学,你好!

    1、得到"My name is "的长度后赋值给start,表示会从当前位置开始向后查找,

    len("My name is xiaomu, I'm from BeiJing")是将字符串的长度赋值给end,表示查找范围的结束位置,查到下标为end的位置就结束了。

    2、"from BeiJing"的长度为12,将end的值设置为12,结果为False,表示在该范围内没有要查找的字符串,因此结果为False

    祝学习愉快!

    2021-06-21 19:11:19
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师