Python - 从文件中排序高分

时间:2015-02-11 21:14:25

标签: python

我有一个任务,它是用以下菜单项编写程序(从文件读取): 1 - 显示高分 2 - 添加新的高分 3-Clear所有高分 4-退出

我已经完成了剩下的工作,这只是1-Display High得分。我收到语法错误。错误是一个InternalError:列表超出范围。以下是代码的一部分:

def askUser():
Question=input('What would you like to do?\n1-Display High Scores\n2-Add A New High Score\n3-Clear All High Scores\n4-Quit\nPlease choose a number:')
if Question=='1':
    myFile=open('Scores.txt','r')
    column=[]
    for line in myFile:
        column.append(int(line.split("\t")[3]))
    column.sort()
    print(column)
    myFile.close()
    askUser()

从这里开始可能仍然没有意义......不过这是我的完整代码:

def askUser():
Question=input('What would you like to do?\n1-Display High Scores\n2-Add A New High Score\n3-Clear All High Scores\n4-Quit\nPlease choose a number:')
if Question=='1':
    myFile=open('Scores.txt','r')
    column=[]
    for line in myFile:
        column.append(int(line.split("\t")[3]))
    column.sort()
    print(column)
    myFile.close()
    askUser()
if Question=='2':
    Name=input('What is your name:')
    Date=input('What is the date:')
    Score=input('What was your high score:')
    myFile=open('Scores.txt','a')
    myFile.write(("\n"+"{},{},{}").format(Name, Date, Score))
    myFile.close()
    askUser()
if Question=='3':
    myFile=open('Scores.txt','r+')
    myFile.truncate()
    myFile.close()
    print('File Cleared')
    askUser()
if Question=='4':
   print('Quiting...')

很抱歉,如果我不清楚的话。我需要从 Scores.txt 文件中显示高分(选项1)。我已经在那里写了几个样本分数,如果你也需要它们,试试这个代码:

Name=input('What is your name:')
Date=input('What is the date:')
Score=input('What was your high score:')
myFile=open('Scores.txt','a')
myFile.write(("\n"+"{},{},{}").format(Name, Date, Score))
myFile.close()

2 个答案:

答案 0 :(得分:1)

你刚才提到你的代码有'语法错误',但实际上并没有说出你得到了哪些错误,但根据代码片段我会说你没有得到正确的缩进:应该有def之后的缩进块。

答案 1 :(得分:1)

Ran Code:

    column.append(int(line.split("\t")[3]))
IndexError: list index out of range

我相信你没有按照正确的标准进行分裂。你使用逗号作为......分隔符生成得分文件..但是我相信它要求它基于\ t进行拆分哪个是标签。将其更改为逗号。此外,python索引从0开始。因此将3(指向第4项)设置为2(指第3项)。

此外,在score.txt的开头有一个空行(假设您清除分数并添加它们会产生问题)。

做这样的事情:

    for line in myFile:
        if line == "\n":
            this = "doesnothing"
        else:
            column.append(int(line.split(",")[2]))

同时搜索返回的错误有助于: Python: IndexError: list index out of range