import os
def createFile():
if os.path.exists("highscores.txt") == False:
myFile = open("highscores.txt","w")
myFile.close()
def inputInt():
number = input(str("please input your score "))
try:
return int(number)
except:
print ("this is not an acceptable input, please try again")
inputInt()
def addScore():
name = input("Please enter the name you wish to add")
score = inputInt()
messages = "thank you"
'''open the highscores line and read in all the lines to a list called scorelist.
then close the file'''
scoresFile = open("highscores.txt","r")
scoresList = scoresFile.readlines()
scoresFile.close()
#check each line in the scoresList list
for i in range(0,len(scoresList) ):
#check to see if the name is in the line
if name in scoresList[i]:
#if it is then strip the name from the text. this should leave theb score
tempscore = scoresList[i].replace(name,"")
#if the score is higher then add it to the list
if int(tempscore)<score:
message = "Score updated"
scoresList[i] = (name + str(score))
#write the scores back to the file
scoresFile = open("highscores.txt","w")
for line in scoresList:
scoresFile.write(line + "\n")
scoresFile.close()
#no need to continue so break
break
else:
#message as score too low
message= "score too low. not updated"
if message("Score updated"):
message = "New score added"
scoresFile = open("highscores.txt","a")
scoresFile.write(name + str(score) + "\n")
scoresFile.close()
print (message)
addScore()
以上是代码。显示的错误是:
Traceback (most recent call last):
File "E:\Computer Science\python code\highScores\highscores1.py", line 66, in <module>
addScore()
File "E:\Computer Science\python code\highScores\highscores1.py", line 60, in addScore
File "E:\Computer Science\python code\highScores\highscores1.py", line 60, in addScore
if message("Score updated"):
UnboundLocalError: local variable 'message' referenced before assignment
答案 0 :(得分:0)
(1)您指的是在message
中找不到name
时未定义的scoresList[i]
。放一个
message = ""
在for
循环之前行。我不知道你的实际意图,所以这会使错误消失,但检查逻辑是否仍然正确。
(2)您正在进行错误的比较。你应该写
if message == "Score updated":
而不是
if message("Score updated"):