2017-10-13 72 views
0

在我的代碼的最後一行。我正在顯示問題,用戶回答和正確答案。但是,當我在最後的答案部分中添加時,它給了我一個超出範圍錯誤的索引。我似乎無法解決這個問題。誰能幫忙? 謝謝顯示來自列表的答案

import random 

counter=0 
score = 0 
incorrect = 0 

name=input("What is your name?") 
print("Hi",name,",welcome to your math quiz!") 

questions = ["10x2","4-2","6+12","6x4","12-5","6+54","1x0","3-6","4+0","65-9"] 
answers=["20","2","18","24",'7','60','0','-3','4','56'] 

idx_questions = list(enumerate(questions)) 
idx_answers = list(enumerate(answers)) 

random.shuffle(idx_questions) 

counter=0 
inputs = [] 
for idxq, question in idx_questions: 
    print() 
    print("Question",counter+1,":",question) 
    print() 
    ans = input("What is the answer? ") 
    counter=counter+1 

    inputs.append(ans) 
    for idxa, answer in idx_answers: 
     if idxq == idxa and ans == answer: 
      print("Correct") 
      score=score+1 

      print("Correct Answers=",score) 
      print("Incorrect Answers=",incorrect) 

     elif idxq == idxa and ans != answer: 
      print("Incorrect. The answer is", answer) 
      incorrect=incorrect+1 
      print("Correct Answers=",score) 
      print("Incorrect Answers=",incorrect) 

print("End of quiz") 
print(name,"your score is",score,"out of 10") 
print(score*10,"/100") 
print(score*10,"%") 
counter=0 
while counter<10: 
    for idxq, question in idx_questions: 
      print("Question",counter+1,":",question,": Your answer =", inputs[counter],"Correct Answer =",answer) 
      counter=counter+1 
+0

張貼不產生所描述的錯誤代碼。 –

回答

1

嘗試像這樣而不用擔心索引,你可以添加香精的文字,你打算:

from random import shuffle 

questions = ["10x2","4-2","6+12","6x4","12-5","6+54","1x0","3-6","4+0","65-9"] 
answers = ["20","2","18","24",'7','60','0','-3','4','56'] 
combo = dict(zip(questions, answers)) 

shuffle(questions) 
score = 0 
listing = [] 

for q in questions: 
    print(q) 
    ans = input() 
    if ans == combo[q]: 
    score += 1 
    listing.append((q, ans, combo[q])) 

print(score/10) 
for item in listing: 
    print('For question {} you answerd {} and correct answer is {}'.format(*item))