我正在为学校做我的 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)
根据您的代码,我认为 highscores.txt
看起来像
100 user1
90 user2
95 user3
...
由于 input(__prompt: Any) -> str
返回类型 str
,因此您必须更改 winner
字典以包含 k,v - 与 int
类型的键配对(就像您在 highScores[int(key)] = val
中所做的那样):
winner = {int(score) : user}
该错误告诉您 str
和 int
无法与 >
运算符进行比较。看一下builtins.pyi
中比较运算符的实现:
class int:
def __gt__(self, x: int) -> bool: ...
我是一名优秀的程序员,十分优秀!