Я сделал арифметическую викторину, которая задает вам десять вопросов и класс, в котором вы находитесь. Пользователь вставляет туда имя и вводит 1,2 или 3. Затем он спрашивает пользователя десять вопросов, но в конце он сохранит данные, которые являются именем и оценками пользователя в .txt-файле, называемом Class1Score, Class2Score или Class3Score.Как заказать .txt файлы
Вот мой код, который показывает арифметический тест:
import time
import math
import random
print("Title:Arithmetic Quiz")
print("*************************************************************")
print("This program will ask you to complete the arithmetic quiz.")
print("The program has 10 questions. You will recieve feedback after.")
print("____________________________________________________________"
while True:
UserName = input("What is your name?:")
if not UserName.isalpha():
print("Error!Please enter your name using letters. ")
continue
else:
break
ClassSelection= input("Please enter what Class you are in?:1, 2 or 3")
ClassChosen=0
while ClassChosen==0:
if ClassSelection=="1":
ClassChosen=1
elif ClassSelection=="2":
ClassChosen=1
elif ClassSelection=="3":
ClassChosen=1
else:
print("You must write 1, 2, or 3.")
ClassSelection=input("Enter the class you are in")
print(UserName," welcome to the Arithmetic Quiz.")
print("____________________________________________")
print("The quiz will begin in 3 seconds")
time.sleep(2)
for i in range(0,3):
print (3 - i)
time.sleep(1)
print("Begin!")
print("*****************************************")
#___________________________________________________________________________________________________________________________________
RecentStudent= [0,0,0]
def MathsQuiz():
score=0
for questionNum in range(10):
Num1= random.randint (1, 10)
Num2= random.randint (1, 10)
Symbol = ["+","-","*"]
Operation = random.choice(Symbol)
RealAnswer= int(eval(str(Num1)+Operation+str(Num2)))
print("Please give an answer for:", Num1, Operation, Num2)
UserAnswer = int(input("Enter your answer here:"))
if UserAnswer == RealAnswer:
score = score + 1
print("You are correct! :D")
print("_______________________________________________")
else:
print("You are incorrect! :(")
print("The answer was", RealAnswer)
print("________________________________________________")
print()
print("__________________________________________________")
print("Thank you for completing the quiz!")
print("Your Score is loading")
import time
time.sleep(2)
print(UserName,"In this test you achieved",score,"/10")
print()
del RecentStudent[0]
RecentStudent.append(score)
print("Your three most recent scores are:",RecentStudent)
print("********************************************************")
def Resit1():
Resit1=input("Do you want to resit the test? Yes or No?:")
if Resit1== "Yes" or Resit1=="yes":
MathsQuiz()
def Resit2():
Resit2=input("Do you want to resit the test? Yes or No?:")
if Resit2== "Yes" or Resit2=="yes":
MathsQuiz()
print("Quiz Finished")
#____________________________________________________________________________________________________________________________________________________________
MathsQuiz()
Resit1()
Resit2()
if ClassSelection=="1":
Class1 = []
Class1.append("Student: ")
Class1.append(UserName)
Class1.append("Latest 3 Scores: ")
Class1.append(RecentStudent)
file = open("Class1Scores.txt", 'a')
file.write(str(Class1))
file.write("\n")
file.close()
elif ClassSelection=="2":
Class2=[]
Class2.append("Student: ")
Class2.append(UserName)
Class2.append("Latest 3 Scores: ")
Class2.append(RecentStudent)
file = open("Class2Scores.txt", 'a')
file.write(str(Class2))
file.write("\n")
file.close()
elif ClassSelection==3:
Class3 = []
Class3.append("Student: ")
Class3.append(UserName)
Class3.append("Latest 3 Scores: ")
Class3.append(RecentStudent)
file = open("Class3Scores.txt", 'a')
file.write(str(Class3))
file.write("\n")
file.close()
То, что я хотел сделать после того, как результаты сохраняются в файле спросить у пользователя, какие данные они хотели бы видеть. Данные, которые пользователь видит, являются самыми высокими, результатом являются самый низкий результат, средний балл, имена в алфавитном порядке и наивысшие баллы от каждого класса. Я использовал фиктивные значения, которые сохраняли бы последние три оценки пользователя в файле в формате 1,2,10.
Вот пример того, что вывод в файл .txt, когда я сохранить результаты в ней:
['Student: ', 'clive', 'Latest 3 Scores: ', [0, 0, 0]]
Это формат экономит как я не знаю, как сортировать результаты в типы данных нового сортировщика программ.
Вы можете прочитать [PEP8 руководство питона стиль] (https://www.python.org/dev/peps/pep-0008/), любой, кто должен прочитать ваш код, поблагодарит вас за это. Как написано сейчас, ваш код почти не читается. –
Сортировка файла в 1980-х годах вы думали использовать sqlite? Если вы не хотите этого делать, самым простым было бы прочитать весь файл в памяти и передать его для сортировки с подходящей ключевой функцией. – e4c5
@ e4c5 не могли бы вы помочь мне сделать это? – juniour