Как работает or в python
Перейти к содержимому

Как работает or в python

  • автор:

Логические операторы¶

Conditionals are a nice way to make decisions by asking if something equals True or not. But often one condition is not enough. We may want to take the opposite of our result. Or for instance if we want to make a decision upon turtle.xcor() and turtle.ycor() we have to combine them. This can be done with logical operators.

Оператор отрицания¶

Если мы хотим сделать что-либо ложным, можно использовать not . Это логический оператор:

Упражнение¶

The turtle gives us a useful function to know if it is drawing or not: turtle.isdown() . This function returns True if the turtle is drawing. As we have seen earlier, the function turtle.penup() and turtle.pendown() toggle between drawing while moving, or just moving without a trace.

Можно ли написать функцию, которая заставляет черепашку двигаться вперёд, если перо поднято?

Решение¶

This and that or something else¶

Два простых и понятных оператора: and (“и” в переводе с английского) и or (“или” в переводе с английского), которые делают ровно то, что и обозначают:

Использовать только один логический оператор не обязательно, можно комбинировать их как угодно.

Упражнение¶

Earlier we put the turtle in a circular prison. This time let’s make it a box. If the turtle goes more than 100 in the X or Y axis then we turn the turtle back around to the center.

Как использовать операторы AND, OR и NOT в IF в Python

Вы можете объединить несколько условий в одно выражение в условных операторах в Python, таких как if, if-else и elif. Это позволяет избежать ненужного написания нескольких вложенных операторов if.

В следующих примерах мы увидим, как мы можем использовать логический оператор AND для формирования составного логического выражения.

Пример 1: с оператором If

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

Чтобы продемонстрировать преимущества команды and, мы сначала напишем вложенный оператор if, а затем простой оператор, где он реализует ту же функциональность, что и вложенный оператор.

Здесь наш вариант использования состоит в том, что мы должны напечатать сообщение, когда a равно 5, а b больше 0. Без использования команды and мы можем написать только if, чтобы запрограммировать функциональность. Когда мы использовали логический оператор и обычный мы могли сократить количество if до одного.

Пример 2: с оператором If-Else

В следующем примере мы будем использовать оператор and для объединения двух основных условных выражений в логическое выражение оператора If-Else.

Пример 3: с оператором elif

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

Мы узнали, как использовать логический оператор and с условными операторами: if, if-else и elif с хорошо подробными примерами.

Оператор OR

Вы можете объединить несколько условий в одно выражение в операторах if, If-Else или Elif.

В следующих примерах мы увидим, как мы можем использовать OR для формирования составного логического выражения.

Логический оператор OR возвращает True, если один из двух предоставленных ему операндов имеет значение true.

Пример 1: с оператором If

В следующем примере мы узнаем, как использовать OR для соединения двух логических условий для формирования логического выражения.

Пример 2: с оператором If-Else

В следующем примере мы будем использовать оператор OR для объединения двух основных условных выражений в логическое выражение.

Пример 3: с оператором elif

В следующем примере мы будем использовать OR для объединения двух основных условных выражений в логическое выражение операторов elif.

Мы узнали, как использовать оператор OR логический оператор с условным оператором Python: if, if-else и elif с хорошо подробными примерами.

Оператор NOT

Мы можем использовать логический оператор not с условием IF. Операторы внутри блока if выполняются только в том случае, если значение (логическое) равно False или если значение (коллекция) не пусто.

Синтаксис

Где, значение может иметь тип boolean, string, list, dict, set и т.д.

Если значение имеет логический тип, NOT действует как оператор отрицания. Если значение равно False, значение not будет True, и операторы в блоке if будут выполняться. Если value равно True, not value будет False, и операторы в блоке if не будут выполняться.

Если значение имеет строковый тип, то операторы в блоке if будут выполняться, если строка пуста.

Если значение имеет тип list, тогда операторы в блоке if будут выполняться, если список пуст. Такое же объяснение справедливо для значений других типов данных коллекции: dict, set и tuple.

Таким образом, мы можем использовать if not expression для условного выполнения блока операторов, только если значение не пустое или не False.

Пример 4

В этом примере мы будем использовать нелогический оператор NOT в логическом выражении IF.

Пример 5: для печати строки

В этом примере мы будем использовать if not expression для печати строки, только если строка не пуста.

Пример 6: для печати списка

В этом примере мы будем использовать if not expression для печати списка только в том случае, если список не пуст.

Пример 7: для печати словаря

В этом примере мы будем использовать if not expression для печати словаря, только если словарь не пуст.

Пример 8: для печати набора

В этом примере мы будем использовать if not expression для печати набора, только если набор не пуст.

Пример 9: для печати кортежа

В этом примере мы будем использовать if not expression для печати кортежа, только если кортеж не пуст.

Мы научились использовать оператор not вместе с условным оператором if с помощью примеров программ.

Операторы в Python

