2016-05-07 7 views
-2

Ich habe ein arithmetisches Quiz gemacht, das Ihnen zehn Fragen und die Klasse, in der Sie sich befinden, stellt. Der Benutzer wird seinen Namen eingeben und entweder 1,2 oder 3 eingeben. Dann wird er den Benutzer fragen die zehn Fragen, aber am Ende werden die Daten gespeichert, die den Namen und die Noten des Benutzers in eine TXT-Datei namens Class1Score, Class2Score oder Class3Score. in der Datei gespeichert werden, ist der Benutzer gefragt, welche Daten sie gerne sehen würdeSo bestellen Sie die TXT-Dateien

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() 

Was ich nach den Noten machen wollte:

Hier ist mein Code, der die Arithmetik-Quiz zeigt. Die Daten, die der Benutzer sehen kann, sind die höchsten, ergeben das niedrigste Ergebnis, die durchschnittliche Punktzahl, die Namen in alphabetischer Reihenfolge und die höchsten Punktzahlen aus jeder Klasse. Ich verwendete Dummy-Werte, die die letzten drei Noten des Benutzers in der Datei im Format 1,2,10 speichern würden. Hier

ist ein Beispiel dafür, was die Ausgabe an die TXT-Datei ist, wenn ich die Noten zu speichern:

['Student: ', 'clive', 'Latest 3 Scores: ', [0, 0, 0]] 

Dies ist das Format speichert es, wie ich weiß nicht, wie die Ergebnisse in die sortieren Datentypen des neuen Programmsortierers.

+1

Sie können den [PEP8 Python Style Guide] (https://www.python.org/dev/peps/pep-0008/) zu lesen, Jeder, der Ihren Code lesen muss, wird es Ihnen danken. Wie jetzt geschrieben, ist Ihr Code fast nicht mehr lesbar. –

+0

Sortieren einer Datei ist so 80er Jahre haben Sie daran gedacht, eine SQLite verwenden? Wenn Sie das nicht möchten, ist es am einfachsten, die gesamte Datei in den Speicher zu schreiben und sie mit einer geeigneten Schlüsselfunktion zu sortieren. – e4c5

+0

@ e4c5 Könnten Sie mir bitte dabei helfen? – juniour

Antwort

0

Wenn Sie die Daten in einer Datei beibehalten möchten, müssen Sie ein Dateiformat auswählen, das die Daten serialisieren kann. Die beiden gebräuchlichsten für Python sind json und pickle

import json 

data = ['name', 'John Doe', 'scores', [1,2,3]] 

# Serializes data and write it to file 
with open('/path/to/file.txt', 'w') as f: 

    json.dump(data, f) 

# Read the data back in 
with open('/path/to/file.txt', 'r') as f: 
    read_data = json.load(f) 

print(read_data) 
# ['name', 'John Doe', 'scores', [1,2,3]] 
+0

Hey wo würde dieser Code hingehen und was wäre das? – juniour

Verwandte Themen