2015-12-08 62 views
-3

剛開始學習python我很容易理解它,但後來我來到了IN運算符,我正在使用的網站顯示的代碼設置方式我無法獲得工作,我已經搜索了互聯網和堆棧,但沒有拿出任何堅實的東西,他們寫的方式讓我相信你可以用這個聲明檢查一個以上變量的列表。Python的語法IN運算符

if name in ["John", "Rick"]: 
    print "Your name is either John or Rick." 

,但我還沒有找到一個equivelent別人在互聯網上的任何地方,在網站上的在線IDE不給我一個語法錯誤此,但它始終返回false不管我在列表: 名稱。

所以我的問題是:是上面的代碼有效的Python?如果是的話,會使它返回什麼狀態true

+0

好了,你的代碼爲我工作。 –

+0

你可以發佈你用來測試它的代碼嗎? – Alex

+0

在這個if語句之前插入'print repr(name)',再次運行程序,並向我們展示它打印的內容。 – zwol

回答

0

您定義name作爲一個列表,你的意見說,所以這裏的Python做什麼:

>>> name = ["John", "Rick" ,"tim", "george"] 
>>> name in ["John", "Rick"] 
False 
>>> name in ["John", "Rick", ["John", "Rick" ,"tim", "george"]] 
True 
>>> 

x in y只檢查,如果有一個在y稱爲x元素不是檢查如果有x中的元素,它也在y

這就是爲什麼下面的代碼工作,但上面的代碼不會:

>>> name = 'John' 
>>> if name in ["John", "Rick"]: 
...  print("Your name is either John or Rick.") 
...  
... 
Your name is either John or Rick. 
>>> 

在這種情況下,你需要:

>>> if any(i in ["John", "Rick"] for i in name): 
...  print("Your name is either John or Rick.") 
...  
... 
Your name is either John or Rick. 
>>>