Получение объекта '' builtin_function_or_method 'не повторяется "при использовании max () - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь настроить словарь, который позволит пользователю вводить имена и соответствующий счет (добавление названия игры также будет бонусом), а затем я смогу запросить рекорд.

Вот что я попробовал:

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

1 Ответ

0 голосов
/ 17 января 2019

max принимает итерацию, но вы передали ей функцию.

print(type(scores.values))   # <class 'builtin_function_or_method'>
print(type(scores.values())) # <class 'dict_values'>

Просто передайте вывод функции, а не саму функцию.

highScore = max(scores.values())
...