2017-03-20 9 views
0
score = 0 
print("Question 1. What is 1+1?") 
print("a) 2") 
print("b) 4") 
print("c) 11") 
print("d) 3") 
x = 0 
line = input('Answer: ') 
while line != "a": 
    x = x+1 
    print('Incorrect, you have used',x,"of your 3 chances") 
    if x == 0: 
     break 
print("Question 2. What is 10x22?") 

答えは正しいかどうかを3回試してみることを意味します。 1回目か2回目の試行で問題が正しければ壊すことも意味します。なぜこれが動作しないのですか(Python)

+0

ループ**で入力**を求めないので、誤った答えが入力された場合、 'line'は古い答えを保持します。さらに、 'x'をインクリメントして' x'を0にすることは決してないので、 'break'は決して起こりません。 –

答えて

1

whileループ内で答えを得る必要があります。これにより、ユーザーが正しい答えを出したかどうかをwhileループがチェックします。

xの使用方法にも問題があります。 xは決して0にならないので、ブレークラインには決して触れません。両方の問題の解決方法については、以下のコードを参照してください。

score = 0 
print("Question 1. What is 1+1?") 
print("a) 2") 
print("b) 4") 
print("c) 11") 
print("d) 3") 
x = 0 
line = input('Answer: ') 
while line != "a": 
    x = x+1 
    print('Incorrect, you have used',x,"of your 3 chances") 
    if x == 3: # if the user uses their three chances, move to the next question. 
     break 
    line = input('Answer: ') # try to get another answer 
else: 
    print("You've selected the correct answer") 
x = 0 # resets number of chances for the next question 
print("Question 2. What is 10x22?") 

これがあなたの質問に答えることを願っています。ハッピーコーディング!

+0

が動作しない回答が間違っていれば無限ループが作成され、正しい場合は – john

+0

@johnと表示されません - 私は投稿の問題のみを解決しました。ユーザーが正しく回答したことを示すコードを追加する必要があります。答えが常に間違っていれば無限ループを解消するために答えを更新しました。 –

+0

正解または間違って答えられたときは、3つのチャンスをすべて使用してから次の質問に移動します。ユーザーに3つのチャンスを持たせたい – john

関連する問題