我有一个任务,它是用以下菜单项编写程序(从文件读取): 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()
答案 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