0

我正在制作一个 pygame,我正在尝试添加一个高分功能,但我不太清楚如何

我将名称和分数保存到 .txt 文件中,如下例所示:

christian careaga: 500
c dubb: 400
swag master: 50

在 .txt 中,每个分数和名称都放在一个新行上

我想获取每个分数并将其分配给它自己的变量,如下所示

score1 = christian careaga: 500
score2 = c dubb: 400
score3 = swag master: 50

最好的方法是什么?

4

2 回答 2

2

不要为文件中的每个分数创建变量,而是使用字典:

with open("scores.txt") as f:
    scores = {'score{}'.format(i) : line.strip() for i,line in enumerate(f,1)}

现在访问这样的分数:

>>> scores['score1']
'christian careaga: 500'
>>> scores['score2']
'c dubb: 400'
>>> scores['score3']
'swag master: 50'

按排序顺序获取分数:

>>> for s in  sorted(scores.values(), key = lambda x: int(x.split()[-1]),
                                                                 reverse = True):
    print s
...     
christian careaga: 500
c dubb: 400
swag master: 50
于 2013-06-19T20:13:53.207 回答
1

为自己省点麻烦,并使用一种更易于编写和解析的格式。该json无需额外解析即可保存和加载数据:

import json

# write highscores
with open('highscores', 'w') as hscores:
    json.dump(my_hiscores_structure, hscores, indent=4)

# load highscores
with open('highscores', 'r') as hscores:
    my_hiscores_structure = json.load(hscores)

通过使用indent=4你写出一个可读性很强的结构。

于 2013-06-19T20:14:55.077 回答