鱼C论坛

 找回密码
 立即注册
查看: 13841|回复: 18

16讲 课后题4,--IsFind = False是什么意思?

[复制链接]
发表于 2016-11-1 23:18:41 | 显示全部楼层 |阅读模式

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

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

x
4. 哎呀呀,现在的小屁孩太调皮了,邻居家的孩子淘气,把小甲鱼刚写好的代码画了个图案,麻烦各位鱼油恢复下啊,另外这家伙画的是神马吗?怎么那么眼熟啊!??

                               
登录/注册后可看大图

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

for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        IsFind = True
        break
    
if IsFind == False:
    print('查找的数据不存在!')


IsFind = False是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-11-2 08:46:40 | 显示全部楼层
是一个标志flag,预设值为False,当找到名字后,改为True,最后判断是否为False。当然也可不用这个标识,简化为:
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]


for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        IsFind = True
        break
else:
    print('查找的数据不存在!')

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
人zai旅途 + 1 + 1 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-2 23:49:47 | 显示全部楼层
本帖最后由 人zai旅途 于 2016-11-3 00:06 编辑
冬雪雪冬 发表于 2016-11-2 08:46
是一个标志flag,预设值为False,当找到名字后,改为True,最后判断是否为False。当然也可不用这个标识,简 ...


谢谢大神,这个标识也可以不要
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]


for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        break
else:
    print('查找的数据不存在!')

最后,这个else可以单独用吗?不用必须和if 成对出现吗?这个例子中,是和for循环里面的条件对应的吗?
这个else是for 循环终止以外的情况触发,还是遍历所有条件才触发?
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]


for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
#      break
else:
    print('查找的数据不存在!')

输出结果是
请输入待查找的用户名:小布丁
小布丁的得分是: 65
查找的数据不存在!

也就是这个break跳出循环,也包括else:后面的内容吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-11-3 09:22:11 | 显示全部楼层
本帖最后由 冬雪雪冬 于 2016-11-3 09:26 编辑
人zai旅途 发表于 2016-11-2 23:49
谢谢大神,这个标识也可以不要


除了if可以有else,while和for也可以带else。
语句的结构是这样的:
while <判断>:
    语句
    ......
    语句
    if <判断>:
        break
    语句
    ......
    语句
else:
    语句
    ......
    语句
当循环正常执行完毕后,运行else的内容,而当break退出循环不执行else的内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2016-11-3 09:33:09 | 显示全部楼层
比如程序这样写,就很方便。
i = 0
while i < 3:
    pw = input('请输入密码:')
    if pw == '1234':
        print('密码正确。')
        break
    print('密码错误。')
    i += 1
else:
    print('三次输入错误,退出程序。')
    exit()
print('下面开始程序主体......')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-11-3 18:44:22 | 显示全部楼层
冬雪雪冬 发表于 2016-11-3 09:33
比如程序这样写,就很方便。

谢谢大神回复,这回理解透彻了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 15:34:06 | 显示全部楼层
冬雪雪冬 发表于 2016-11-3 09:33
比如程序这样写,就很方便。

为什么答案错误三次以后就没有输出'三次输入错误,退出程序。',
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-6 15:50:57 | 显示全部楼层
2018222030015 发表于 2019-3-6 15:34
为什么答案错误三次以后就没有输出'三次输入错误,退出程序。',

有的呀。
1.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-5 14:05:39 | 显示全部楼层
大概理解了,但是不明白IsFind从何来的。不是应该赋值name = False吗,用户输入的是给name赋值,这样的话IsFind不是保持着False吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-19 16:33:46 | 显示全部楼层
soga~知识get~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-4 14:38:34 | 显示全部楼层
13724022662 发表于 2019-6-5 14:05
大概理解了,但是不明白IsFind从何来的。不是应该赋值name = False吗,用户输入的是给name赋值,这样的话IsF ...

输入正确以后,isfind就为True了,不会运行if isfind == Flase:后面的语句。
你可以跟那个大神说的一样,就把isfind当成一个叫做Flag的参数,用来“插旗”标记。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-4-5 22:35:48 | 显示全部楼层
name = input('请输入待查找的用户名:')
score = [['迷途',85],['黑夜',80],['小布丁',65],['福禄娃娃',95],['怡静',90]]
for each in score:
    if name in each:
        print(name +'的得分',each[1])
if name not in (str(score)):
    print('查找的数据不存在')
又跟我的思路一样的吗
老乌龟画的那个图太影响思路了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2020-4-5 23:26:32 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2016-11-2 08:46
是一个标志flag,预设值为False,当找到名字后,改为True,最后判断是否为False。当然也可不用这个标识,简 ...

好久不见了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-7 14:46:17 | 显示全部楼层
_2_ 发表于 2020-4-5 23:26
好久不见了……

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-20 09:51:27 | 显示全部楼层
Tigeroad 发表于 2020-4-4 14:38
输入正确以后,isfind就为True了,不会运行if isfind == Flase:后面的语句。
你可以跟那个大神说的一样 ...

请问 我常识了把第三行和第八行的true false对调。程序还是能运行 是为什么?

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

for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        IsFind = False
        break

else:
    print('查找的数据不存在!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-5 21:03:15 | 显示全部楼层
本帖最后由 misswonder 于 2020-9-5 21:04 编辑

发错地方啦。删掉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-7-23 10:08:12 | 显示全部楼层
wmhmiao 发表于 2020-7-20 09:51
请问 我常识了把第三行和第八行的true false对调。程序还是能运行 是为什么?

name = input('请输入待 ...

这只是一个标志而已,True,False,甚至任何字符串都可以表示找没找到这个状态,比如:
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
flag = 'meizhaodao'#或者flag = Flase,插旗以标识有没有找到

for each in score:
    if name in each:
        print(name + '的得分是:', each[1])
        flag = 'zhaodaole'#或者flag = True
        break
   
if flag == 'meizhaodao':#或者flag == Flase
    print('查找的数据不存在!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-26 16:03:57 | 显示全部楼层
褴褛逻辑 发表于 2020-4-5 22:35
又跟我的思路一样的吗
老乌龟画的那个图太影响思路了

老乌龟那个图到底是啥,一直没看懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-11 10:48:44 | 显示全部楼层
if name in each:          85,80,65,95,90不也在each里么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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