2014-06-10 121 views
-1

我試圖讓這個程序工作:我有2個列表「a」和「b」,我必須鍵入一個單詞出現在這兩個列表中,在這種情況下是「貓「,但它不接受貓,並說它是錯的。請幫忙!IF語句不能在Python中工作

a=['bird', 'cat', 'dog'] 
b=['cat', 'mouse','hamster'] 
print(a,b) 
same=(set(a) & set(b)) 


guess=input("what word is the same in both lists ?") 
if guess=='same': 
    print ("well done") 
else: 
    print ("wrong") 
+0

你正在檢查輸入結果是否'相同'。你可能輸入了貓,導致字符串'貓'。 '貓'=='相同'是假的。 – munk

+0

什麼是「猜測」? – juanchopanza

+0

嗨猜是一個變量,當用戶輸入一個響應,如「貓」或「狗」,所以用戶將看到什麼字出現在這兩個列表中並輸入它。每次輸入發生的單詞時,都不接受。 – user3727182

回答

0

set(a) & set(b)返回一組與一個元素,但你是比較guess爲字符串。您不希望看到用戶是否在"same"中鍵入,您想查看他輸入的內容是否爲集合same內的字符串。一種可能性是做if set([guess]) == same。另外,如果您使用的是Python 2,則應該使用raw_input而不是input以字符串形式獲取輸入。

0

不檢查字符串「相同」上的相等性,但在變量名相同。此外,'相同'是一組,所以要檢查是否猜測是在該組使用if guess in same:

2

我想你想檢查字符串guess是否是集same的元素。如果這是你想要做的,你應該使用這樣的in運算符:

if guess in same: 
    print ("well done") 
else: 
    print ("wrong") 
+0

謝謝Brionius,它現在可以工作! – user3727182

+0

不客氣。如果這解決了您的問題,請考慮將其標記爲接受的答案。 – Brionius