2016-04-28 45 views
0

我已经完成了这个代码输出一个.txt文件的分数,但没有错误,它仍然不会输出分数。任何人都可以帮助我找出为什么考虑我是非常新的编程。三江源:)输出得分从一个测验到一个.txt文件

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

为什么你让你的输入小写,然后对大写字母比较? – StephenTG

+0

@StephenTG哈哈从来没有想到这 –

回答

0

更改您的这部分代码:

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

谢谢soooo多这样我做了这样一个愚蠢的错误! –

0

不知道有关一切从第一眼,不过,我可以看到一个逻辑上的错误肯定的:

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

您申请.lower()字符串,然后检查大写“一个“,这将永远不会发生。

+0

哈哈耶谢谢 –