2017-11-09 16 views
0

私はクイズの回答順序をランダム化するクイズを作成しています。しかし、私はどちらが正しい答えであるかを確認する方法と、文字(例:A)、B)、C))を使用して書式を設定する方法について固執しています。私は質疑応答のためにテキストファイルを使用しています。例えばランク付けされたクイズ回答順

for line in file: 
    line = line.strip("\n") 
    line=line.split(",") 
    question=line[0] 
    ans=line[1:QuestionAmount] 
    random.shuffle(ans) 
    print(question) 
    print(*ans) 

A)ANSWER3 B) Cをcorrectans)ANSWER1

そして次回

A)は Bをcorrectans)ANSWER1 C)ANSWER3

正しい答えがどのような手紙であるかをどのように知るのですか?

+0

との各要素は常に正しい答えである印刷しますあなたのテキストファイル内の同じ位置(例えば、質問の後の最初の項目)? – caw5cv

+0

はい常にその最初の項目 – TylereCWS

答えて

0
import random 

line = "Question?,answer3,answer1,correctans,answer4" 

line = line.strip("\n") 
line=line.split(",") 

question=line[0] 
ans=line[1:] 

print(question) 

random.shuffle(ans) 
idx = 0 

for a in ans : 
    a = chr(ord('A')+idx) + ')' + a 
    ans[idx] = a 
    idx += 1 
print(*ans) 
+0

ありがとう!これはうまくいく。しかし、ユーザーがA B C OR Dと入力する場所を入力したいので、どのレターに正しい答えがあり、それを入力とどのように比較するのかをどのように知っていますか? – TylereCWS

0

質問と同じ行のファイルに回答を追加しないでください。ファイルを読むときにその答えを読むこともできますし、比較して回答があるかどうかを確認することもできます正しい

A) answer3 B) correctans C) answer1 Ans:B

+0

しかし答えは常にシャッフルされるので、ansは常にBではないでしょう。 – TylereCWS

+0

はファイルにあらかじめロードされている質問ではありませんか? –

0

単にアスタリスクなど、マーカーで正しい答えを始めます。 各質問の選択肢を印刷するときは、先頭のアスタリスクを選択肢の前面から外します。 isntanceについて、あなたは

answer1, *correctans, answer3 

を読み取るためにファイルを変更して、印刷する直前に、それは

["answer1", "*correctans", "answer1"] 

として表示されることがありますそして、あなたはstrip('*')

関連する問題