huangdongdong 发表于 2021-2-4 21:08:55

求解答

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

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

if IsFind == False:   
    print('查找的数据不存在!')
为何不能这样???

ncx0331 发表于 2021-2-4 21:08:56

本帖最后由 ncx0331 于 2021-2-4 21:46 编辑

因为score是二维列表,当判断内嵌列表中的元素是否与用户输入的匹配,需要用到两个for循环,不过这样有个坏处:如果用户输入的是得分,就不能正常运行,推荐使用以下代码:
name = input('请输入待查找的用户名:')
score = [['迷途', 85], ['黑夜', 80], ['小布丁', 65], ['福禄娃娃', 95], ['怡静', 90]]
IsFind = False
for name1 in score:   
    if name1 in score: #因为用户名的索引是0
      print(name , '的得分是:', each)
      IsFind = True
      break

if IsFind == False:   
    print('查找的数据不存在!')

ncx0331 发表于 2021-2-4 21:47:36

你的变量名也重复了哦~

huangdongdong 发表于 2021-2-5 10:43:26

ncx0331 发表于 2021-2-4 21:47
你的变量名也重复了哦~

为何还要引入变量name1,不能继续使用变量name

°蓝鲤歌蓝 发表于 2021-2-5 11:01:11

huangdongdong 发表于 2021-2-5 10:43
为何还要引入变量name1,不能继续使用变量name

你继续使用 name 的话,程序怎么知道你想用的是name = input('请输入待查找的用户名:')
这个name,还是 for name in score: 这个 name 啊?

蒋博文 发表于 2021-2-5 11:11:33

呃呃呃
又来一个1鱼币悬赏。。。

XiaoPaiShen 发表于 2021-2-5 11:24:28

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

if IsFind == False:   
    print('查找的数据不存在!')

XiaoPaiShen 发表于 2021-2-6 12:42:23

你选的最佳答案,运行结果对吗?
页: [1]
查看完整版本: 求解答