2017-10-12 12 views
-1

現在、私はPythonでクイズを作成中です。すべての質問はcsvデータベースに保存されています。私はクイズで1つの質問に複数の回答を持つことが困難です。注意:私は、このコンピュータ上のコードを持っていないので、私はすぐ下の線に沿って何かを作っ:複数回答のクイズ

file=open("easydatabase.csv","r") 
answer = input("\n" + detail[0]) 
    for line in file: 
     details=line.split(",") 
     if details[1] == answer: 
      print("Correct! Added 1 to your score.") 

私はcsvファイル内の複数のセルに等しくなるように、正しい答えを持っている持っています主な問題、助けを進んでいただきありがとうございます! (私は 'details [1,2]'を書いたり、運がないなどさまざまなことを試みていましたが)運がありませんでした。

+1

[mcve]の作成については、「easydatabase.csv」のファイル形式の例を参照してください。 – trentcl

答えて

0

回答がある特定のセルがわかっている場合は、 "or"または "and" if文で、どのような回答を取るかによって異なります。

「詳細」リストに一致する回答がある場合は、探しているものが含まれている条件付きのif文で「詳細」リストをループすることができます。

+0

答えが==(詳細[1])または(詳細[2])なら ですが、回答を入力できるようになると、それは私に教えてくれました – Zyn

+0

上記のコメントを編集しましたが、 "and"ステートメントを使ってみてください。 –

+0

andを使用すると、両方の答えが入力される必要があることを意味します。申し訳ありませんが、質問があり、質問に複数の回答がある場合は申し訳ありません。 – Zyn

0

したがって、複数の項目で一致するかどうかを確認する場合は、inを使用できます。このようなもの:

answer = 'correct answer' 
multiple_choice = ['wrong answer', 'also wrong', 'correct answer'] 
if answer in multiple_choice: 
    print("Correct! Added 1 to your score.") 
+0

質問と回答が両方とも保存されているデータベース(私はcsvを使用しています)を使用する必要があります。私は配列を作るのが大好きですが、それは悲しいことです。 – Zyn

+0

これは、最初の部分を除くすべての項目をチェックするために 'details [1:]'で答えることができるようにしたいと思っていれば、あなたはそれを使いたいと思うでしょうか? – stefstef

+0

あなたのファイルの構造を誤解していない限り、 。行を分割すると、_details_はその行のすべての項目のリストになります。ユーザの答えとしてカラム1を持ち、他のカラムが正しい答えを持っていると仮定すると、単一の答えが複数であるかどうか 'in'チェックを使用することができます。そうでなければ、あなたのCSVの詳細を教えてください。 – stefstef

関連する問題