2014-01-16 100 views
0
if 'example' in resp: 

上面的命令是什麼意思,什麼是in resp:無法理解這個Python命令

我正在通過公開發布的源代碼,以更好地瞭解python在我開始創建程序之前,但是我只是不明白或能夠找到「in resp:」的意思。 。

確切的代碼是

if 'example' in resp: 
    print 'Success' 
+0

'resp'是一個變量,':'表示一個塊的開始(如果在這個例子中是塊),所以基本上它正在評估'resp'變量中是否存在字符串'example' – Sar009

回答

1

表達

'example' in resp 

則計算結果爲True如果變量resp包含值'example'False否則。顯然這隻有在resp是一個包含多個值的類型(如列表,集合,字符串或元組)時纔有效。這等效於調用:

resp.__contains__('example') 

這裏有幾個例子:

1 in [1, 2, 3, 4] #evaluates to true because the value 1 is found in the list [1, 2, 3, 4] 

'a' in "abc" #evaluates to true because the character 'a' is found within the string "abc" 

0 in {5, 6, 7} #evaluates to false because the value of 0 is not found within the set {5, 6, 7} 
0

in操作測試遏制。根據resp的類型,這可能是幾種不同的事情中的任何一種。

如果resp是一個字符串,這個測試'example'是否是resp的子字符串:

>>> 'example' in 'example4' 
True 
>>> 'example' in 'sample' 
False 

如果resp是一個列表,設置,元組或其他集合,這個測試'example'是否是集合中:

>>> 'example' in ['example', 'asdf'] 
True 
>>> 'example' in ['example4', 'asdf'] 
False 

如果resp是一個字典,這個測試是否'example'是在字典的關鍵:

>>> 'example' in {'example': 'asdf'} 
True 
>>> 'example' in {'asdf': 'example'} 
False 

如果resp是一些其他類型的,但這一切的resp類型說in一樣。你可以期望它是上述例子的精神,但它可以做一些瘋狂的事情,如跑Quake或下載色情片,如果方法resp說做。

1

根據Expressions - Comparisons

運營商innot in測試集合成員。如果x是集合s的成員,則s 中的x的計算結果爲真,否則返回假 。 x不在s中返回s在x中的否定。成員測試集合 傳統上已被綁定到序列;對象 是集合的成員,如果集合是一個序列並且包含等於該對象的元素。然而, 許多其他對象類型支持成員測試而不是 序列是有意義的。特別是,詞典(用於鍵)和支持 成員資格測試。

對於列表和元組類型,x中的y是真的當且僅當 存在索引i以使x == y [i]爲真。

對於Unicode和字符串類型,當且僅當x是y的 子字符串時,y中的x爲真。等效測試是y.find(x)!= -1。請注意,x和y 不必是相同的類型;因此,'ab'中的'ab'將返回 正確。空字符串總是被認爲是任何其他字符串的子字符串,因此「abc」中的「」將返回True。

+0

+1到文檔,這是永遠的好地方! –