Операторы — это специальные символы, которые выполняют операции над переменными и значениями. Например:

Здесь + является оператором, который складывает два числа: 7 и 8 .

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

Арифметические операторы используются для выполнения математических операций, таких как сложение, вычитание, умножение и пр. Например:

Здесь — является арифметическим оператором, который используется в операции вычитания.

Оператор Операция Пример
+ Сложение 6 + 3 = 9
Вычитание 6 3 = 3
* Умножение 4 * 5 = 20
/ Деление 8 / 4 = 2
// Целочисленное деление 10 // 3 = 3
% Остаток от деления 5 % 2 = 1
** Возведение в степень 4 ** 2 = 16

Рассмотрим пример использования арифметических операторов в Python:

Sum: 9
Subtraction: 5
Multiplication: 14
Division: 3.5
Floor Division: 3
Modulo: 1
Power: 49

Операторы присваивания в Python

Операторы присваивания используются для присваивания значений переменным. Например:

Здесь = является оператором присваивания, который присваивает значение 7 переменной х .

Cписок операторов присваивания в Python:

Оператор Операция Пример
= Присваивание a = 4
+= Сложение с присваиванием a += 2 → a = a + 2
−= Вычитание с присваиванием a −= 4 → a = a − 4
*= Умножение с присваиванием a *= 5 → a = a * 5
/= Деление с присваиванием a /= 6 → a = a / 6
%= Остаток от деления с присваиванием a %= 7 → a = a % 7
**= Возведение в степень с присваиванием a **= 8 → a = a ** 8

Рассмотрим пример использования операторов присваивания в Python:

Здесь мы использовали оператор += для присваивания суммы a и b переменной a .

Точно так же мы можем использовать любые другие операторы присваивания.

Операторы сравнения в Python

Операторы сравнения сравнивают два значения/переменные и возвращают логический результат: True или False . Например:

Здесь оператор сравнения > используется для сравнения a и b , больше ли a или нет.

Оператор Операция Пример
== Равно 2 == 4 → False
!= Не Равно 2 != 5 → True
> Больше чем 2 > 4 → False
< Меньше чем 2 < 4 → True
>= Больше или Равно 2 >= 4 → False
<= Меньше или Равно 2 <= 4 → True

Рассмотрим пример использования операторов сравнения в Python:

a == b = False
a != b = True
a > b = True
a < b = False
a >= b = True
a <= b = False

Логические операторы в Python

Логические операторы используются для проверки того, является ли выражение истинным ( True ) или ложным ( False ). Также они используются в условиях и циклах. Например:

Здесь and является логическим оператором И. Поскольку оба выражения a > 2 и b >= 6 являются True , то результат True .

Оператор Пример Операция
and a and b Логическое И:
True, только если оба операнда являются True
or a or b Логическое ИЛИ:
True, если хотя бы один из операндов является True
not not a Логическое НЕ:
True, если операнд имеет значение False, и наоборот.

Рассмотрим пример использования логических операторов в Python:

Побитовые операторы в Python

Побитовые операторы работают с операндами, как если бы они были наборами двоичных цифр. Они работают с битами, отсюда и название.

Например, десятичное 2 — это бинарное 10 , а десятичное 7 — это бинарное 111 .

В таблице ниже: пусть x = 10 ( 0000 1010 в двоичном формате) и y = 4 ( 0000 0100 в двоичном формате).

Специальные операторы в Python

Python предлагает такие специальные операторы, как операторы тождественности и операторы принадлежности. Они описаны ниже с примерами.

Операторы тождественности в Python

В Python операторы is и is not используются для проверки того, находятся ли два объекта в одной и той же части памяти. Две одинаковые по значениям переменные не всегда являются идентичными.

Оператор Операция Пример
is True, если операнды идентичны (относятся к одному и тому же объекту). x is True
is not True, если операнды не идентичны (не относятся к одному и тому же объекту). x is not True

Рассмотрим пример использования операторов тождественности в Python:

Здесь мы видим, что x1 и y1 — это целочисленные переменные с одинаковыми значениями, поэтому они равны и идентичны. То же самое и с x2 и y2 (строками).

Но x3 и y3 — это списки. Они равны, но не идентичны. Это потому, что интерпретатор размещает их в памяти отдельно, несмотря на то, что они имеют одинаковые значения.

Операторы принадлежности в Python

В Python операторы in и not in являются операторами принадлежности. Они используются для проверки того, находится ли значение или переменная в последовательности (строка, список, кортеж, набор или словарь).

В словаре мы можем проверить только наличие ключа, но не значение.

Python для новичков: логические операторы, выражения присваивания и управление контекстом

Jenny V

Для большинства начинающих программистов Python стал отличной стартовой площадкой в мир разработок. Большинство же тех, кто уже владеет каким-либо другим языком программирования, подумывают о переходе на него, учитывая его обширные возможности в машинном обучении, обработке данных и других областях.

