2016-02-07 148 views
-3
import random 
print('hello') 
question1 = [' cbca', ' cbbca'] 



print("What's equal to" + random.choice(question1) + "?") 
r = input() 
if r in ('7,8', '7.8', '78') and question1 == ' cbca' : 

    print("That's correct!") 

elif r in ('1', '1,0') and str(question1) == ' cbbca' : 
    print("That's correct!") 

else : 
    print('r') 

無論輸入是什麼,總是使用else語句。爲什麼?如果/ elif/else語句不能與random.choice一起工作

我知道這不可能是很難,但我剛開始用這個:)

+0

*「break」*的任何提前?沒有[mcve],很難弄清楚你在問什麼。 – jonrsharpe

+0

對不起,它總是去其他地方 – otto

+0

請注意,你實際上並不是從任何地方存儲*隨機選擇;並且不可避免地會有'str(['cbca','cbbca'])!='cbca''。 – jonrsharpe

回答

0

您聲明question1作爲列表。在其上應用random.choice不會更改其值,因此它仍然是稍後的列表。將random.choice的結果放入一個變量中並比較此變量。

import random 
print('hello') 
question1 = [' cbca', ' cbbca'] 

question = random.choice(question1) # Remember the choice of random 

print("What's equal to" + question + "?") 
r = input() 
if r in ('7,8', '7.8', '78') and question == ' cbca' : 

    print("That's correct!") 

elif r in ('1', '1,0') and question == ' cbbca' : 
    print("That's correct!") 

else : 
    print('r') 
+0

感謝它現在的作品! – otto

0

你應該做的是:

如果(在(「7,8」,「7.8 [R ','78'))和(question1 =='cbca'):

+0

小心解釋爲什麼? – timgeb

+0

因爲在python開始計算('7,8','7.8','78')和問題1中的'r'('7,8','7.8','78')「 ('7,8','7.8','78')和question1 =='cbca'「之後。這是錯誤的 – Ryder95

+0

這不起作用,因爲'question1'是一個列表,而不是一個字符串。它不能解決OP的問題。 – Cilyan