生徒の回答のリストを正しい回答のリストと比較して、正しく答えられた人の数を計算することが目的です。解答キーは文字列のリストとして保存され、生徒の解答はテキストファイルから読み込まれ、解答キーと一致するように大文字に変換されます。Python - 2つのリストを比較して不正な結果を得る
#Read student answer file
student_answers = infile.read()
#Convert student answer to all caps
student_answers = [answer.upper() for answer in student_answers]
私のプログラムはエラーなく実行されますが、2つのリストの比較結果が正しくありません。答えのうち3つだけが正しいと表示されており、20の正解があります。以下は私がこれまで持っていた関連コードです。また、出力Program Output Imageのスクリーンショットも掲載しました。質問1,3,5,7、および25のみが間違っているとフラグを付けられます。私は両方のリストをダブルチェックして、正しい情報を含んでいますので、入力エラーではありません。私がどこに間違っているかについての指導があれば感謝します。
for studentLine, keyLine in zip(Student, TestKey):
keyAnswer = keyLine.split()
studentAnswer = studentLine.split()
#Compare student answer to test key
if studentAnswer == keyAnswer:
correct += 1
percent_score += 4
print('Good job! Question ', index + 1, 'is correct!')
index +=1
if studentAnswer != keyAnswer:
incorrect += 1
incorrect_list.append(index + 1)
print('The correct answer to question ', index + 1, 'is ', TestKey[index])
index +=1
を比較した値を印刷してみてください。それは物事をクリアするでしょう。また、 'if studentAnswer!= keyAnswer:'を 'else:'に置き換えてください。 – CristiFati
ああ完璧な、私は空白を削除するのを忘れていた。とても有難い! –