Что означает in в питоне
Перейти к содержимому

Что означает in в питоне

  • автор:

Арифметические операторы Python

Что такое оператор и операнды? Это можно объяснить простым примером: 10 + 5 = 15 . В этом выражении 10 и 5 — операнды. Знак + — оператор.

Пусть переменная a = 10 , а переменная b = 5

Оператор Описание Пример
+ Добавление — добавляет левый операнд к правому a + b = 15
Вычитание — вычитает правый операнд из левого a — b = 5
* Умножение — умножает левый операнд на правый a * b = 50
/ Деление — делит левый операнд на правый a / b = 2
% Деление по модулю — делит левый операнд на правый и возвращает остаток. С помощью него, например, можно проверять числа на четность и нечетность. Если левый операнд меньше правого, то результатом будет левый операнд a % b = 0
** Возведение в степень a ** b = 100000
// Целочисленное деление — деление в котором возвращается только целая часть результата. Часть после запятой отбрасывается. 9 // 2 = 4 9.0 // 2.0 = 4.0

Python с нуля. Освойте с Виртуальным ИИ-помощником!

Теоретические уроки и практические задачи
Пишите и проверяйте код прямо в браузере
Виртуальный ИИ-помощник поможет в любое время дня и ночи
Сообщество учеников для взаимопомощи и обмена опытом
200 000+ зарегистрированных участников. Присоединяйтесь!
Попробовать бесплатно
©2023 Letpy

Мы используем файлы cookie

Наш сайт использует файлы cookie для улучшения пользовательского опыта, сбора статистики и обеспечения доступа к обучающим материалам. Мы также передаем информацию об использовании вами нашего сайт партерам по социальным сетям, рекламе и аналитике. В свою очередь, наши партнеры могут объединять ее с другой предоставленной вами информацией, или с информацией, которую они собрали в результате использования вами их услуг.

Оператор in вхождения/членства элемента в Python

Оператор in и отрицание not in проверяет наличие элемента в последовательности. Выражение x in s принимает значение True , если x является членом s , и False в противном случае.

Выражение x not in s возвращает отрицание наличие элемента x в s .

Все встроенные последовательности и типы множеств set / frozenset поддерживают эту операцию, а также словарь, для которого проверяется, имеет ли словарь данный ключ.

Для типов контейнеров, таких как list , tuple , set , frozenset , dict или collections.deque , выражение x in y эквивалентно вызову any(x is e or x == e for e in y)

Для строковых и байтовых типов x in y имеет значение True тогда и только тогда, когда x является подстрокой y . Эквивалентный тест y.find(x) != -1 . Пустые строки всегда считаются подстрокой любой другой строки, поэтому » in ‘abc’ возвращает True .

Для определяемых пользователем классов, которые имеют метод __contains__() , выражение x in y возвращает True , если y.__contains__(x) возвращает истинное значение, и False в противном случае.

Для определяемых пользователем классов, которые НЕ определяют метод __contains__() , но определяют __iter__() , выражение x in y имеет значение True , если некоторое значение z создается при итерации по y и для которого выражение x is z or x == z истинно.

Наконец, используется протокол итерации старого стиля: если класс определяет метод __getitem__() , выражение x in y возвращает True тогда и только тогда, когда существует неотрицательный целочисленный индекс i , такой что x is y[i] or x == y[i] и ни один из младших целочисленных индексов не вызывает исключение IndexError .

Оператор not in имеет значение обратной истинности in .

Примеры использования in , тестирование наличия элемента:

Вхождение/наличие элемента в список, кортеж множество

>>> x = [1, 2, 3, 4, 5, 6, 7, 8] >>> 5 in x # True >>> 5 not in x # False >>> 0 in x # False >>> 0 not in x # True 

Вхождение/наличие подстроки в строке

>>> x = 'возвращает отрицание наличие элемента' >>> 'отрицание' in x # True >>> 'наличие' not in x # False >>> x = 'абракадабра' >>> 'б' in x # True >>> 'б' not in x # False >>> 'н' in x # False >>> 'у' not in x # True 

Вхождение/наличие ключа в словаре

>>> x = 'one':1, 'two':2, 'three':3, 'four':4> >>> 'one' in x # True >>> 'one' not in x # False >>> 'five' in x # False >>> 'five' not in x # True 

ОПЕРАТОРЫ ПРИНАДЛЕЖНОСТИ В PYTHON

В Python существует два оператора принадлежности: in и not in.

Эти операторы проверяют, является ли значение частью какой либо последовательности: строки, списка, кортежа, словаря.

Оператор «in»

Возвращает True, если значение присутствует в последовательности, иначе возвращает False.

Пример со строкой:

a = "b" in "abc" print(a) 
True

Пример со списком:

a = 7 in [3, 4, 5] print(a) 
False

Оператор «not in»

Возвращает True, если значения нет в последовательности. Если значение присутствует в последовательности, то возвращает False. Пример:

a = 5 not in (2, 3, 4) print(a) 

Операторы и выражения¶

Большинство предложений (логических строк) в программах содержат выражения. Простой пример выражения: 2 + 3 . Выражение можно разделить на операторы и операнды.

