Как добавить оценки из внешнего файла в словарь и оценить их от 1 до 10 - PullRequest
1 голос
/ 01 октября 2019

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

Попытка обновления словаря с dict.update(), но выдает TypeError: '<' not supported between instances of 'str' and 'int':

highScores = {}

with open("highscores.txt") as f:
    for line in f:
        (key, val) = line.split()
        highScores[int(key)] = val

for k, v in sorted(highScores.items()):
    print(k,v)
score = input("S: ")
user = input("N: ")
winner = {score:user}
highScores.update(winner)

for k, v in sorted(highScores.items()):
    print(k,v)

1 Ответ

0 голосов
/ 01 октября 2019

Я полагаю, из вашего кода highscores.txt выглядит примерно так:

100 user1
90 user2
95 user3
...

Поскольку input(__prompt: Any) -> str возвращает тип str, вы должны изменить свой winner dict, чтобы он содержал ak, v-pair сключ типа int (точно так же, как вы это делали в highScores[int(key)] = val):

winner = {int(score) : user}

Ошибка говорит вам, что str и int нельзя сравнивать с >оператор. Взгляните на реализацию оператора сравнения в builtins.pyi:

class int:
    def __gt__(self, x: int) -> bool: ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...