2016-11-08 17 views
-2

私は修正を助けるためのランダムな質問ジェネレータを作成しようとしています。私は私の答えを正しく入力するか、間違って入力するときに、falseの出力を連続して2回得るという問題があります。ランダム入力のpythonジェネレータ

ここは私のコードですが、下の行にはコメントがあります。彼らは私が1つの答えの可能性しか持たず、おそらく必要ではないが、とにかく保たれていた時代のものでした。

import random 
a = ('What is 1 + 2?') 
b = ('What is 2 + 2?') 

questions = [a, b] 
answer = (int(input(random.choice(questions)))) 

answer = a 
answer = b 

if a == 3: 
    print('Correct') 
else: 
    print ('False') 

if b == 4: 
    print('Correct') 
else: 
    print ('False') 

#if answer == 2: 
# print ('Well Done') 
#else: 
# print ('No Incorect') 
+1

では、次の行をやっていると思います: '答えを=。 答え= b' –

+1

あなたの変数 'a'と' b'は質問です。これは任意の数と等しくないので、両方の 'if'文が' else'に渡ります。 – kindall

+0

すべての 'if'ケースが評価されます。 'a == 2 'と入力した場合、' a == 3: 'が' False'の場合、 'print(' False ')'が発生します。しかし、それは 'if b == 4:'と照合します。これは '==( '2 + 2とは何ですか?')と思われますので、' False'で再度 'print( 'False')'を実行してください。 – roganjosh

答えて

0

コードを少し修正しました。

import random 
questions = ['What is 1 + 2?','What is 2 + 2?' ] 
a,b = questions 
x = random.choice(questions) 
if x == a: 
    l = int(input(a)) 
    if l == 3: 
     print('Correct') 
    else: 
     print('False') 
elif x == b: 
    l = int(input(b)) 
    if l == 4: 
     print('Correct') 
    else: 
     print('False') 

あなたはそれが、ちょうど

0

:)プリント()ステートメントを追加しないのか理解していない場合は、ラムダ関数としての答えを宣言しようとしているような音。

あなたはそれをやって、より良い運を持っているかもしれません:

... 
answer = lambda q: int(input(q)) 
answer_a = answer(a) 
answer_b = answer(b) 

if (answer_a == 3): 
.... 
関連する問題