Операторы – это некий функционал, производящий какие-либо действия, который может быть представлен в виде символов, как например + , или специальных зарезервированных слов. Операторы могут производить некоторые действия над данными, и эти данные называются операндами. В нашем случае 2 и 3 – это операнды.

Операторы¶

Кратко рассмотрим операторы и их применение:

Обратите внимание, вычислить значения выражений, данных в примерах, можно также используя интерпретатор интерактивно. Например, для проверки выражения 2 + 3 воспользуйтесь интерактивной командной строкой интерпретатора Python:

>>> 2 + 3 5 >>> 3 * 5 15 

Операторы и их применение

Можно составлять произвольные цепочки сравнений: 3 < 5 < 7 даёт True .

Краткая запись мат. операций и присваивания¶

Зачастую результат проведения некой математической операции необходимо присвоить переменной, над которой эта операция производилась. Для этого существуют краткие формы записи выражений:

Вы можете записать:

a = 2; a = a * 3 
a = 2; a *= 3 

Обратите внимание, что выражения вида “ переменная = переменная операция выражение ” принимает вид “ переменная операция = выражение ”.

Порядок вычисления¶

Если имеется выражение вида 2 + 3 * 4 , что производится раньше: сложение или умножение? Школьный курс математики говорит нам, что умножение должно производиться в первую очередь. Это означает, что оператор умножения имеет более высокий приоритет, чем оператор сложения.

Следующая таблица показывает приоритет операторов в Python, начиная с самого низкого (самое слабое связывание) и до самого высокого (самое сильное связывание). Это означает, что в любом выражении Python сперва вычисляет операторы и выражения, расположенные внизу таблицы, а затем операторы выше по таблице.

Эта таблица взята из Справочника по языку Python (англ.) и приводится здесь для полноты описания. На практике лучше использовать скобки для группировки операторов и операндов, чтобы в явном виде указать порядок вычисления выражений. Заодно это облегчит чтение программы. Более подробно см. в разделе Изменение порядка вычисления ниже.

Приоритет операторов

Оператор Описание
lambda лямбда-выражение
or Логическое “ИЛИ”
and Логическое “И”
not x Логическое “НЕ”
in , not in Проверка принадлежности
is , is not Проверка тождественности
< , , >= , != , == Сравнения
| Побитовое “ИЛИ”
^ Побитовое “ИСКЛЮЧИТЕЛЬНО ИЛИ”
& Побитовое “И”
> Сдвиги
+ , — Сложение и вычитание
* , / , // , % Умножение, деление, целочисленное деление и остаток от деления
+x , -x Положительное, отрицательное
~x Побитовое НЕ
** Возведение в степень
x.attribute Ссылка на атрибут
x[индекс] Обращение по индексу
x[индекс1:индекс2] Вырезка
f(аргументы . ) Вызов функции
(выражения, . ) Связка или кортеж [2]
[выражения, . ] Список
Словарь

Операторы, о которых мы не упомянули, будут объяснены в дальнейших главах.

В этой таблице операторы с равным приоритетом расположены в одной строке. Например, + и — имеют равный приоритет.

Изменение порядка вычисления¶

Для облегчения чтения выражений можно использовать скобки. Например, 2 + (3 * 4) определённо легче понять, чем 2 + 3 * 4 , которое требует знания приоритета операторов. Как и всё остальное, скобки нужно использовать разумно (не перестарайтесь) и избегать излишних, как в (2 + (3 * 4)) .

Есть ещё одно преимущество в использовании скобок – они дают возможность изменить порядок вычисления выражений. Например, если сложение необходимо произвести прежде умножения, можно записать нечто вроде (2 + 3) * 4 .

Ассоциативность¶

Операторы обычно обрабатываются слева направо. Это означает, что операторы с равным приоритетом будут обработаны по порядку от левого до правого. Например, 2 + 3 + 4 обрабатывается как (2 + 3) + 4 .

Выражения¶

Пример (сохраните как expression.py ):

length = 5 breadth = 2 area = length * breadth print('Площадь равна', area) print('Периметр равен', 2 * (length + breadth)) 

Вывод:

$ python expression.py Площадь равна 10 Периметр равен 14

Как это работает:

Длина и ширина прямоугольника хранятся в переменных length и breadth соответственно. Мы используем их для вычисления периметра и площади прямоугольника при помощи выражений. Результат выражения length * breadth сохраняется в переменной area , после чего выводится на экран функцией print . Во втором случае мы напрямую подставляем значение выражения 2 * (length + breadth) в функцию print .

Также обратите внимание, как Python “красиво печатает” результат. Несмотря на то, что мы не указали пробела между ‘Площадь равна’ и переменной area , Python подставляет его за нас, чтобы получить красивый и понятный вывод. Программа же остаётся при этом легкочитаемой (поскольку нам не нужно заботиться о пробелах между строками, которые мы выводим). Это пример того, как Python облегчает жизнь программисту.

Резюме¶

Мы увидели, как пользоваться операторами, операндами и выражениями. Это основные строительные блоки любой программы. Далее мы увидим, как это применить на практике.

Примечания¶

[1] “True” — англ. “Верно (Правда)”; “False” — англ. “Ошибочно (Ложь)”. (прим. перев.)
[2] “tuple” — англ. “кортеж” (прим. перев.)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *