2016-11-08 94 views
-2

我想創建一個隨機問題生成器來幫助我修改。我有問題,當我正確或錯誤地輸入我的答案時,我會連續兩次輸出錯誤。隨機輸入python生成器

這是我的代碼,在底部我有評論線。當我只有一個答案的可能性時,它們是可能的,可能不需要,但無論如何都保留。

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

你認爲以下行正在做的:'答案= A; 答案= B' –

+1

你的變量'了'和'B'的問題,這不等於任何數量,這樣既'if'語句告吹他們'else'。 – kindall

+0

所有'if'個案都將被評估。如果我輸入了'a == 2',那麼'如果a == 3:'是'False',所以'print('False')'會觸發。但是,它也會檢查'if b == 4:'呃......我猜這就是'==('什麼是2 + 2?')'在這種情況下,所以它也是'假',你再次獲得'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') 

如果你不明白它做什麼,只是添加的print()語句:)

0

聽起來像是你試圖宣佈答案lambda函數。

你可能有更好的運氣這樣做:

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

if (answer_a == 3): 
....