我正在尝试建立一个字典,允许用户输入名称和相应的分数(添加游戏名称也将是一个奖励),然后能够查询高分。
这是我尝试过的:
scores = {}
while True:
name = input("Please give me the name of the player [q to quit]:")
if name == 'q':
break
else:
grade = input("Give me their score: ")
scores[name] = grade
highScore = max(scores.values)
for k, v in scores.items():
if v == highScore:
print(v, k)
这是我得到的错误:
highScore = max(scores.values)
TypeError: 'builtin_function_or_method' object is not iterable
答案 0 :(得分:2)
max接受一个可迭代对象,但是您将其传递给一个函数。
print(type(scores.values)) # <class 'builtin_function_or_method'>
print(type(scores.values())) # <class 'dict_values'>
只传递函数的输出,而不传递函数本身。
highScore = max(scores.values())