鱼C论坛

 找回密码
 立即注册
查看: 2142|回复: 6

[已解决]第16讲课后习题的一个问题

[复制链接]
发表于 2020-3-30 15:30:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
name = input('请输入带查找的用户名:')
score = [['迷途',85],['黑夜',88],['小布丁',65],['福禄娃娃',95],['怡静',90]]

for each in score:
    if name in each:
        print(name + '得分是' ,each[1])
        break
if name not in each:
    print("查找的数据不存在")
上面是程序,关于这个break我有点小问题,我个人理解是不需要break的,但删除break的时候会显示下面这样
请输入带查找的用户名:迷途
迷途得分是 85
查找的数据不存在
break不是跳出的是for循环嘛?为什么会影响到执行下面的if语句


       
最佳答案
2020-3-30 15:34:19
可以打印一下each:
for each in score:
    if name in each:
        print(name + '得分是' ,each[1])
        #break
print(each)
if name not in each:
    print("查找的数据不存在")  
会发现,如果删掉break,each就会等于
列表最后一个元素(for循环会继续遍历)
这时候,加入break,就可以让each保留
在正确的状态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-30 15:32:29 | 显示全部楼层
本帖最后由 heidern0612 于 2020-3-30 15:46 编辑

这段代码的意思是,东西已经找到了,就跳出循环吧。

不break的话,是不是假如东西我已经找到了,我还得继续找下去?

假如我for循环了个遍,each是不是就指代for循环的最后一位序列,名存实亡了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-30 15:34:19 | 显示全部楼层    本楼为最佳答案   
可以打印一下each:
for each in score:
    if name in each:
        print(name + '得分是' ,each[1])
        #break
print(each)
if name not in each:
    print("查找的数据不存在")  
会发现,如果删掉break,each就会等于
列表最后一个元素(for循环会继续遍历)
这时候,加入break,就可以让each保留
在正确的状态。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 15:35:02 | 显示全部楼层
利用循环指定了each的值
删了,each最终肯定是score中的最后那个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 15:40:09 | 显示全部楼层
来看看大神们回复
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-30 15:43:59 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-30 15:53 编辑

     楼主的代码似乎这样写才对
name = input('请输入带查找的用户名:')
score = [['迷途',85],['黑夜',88],['小布丁',65],['福禄娃娃',95],['怡静',90]]

for each in score:
    if name in each:
        print(name + '得分是' , each[1])
        break
else : print("查找的数据不存在")
        如果找到就打印信息,并 break 退出循环,如果循环过程不曾被 break 语句打断,那就执行 for 循环的 else 语句,打印没找到信息。这样,代码逻辑是一体的,可以避免两头判断给代码逻辑增加的复杂度。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 16:06:55 | 显示全部楼层
懂了,谢谢各位大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表