2017-11-21 17 views
1

外部テキストファイルから質問と回答を得て、ユーザーが選択を入力できるようにPythonにインポートするクイズを作成しようとしています。外部テキストファイルからのクイズPython

問題は、私のコードは一度だけクイズの最後"Correct"を印刷し、ユーザーは、質問が正しいか間違って得た場合、それぞれの質問が答えた後に言っていないということです。問題がどこにある

最初の列(detail[0])があり、正しい答えは4列目(detail[4]))である。ここ

おかげ

は、テキストファイルにあるものである:

What is 1+1,1,2,2 
What is 2+2,4,2,4 

以下にソースコードを示します。

def quiz(): 
    file = open("quiz.txt","r") 
    right = False 

    for line in file: 
     detail = line.split(",") 
     print(detail[0]) 
     select = input("Select 1 or 2: ") 
     if select == detail[3]: 
      right = True 
      break 

    if right == True: 
     print("Correct") 
    else: 
     print("Incorrect") 
+0

さて、あなた 'for'ループのうち' break'最初の正解が与えられたとき、あなたが起こることを期待したのでしょうか? – timgeb

+0

また、 'for'ループが終了した後にのみ、「正解」または「間違っている」と表示されるので、最後の質問に対してのみ表示されます。 – timgeb

+0

私はブレーク機能を持っているので、私はそれを使用しようとした同様のコードを持っていましたが、明らかにそれは問題なので、私はそれを削除しました。これを修正する必要がありますか? –

答えて

1

ちょうどそこに、その後、メインfor-loopprintに結果を変更します。

for line in file: 
    detail = line.split(",") 
    print(detail[0]) 
    select = input("Select 1 or 2: ") 
    if select == detail[3]: 
     print("correct!") 
    else: 
     print("incorrect :(") 
+0

助けてくれてありがとうが、それはコードの最後の質問のためにしか動作しません。 –

+0

私はこれがファイルのフォーマットと関係していると思います。すべての行で3番目のカンマの後に本当に質問がありますか?見て、私はあなたがそれを働くことができると確信している場合は、質問にファイルの内容を投稿してください –

+0

私は自分のコードに正しい答えは常にファイルの最後のものです正解は常に詳細です[3] –

関連する問題