|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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('查找的数据不存在!')
后面呢我想做个简单的扩展练习,就是利用原来那种猜数字的循环,在我写出来的名字属于列表中的名字时,程序不会break,继续让我填写人名,我改造的程序是这样的:
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
for each in score:
name = input('请输入待查找的用户名:')
if name in each:
print(name + '的得分是:', each[1])
continue
else:
break
print('查找的数据不存在!')
print('thanks for using!!')
继续填写人名的功能是能实现没错,但是如果重复填写两次一个名字,譬如‘迷途’,后面就什么答案都不会给了(如下图),不知道这个是为什么,而且else后面的程序感觉都没有执行,是这里的else不能代表if name not in each的意思吗?
==
请输入待查找的用户名:迷途
迷途的得分是: 85
请输入待查找的用户名:迷途
>>>
本帖最后由 Twilight6 于 2020-6-30 11:30 编辑
for 循环会把元素一个个拿出来,所以你判断是否在score 中要每个都 for 取出来判断 才能达到目的
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
while True:
name = input('请输入待查找的用户名:')
for each in score:
if name in each:
print(name + '的得分是:', each[1])
break
else:
print('查找的数据不存在!')
print('thanks for using!!')
break
|
|