这是我第一次上计算机科学课,所以请原谅我,如果这个答案真的很明显。我写了下面的代码,它工作得很好。我只需要添加一个else语句来解释一个无效的名称输入
以下是之前的内容:
mynames = ['Naomi', 'James', 'Amos', 'Alex', 'Bobbie', 'Josephus', 'Fred', 'Camina', 'Julie', 'Prax', 'Christien', 'Anderson', 'Havelock', 'Ashford', 'Bull', 'Anna', 'Arjun', 'Souther', 'Carissa', 'Samara']
myscores = [89, 98, 76, 76, 84, 93, 82, 64, 63, 75, 76, 86, 96, 75, 86, 100, 99, 87, 84, 94]
name = input("Please enter a name:")
#search through mynames to find the name
while name!='q':
for x in range(20):
if mynames[x] == name:
print(mynames[x], "scored", myscores[x])
name = input("Please enter a name:")
接下来是:
mynames = ['Naomi', 'James', 'Amos', 'Alex', 'Bobbie', 'Josephus', 'Fred', 'Camina', 'Julie', 'Prax', 'Christien', 'Anderson', 'Havelock', 'Ashford', 'Bull', 'Anna', 'Arjun', 'Souther', 'Carissa', 'Samara']
myscores = [89, 98, 76, 76, 84, 93, 82, 64, 63, 75, 76, 86, 96, 75, 86, 100, 99, 87, 84, 94]
name = input("Please enter a name:")
#search through mynames to find the name
while name!='q':
for x in range(20):
if mynames[x] == name:
print(mynames[x], "scored", myscores[x])
else:
print("That name is not in this class.")
name = input("Please enter a name:")
name = input("Please enter a name:")
不管我输入什么,它总是打印“这个名字不在这个类中”。求救
我认为在这里使用dictionary会让您受益匪浅。请参见下面的示例
在第一行中,我们构建了一个字典,将学生的名字映射到他们得到的分数。这样就不需要遍历
mynames
列表来查看其中是否有名字,然后使用相应的索引来获取分数。实际上,这消除了您在print("That name is not in this class.")
执行mynames[x] != name
的每个迭代时所面临的问题然后我们可以通过查看名称是否在
name_score_map
中来检查名称是否有分数。这将搜索的时间复杂度从O(n)降低到O(1)。然后,我们可以简单地通过使用名称作为name_score_map
字典的键来获取分数if
语句每次通过循环都会被求值,因此您需要跟踪是否找到了名称,然后只在末尾打印例如:
相关问题 更多 >
编程相关推荐