zhaoquan_x 发表于 2023-4-11 14:25:56

求教列表问题?


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('查找的数据不存在!')
这个85,80,65,95,90不也在列表each里么?为什么输入这些时程序还是显示'查找的数据不存在!呢?

isdkz 发表于 2023-4-11 14:30:12

这个程序是根据用户输入的用户名来查找对应的分数。列表score中的每个元素都是一个子列表,包含用户名和对应的分数。

程序遍历整个score列表,然后在每个子列表中查找用户输入的用户名。如果找到了,就输出对应的分数。

当您输入85, 80, 65, 95, 90这些数字时,程序显示“查找的数据不存在!”是因为您输入的是分数,而程序是根据用户名来查找分数的。

在每个子列表each中,用户名是each,分数是each。程序只会检查each,即用户名,而不会检查分数。

所以当您输入分数时,它找不到对应的用户名,从而显示数据不存在。

如果您想根据分数查找用户名,可以修改程序如下:

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

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

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

这样修改后,程序会根据输入的分数来查找对应的用户名。
页: [1]
查看完整版本: 求教列表问题?