2017-10-12 72 views
-1

我目前正在Python中進行測驗,所有問題都存儲在csv數據庫中。我很難在測驗中對一個問題有多個答案。注:我沒有在此計算機上的代碼,所以我趕緊沿下方的線製成的東西了:有多個答案的測驗

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文件等於多個小區的主要問題,感謝先進的幫助! (我正在嘗試不同的東西,比如寫'細節[1,2]'但我沒有運氣)

+1

請閱讀關於創建[mcve]的內容,並提供'easydatabase.csv'的文件格式示例。 – trentcl

回答

0

如果你知道答案在哪個特定單元格中,你可以使用「或」或「和」條件在你的如果陳述,這取決於你會採取什麼樣的答案。

如果您正在尋找任意匹配「詳細信息」列表中的答案,您可以使用包含要查找內容的條件if語句遍歷「details」列表。

+0

我試圖使用或聲明(這是我寫的): 如果答案==(細節[1])或(細節[2]),但它會允許我輸入任何答案,它告訴我它是正確的 – Zyn

+0

我編輯了上面的評論,嘗試使用「和」語句。 –

+0

使用一個和聲明將意味着兩個答案都需要輸入,對不起,如果我措辭不好,但有一個問題,並有多個答案 – 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

這應該仍然適用於你想要如何使用它,如果你想要,你可以做'如果答案詳細[1:]'檢查除了第一個 – stefstef

+0

除外每個項目除非我誤解了你的文件的結構。當您將行拆分時,_details_是該行中所有項目的列表。假設你有第1列作爲用戶的答案,而其他列有正確的答案,你仍然可以使用'in'檢查單個答案是否爲多個。如果不是,那麼請提供您的csv的更多細節。 – stefstef