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

Что означает вышеуказанная команда, что такое in resp:?Невозможно понять эту команду Python

Я собираюсь публично опубликовать исходные коды, чтобы лучше понять на python, прежде чем приступать к созданию программ, однако я просто не понимаю или могу найти, что означает «in resp:» is /. .

точный код был

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

«соответственно» является переменной и «:» указывает на начало блока (если блок в этом примере), так что в основном он оценивает, если строка «пример» присутствует в «соответственно» с переменной – 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 или запустить скачать порно, если это то, что __contains__ метод resp говорит делать.

1

По Expressions - Comparisons:

Операторы in и not in тест на членство в коллекции. x in s оценивает значение true, если x является членом коллекции s, а false в противном случае. x не в s возвращает отрицание x в s. Сборник тестов традиционно связан с последовательностями; объект является членом коллекции, если коллекция является последовательностью, а содержит элемент, равный этому объекту.Тем не менее, имеет смысл для многих других типов объектов для поддержки тестов на членство без последовательности . В частности, словари (для ключей) и наборы поддерживают тестирование членства.

Для типов списка и кортежа x в y истинно тогда и только тогда, когда существует индекс i такой, что x == y [i] истинно.

Для типов Unicode и string, x в y является истинным тогда и только тогда, когда x является подстрокой y. Эквивалентным тестом является y.find (x)! = -1. Примечание: x и y не обязательно должны быть одного типа; следовательно, u'ab 'в' abc 'вернет True. Пустые строки всегда считаются подстрокой любой строки , поэтому "" в "abc" вернет True.

+0

+ 1 для ссылки к документации, которая всегда является хорошим местом для просмотра! –

Смежные вопросы