По своей сути Pyhton прост и понятен. Однако есть в нем функциональности, которые могут озадачить новичков. В статье мы рассмотрим несколько таких примеров.

1. Логические операторы: and, or

При создании инструкции if…else… мы передаем проверяемое условие. Если условие оценивается как True , выполняется блок if . В случае же его вычисления как False , запускается блок else .

Если условие содержит несколько компонентов, то для их соединения необходимы логические операторы and и or . Понятно, что истинность условия and достигается при истинности всех отдельных компонентов, тогда как условие or считается истинным в случаем истинности хотя бы одного из них.

Такие составные условия вычисляются напрямую, вследствие чего их можно использовать как тернарные выражения. Рассмотрим примеры:

Как видим, в обоих примерах выводится первый не ложный объект. А что вы скажете относительно следующего выражения?

При выполнении этих строк кода вы обнаружите, что what окажется empty_list . Обсудим это позже, а пока обратимся к примерам с логическим оператором and и посмотрим, насколько они вам понятны:

В Python такие составные условные инструкции следуют правилу сокращенных вычислений. В случае с операцией and поиск будет направлен на первое ложное значение. При обнаружении такового вычисление прекращается, а само ложное значение возвращается, как например переменная text1 в вышеуказанном фрагменте кода. Если же такое значение не обнаружено, то возвращается последний элемент, как в примерах с переменными number1 и text2 .

В случае с операцией or поиску подлежит первое истинное значение. При его обнаружении вычисление прекращается, а само истинное значение возвращается, как в примерах с переменными number и text . Если же такое значение не найдено, то возвращается последний элемент, как в ситуации с переменной what .

2. Выражение присваивания

В Python, как и во многих других языках программирования, выражения и инструкции являются разными концепциями. Как правило, выражения представляют значение, которое вычисляется в объект Python. Их можно использовать во встроенном методе eval для получения вычисленных значений. В отличие от них инструкции отвечают за выполнение действия и не вычисляются в объект Python. В общем, они не подлежат вычислению.

Особым видом инструкции является присваивание. Точнее говоря, когда мы присваиваем значение переменной, то имеем дело с инструкцией присваивания, которая является действием. Мы создаем новую переменную, и она не вычисляется в значение. Обратимся к простому примеру, подтверждающему невозможность вычисления инструкции:

В Pyhton 3.8 были добавлены выражения присваивания, которые позволяют наделить особый вид инструкции присваивания характеристиками выражений. По сути, мы можем присвоить объект переменной (компонент присваивания), и в то же время она будет вычислена в значение (компонент выражения). Данная функциональность предполагает применение нового, так называемого “моржового оператора” — := . Приведем пример:

Обратите внимание, что этот пример не имеет практической значимости, а пара круглых скобок обусловлена требованиями синтаксиса, поскольку на верхнем уровне используется выражение присваивания. Рассмотрим пример большей практической направленности, не требующий круглых скобок.

Допустим, у нас есть список чисел, и нам необходимо вычислить нарастающую сумму, которая сохраняется в объекте списка. Воспользуемся функцией accumulate в модуле itertools , как показано в примере:

Есть еще одно решение с применением выражения присваивания, которое представлено ниже:

Как известно, в генераторах списков выражениям отводится место перед ключевым словом for . Это же правило распространяется и на выражение присваивания, а вот инструкции присваивания там располагаться не могут. Важно отметить, что это выражение позволяет обновить переменную total , которая применяется для получения нарастающей суммы.

3. Управление контекстом: with

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

Возможно, вы делаете то же самое каждый раз при выполнении операций с файлами, но задумывались ли вы: для чего? Ведь это создает дополнительный уровень отступов, который может несколько отвлекать.

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

Как видим, для работы с файлом требуется его открыть и закрыть. Закрытие файла необходимо, чтобы сохранить все обновления на случай его использования в другом месте.

Назначение инструкции with состоит в выполнении этой стандартной процедуры за нас. Точнее говоря, файл автоматически закрывается после выхода из инструкции with . Обратимся к примеру:

Выход из инструкции with приводит к автоматическому закрытию открытого файла, что очень удобно.

Заключение

В статье были рассмотрены 3 функциональности Python, которые могут показаться сложными для новичков. Надеюсь, теперь они стали более понятными. Подведем краткие итоги.

1.При наличии составных условных инструкций Python выполняет сокращенные вычисления. В случае с операцией and возвращается первое ложное значение или последний элемент. В случае с операцией or возвращается первое истинное значение или последний элемент.

2. Выражения и инструкции отличаются друг от друга. Инструкция присваивания не производит значение, тогда как выражение присваивания присваивает переменную и одновременно с этим вычисляет значение.

3. Инструкция with применяется при необходимости управления определенным контекстом и чаще всего востребована при работе с файлами. Контекстный менеджер автоматически закрывает файл в момент выхода из контекста.

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

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