Я пытаюсь написать программу, которая записывает последние три попытки (оценки) теста. Пользователь может повторно протестировать тест в любой момент, поэтому программа должна найти, существует ли пользователь и добавить последнюю оценку пользователей. Если пользователь не существует, он должен записывать имя пользователя вместе с попытками пользователей. Мне удалось заставить программу/функцию записать первый балл пользователя, но я стараюсь добавить дальнейшие попытки, если пользователь существует. Я также не знаю, как остановить список от роста - он должен записывать только последние три попытки - дальнейшие попытки должны переписать поверх существующих. Пожалуйста, извините мое невежество, если это неправильно - я учусь.Добавить в список данных написать в CSV
Мне нужен выход, чтобы выглядеть следующим образом: (после 3-х попыток список должен начать перезапись себя
Фред, 18,17,16
Павла, 15,12,16
В код не делает именно то, что я хочу, но единственная ошибка, которую я получаю, - это когда пользователь уже существует: scoresFile.write (строка + «\ n») ValueError: операция ввода-вывода в закрытом файле
#add score
def main():
#ask for name and score
name = input("Please enter the name you wish to add")
score = input("Please enter the high score")
message=""
#open the highscores line and read in all the lines to a list called ScoresList. Then close the file.
scoresFile = open("highscores.txt","r")
ScoresList = scoresFile.readlines()
scoresFile.close()
#for 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]:
#append the score to the end of the list
ScoresList[i] = (name + (str(score) + ","))
#write the scores back to the file. Overwrite with the new list
scoresFile = open("highscores.txt","w")
for line in ScoresList:
scoresFile.write(line + "\n")
scoresFile.close()
#no need to continue in the loop so break out.
#break
else:
# message as user does not exist
message = ""
#if message is still blank then it means that the name was not found. Open the
#file for appending and add the new name and score to the end.
if message=="":
message = "New score added."
scoresFile = open("highscores.txt","a")
scoresFile.write(name + str(score)+"\n")
scoresFile.close()
print(message)
main()
Пожалуйста [править] ваш вопрос, чтобы включить образец ввода, в вывода, который вы хотите получить, и любых ошибок или трассировок. – MattDMo