2011-07-14 16 views
0
correct_ans = ['B', 'D', 'A', 'A', 'C', 'A', 'B', 'A', 'C', 'D', 'B', 'C', \ 
       'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A'] 

はこちらtxtファイルこのロジックはすべてが間違った答えであることを返すように続け比較リスト - 宿題のPython

# import user answers into a list 
infile = open('testscores.txt', 'r') 
driver_ans = infile.readlines() 
infile.close() 

driver_ans = ['B', 'D', 'A', 'A', 'C', 'B', 'B', 'A', 'C', 'D', 'B', 'C', \ 
       'D', 'A', 'D', 'C', 'C', 'B', 'D', 'A'] 

    for index in range(0, 20): 
     if driver_ans[index] == correct_ans[index]: 
      total_correct += 1 
     else: 
      wrong_ans.append(index + 1) 

からリストをインポートするには、私の文です。これは視覚的に私の "correct_ans"リストと私の "driver_ans"リストを比較すると正しくありません。何が間違っているのですか?

+0

これは依存しています。残りのコードはどのように見えますか? 'driver_ans'または' correct_ans'の中に何が入っているのか分かりません。 –

+0

driver_ansとcorrect_ansの値として表示することができます – Hyperboreus

+0

@hyperboreus私はリストの内容を更新して入れました –

答えて

2

推測のみ。 testscores.txtがコンテンツを持っている場合

B 
D 
A 
A 
... 

はdriver_ansがreadlines()機能が末尾の改行などが行を返す

driver_ans = [x.strip ('\n') for x in infile.readlines()] 
+0

ありがとうございました!私は間違った場所を探していました...私は\ n文字を上書きしませんでした。私はこれを修正し、あなたは正しい!私は完璧に働いています!どうもありがとうございます! –

2

多分試みる

['B\n', 'D\n', 'A\n', 'A\n', ... 

になることを、心に留めておきます。したがって、試してみてください:

driver_ans = [x.strip() for x in infile.readlines()] 
+0

ありがとうございます!これは問題でした。いったん私の方向性が指摘されたら、それは私のエラーを見たif/elseロジックではありませんでした! –