2016-04-28 4 views
0

Ich habe diesen Code, um Noten in eine TXT-Datei ausgegeben, aber es gibt keine Fehler und es wird immer noch nicht die Ergebnisse ausgegeben. Kann mir jemand helfen, herauszufinden, warum ich in der Programmierung sehr neu bin? Danke :)Ausgabe von Noten aus einem Quiz in eine TXT-Datei

from random import shuffle 
print ("Welcome to the quiz! ") 
name = input('What is your name?: ') 


with open ("questions.txt") as f: 
    lines = f.readlines() 

shuffle (lines) 
numRight = 0 
wrong = [] 

numQuestions = int(input("How many questions? ")) 

for line in lines [:numQuestions]: 
    question, rightAnswer = line.strip().split("\t") 
    answer = input(question + ' ') 
    rightAnswer = rightAnswer.lower() 
    if answer.lower() == rightAnswer: 
     print ("Right!") 
     numRight +=1 
    else: 
     print ("No, the answer is", rightAnswer) 
     wrong.append(question) 


print ("You got %d right " % (numRight)) 
if (wrong): 
    print ("You got these wrong: ") 
    for q in wrong: 
     print (q) 

user_class = input('What class are you in?: ').lower() 
if user_class=="A": 
    my_file = open("classAScores.txt") 
    my_file.write(name + ' ' +str(numRight)) 
    my_file.close() 

elif user_class =="B": 
    my_file = open("classBScores.txt") 
    my_file.write(name + ' ' + str(numRight)) 
    my_file.close() 

elif user_class=="C": 
    my_file = open("classCScores.txt") 
    my_file.write(name + ' ' +str(numRight)) 
    my_file.close() 
+2

Warum machen Sie Ihre Eingabe Kleinbuchstaben, dann gegen Großbuchstaben zu vergleichen? – StephenTG

+0

@StephenTG haha ​​hat nie daran gedacht –

Antwort

0

Ändern Sie diesen Teil des Codes:

user_class = input('What class are you in?: ').lower() 
if user_class=="a": 
    with open("classAScores.txt",'a') as my_file: 
     my_file.write(name + ' ' + str(numRight) + '\n') 
+0

Danke soooo viel solcher ich machte so einen dummen Fehler !! –

0

Nicht sicher alles andere von den ersten Blick, aber ich kann ein logischer Fehler sicher sehen:

user_class = input('What class are you in?: ').lower() 
if user_class=="A": 

Sie gelten .lower() auf die Zeichenfolge, dann überprüfen Sie für ein großes " A ", die niemals auftreten wird.

+0

haha ​​yeah danke –