16讲序列课后题
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('查找的数据不存在!')
麻烦大佬解释一下这道题。 请见:https://fishc.com.cn/forum.php?mod=viewthread&tid=54433
PS:善用论坛的【搜索】功能 name= input("请输入查找的用户名")
score = [['迷途',85],['黑夜',80]]
for each in score:
if name == each:
print(name + "的得分是:",each)
if name != each:
print("查找的数据不存在")
我写的好像也对。但是后面这个if name != each 写的好像有点问题,不过。输出的结果为啥是对的 今天又起雾了 发表于 2020-7-18 15:39
name= input("请输入查找的用户名")
score = [['迷途',85],['黑夜',80]]
因为你这个 score 列表只有两个元素,如果元素再多一点的话输出结果就不对了
看注释:
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False # 初始化数据为 False ,未找到
for each in score: # 循环查找 score 列表,查看所输入的字符是否在列表中
if name in each: # 如果在列表中就执行 if 下面的代码块
print(name + '的得分是:', each)
IsFind = True# 如果执行了 if 说明已经找到了,那么此时将 IsFind 设置为 True 说明已找到
break
if IsFind == False: # 若 IsFind = True 说明已经找到,就不打印,反之就打印
print('查找的数据不存在!') 今天又起雾了 发表于 2020-7-18 15:39
name= input("请输入查找的用户名")
score = [['迷途',85],['黑夜',80]]
但是后面这个if name != each 写的好像有点问题,不过。输出的结果为啥是对的
不会正确呀,你输入黑夜可以拿去判断,因为 each 循环结束永远等于 for 循环的最后一个元素
而你输入迷途就会发现多打印了一次查找的数据不存在
i 的 for 循环每次结束都会使得 each 停留在列表里的最后一个元素 each = ['黑夜',80]
谢谢各位大佬
页:
[1]