16讲 课后题4,--IsFind = False是什么意思?
4. 哎呀呀,现在的小屁孩太调皮了,邻居家的孩子淘气,把小甲鱼刚写好的代码画了个图案,麻烦各位鱼油恢复下啊,另外这家伙画的是神马吗?怎么那么眼熟啊!??http://xxx.fishc.com/forum/201312/14/212245ym3vtjyv1m10njmg.png
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False
for each in score:
if name in each:
print(name + '的得分是:', each)
IsFind = True
break
if IsFind == False:
print('查找的数据不存在!')
IsFind = False是什么意思? 是一个标志flag,预设值为False,当找到名字后,改为True,最后判断是否为False。当然也可不用这个标识,简化为:
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
for each in score:
if name in each:
print(name + '的得分是:', each)
IsFind = True
break
else:
print('查找的数据不存在!') 本帖最后由 人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)
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)
# break
else:
print('查找的数据不存在!')
输出结果是
请输入待查找的用户名:小布丁
小布丁的得分是: 65
查找的数据不存在!
也就是这个break跳出循环,也包括else:后面的内容吗? 本帖最后由 冬雪雪冬 于 2016-11-3 09:26 编辑
人zai旅途 发表于 2016-11-2 23:49
谢谢大神,这个标识也可以不要
除了if可以有else,while和for也可以带else。
语句的结构是这样的:
while <判断>:
语句
......
语句
if <判断>:
break
语句
......
语句
else:
语句
......
语句
当循环正常执行完毕后,运行else的内容,而当break退出循环不执行else的内容。 比如程序这样写,就很方便。
i = 0
while i < 3:
pw = input('请输入密码:')
if pw == '1234':
print('密码正确。')
break
print('密码错误。')
i += 1
else:
print('三次输入错误,退出程序。')
exit()
print('下面开始程序主体......') 冬雪雪冬 发表于 2016-11-3 09:33
比如程序这样写,就很方便。
谢谢大神回复,这回理解透彻了 冬雪雪冬 发表于 2016-11-3 09:33
比如程序这样写,就很方便。
为什么答案错误三次以后就没有输出'三次输入错误,退出程序。', 2018222030015 发表于 2019-3-6 15:34
为什么答案错误三次以后就没有输出'三次输入错误,退出程序。',
有的呀。 大概理解了,但是不明白IsFind从何来的。不是应该赋值name = False吗,用户输入的是给name赋值,这样的话IsFind不是保持着False吗 soga~知识get~ 13724022662 发表于 2019-6-5 14:05
大概理解了,但是不明白IsFind从何来的。不是应该赋值name = False吗,用户输入的是给name赋值,这样的话IsF ...
输入正确以后,isfind就为True了,不会运行if isfind == Flase:后面的语句。
你可以跟那个大神说的一样,就把isfind当成一个叫做Flag的参数,用来“插旗”标记。 name = input('请输入待查找的用户名:')
score = [['迷途',85],['黑夜',80],['小布丁',65],['福禄娃娃',95],['怡静',90]]
for each in score:
if name in each:
print(name +'的得分',each)
if name not in (str(score)):
print('查找的数据不存在')
又跟我的思路一样的吗
老乌龟画的那个图太影响思路了 冬雪雪冬 发表于 2016-11-2 08:46
是一个标志flag,预设值为False,当找到名字后,改为True,最后判断是否为False。当然也可不用这个标识,简 ...
好久不见了…… _2_ 发表于 2020-4-5 23:26
好久不见了……
是的 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)
IsFind = False
break
else:
print('查找的数据不存在!') 本帖最后由 misswonder 于 2020-9-5 21:04 编辑
发错地方啦。删掉。 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)
flag = 'zhaodaole'#或者flag = True
break
if flag == 'meizhaodao':#或者flag == Flase
print('查找的数据不存在!') 褴褛逻辑 发表于 2020-4-5 22:35
又跟我的思路一样的吗
老乌龟画的那个图太影响思路了
老乌龟那个图到底是啥,一直没看懂 if name in each: 85,80,65,95,90不也在each里么?
页:
[1]