【发布时间】:2021-09-23 03:55:18
【问题描述】:
所以我终于成功了,这样我就可以从我的文本文件中读取并将其添加到列表中。但现在我有一个小问题,每个值看起来像这样 6\n。我该如何解决这个问题我需要重组我的代码。 下面是代码。
错误:
Number guessing game with highscores.py", line 42, in <module>
highscoreS = [highscores.replace("\n", "") for highscores in highscoreS]
NameError: name 'highscoreS' is not defined
虽然我已经明确定义了
from random import randint
a = True
n = randint(1,10)
guesses = 0
#If scores ever need to be reset just run function
def overwritefile():
f = open("Numbergame.txt", "w")
f.close()
#overwritefile()
#Guessing Game Code
while a == True:
guess = int(input("What is your guess? \nEnter a number!"))
if guess > n:
print("Guess is too high! \nTry Again!")
guesses += 1
elif guess < n:
print("Guess is too low! \nTry Again!")
guesses += 1
else:
guesses += 1
a = False
print("You guessed the number! \nIt was " + str(n) + "\nIt took you: " + str(guesses) + " guesses")
#Adding Score to the file
f = open("Numbergame.txt", "a")
f.write(str(guesses) + '\n')
f.close()
highscores = []
#Compare values and figure out if it is a new highscore
#Maybe I will use the TRY thing got taught recently might help iron out some errors
#f = open("Numbergame.txt").readlines()
with open('Numbergame.txt', 'rt') as f:
for highscore in f:
highscores.append(highscore)
highscoreS = [highscores.replace('\n', '') for highscores in highscoreS]
【问题讨论】:
-
产生错误的代码与您共享的代码不同。无论如何,如果您的代码实际上有
highscoreS = [highscores.replace("\n", "") for highscores in highscoreS],这意味着highscoreS和highscores被视为单独的变量,因为Python 区分大小写。我假设您打算区分这两者,即使将它们命名为几乎相同的东西并不是一个好习惯。这意味着您对highscoreS的定义依赖于它已经存在并具有价值。因此,此时,highscoreS尚未定义。为什么你认为它是在那个时候定义的? -
失败的行不在您发布的代码中。这里似乎有一个小写/大写
S的事情。这是故意的吗? -
最好是
highscores.append(highscore.strip())。 -
@tdelaney 这是故意的,因为我正在尝试在我正在复制的一些代码上看到的东西,但它似乎对我不起作用。
-
我在修复代码中进行了编辑以显示错误所在