Урок 6. Основные операторы в Python

Давайте разберёмся, что такое операторы в Python. Операторы — это конструкции, которые могут управлять значением операндов.

Рассмотрим выражение 4 + 5 = 9. Здесь 4 и 5 называются операндами, а + называется оператором.

Типы операторов

Язык Python поддерживает следующие типы операторов:

  • Арифметические операторы.
  • Операторы сравнения (отношения).
  • Операторы присваивания.
  • Логические операторы.
  • Побитовые операторы.
  • Операторы членства.
  • Операторы идентификации.

Давайте посмотрим все операторы Python один за другим.

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

Рассмотрим арифметические операторы в Python. Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

Оператор Описание Пример
+ Добавление Добавляет значения по обе стороны от оператора. а + b = 30
- Вычитание Вычитает правый операнд из левого операнда. a - b = -10
* Умножение Умножает значения по обе стороны от оператора. a * b = 200
/ Деление Делит левый операнд на правый операнд. b / a = 2
% Модуль Делит левый операнд на правый операнд и возвращает остаток. b % a = 0
** Степень Выполняет экспоненциальный (степенной) расчет операторов. a ** b = 10 в степени 20
// Деление с остатком - деление операндов, результатом которого является частное, в котором удаляются цифры после десятичной точки. Но если один из операндов отрицателен, результат не учитывается, то есть округляется от нуля (в сторону отрицательной бесконечности). 9 // 2 = 4 и 9.0 // 2.0 = 4.0, -11 // 3 = -4, -11.0 // 3 = -4.0

Пример

Предположим, что переменная a содержит 21, а переменная b содержит 10, тогда:

#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Строка 1 - Значение c = ", c
c = a - b
print "Строка 2 - Значение c = ", c
c = a * b
print "Строка 3 - Значение c = ", c
c = a / b
print "Строка 4 - Значение c = ", c
c = a % b
print "Строка 5 - Значение c = ", c
a = 2
b = 3
c = a**b
print "Строка 6 - Значение c = ", c
a = 10
b = 5
c = a//b
print "Строка 7 - Значение c = ", c

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - Значение c = 31
Строка 2 - Значение c = 11
Строка 3 - Значение c = 210
Строка 4 - Значение c = 2
Строка 5 - Значение c = 1
Строка 6 - Значение c = 8
Строка 7 - Значение c = 2

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

В Python операторы сравнения сравнивают значения по обе стороны от них и определяют соотношение между ними. Их также называют операторами отношения.

Какие же операторы сравнения используются в Python? В языке существует 7 операторов сравнения. Давайте их рассмотрим на примерах. Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

Оператор Описание Пример
== Если значения двух операндов равны, условие становится истинным. (a == b) неверно.
!= Если значения двух операндов не равны, то условие становится истинным. (a != b) верно.
<> Если значения двух операндов не равны, то условие становится истинным. (a <> b) верно. Это похоже на оператор !=.
> Если значение левого операнда больше, чем значение правого операнда, тогда условие становится истинным. (a > b) неверно.
< Если значение левого операнда меньше значения правого операнда, тогда условие становится истинным. (a < b) верно.
>= Если значение левого операнда больше или равно значению правого операнда, тогда условие становится истинным. (a >= b) неверно.
<= Если значение левого операнда меньше или равно значению правого операнда, тогда условие становится истинным. (a <= b) верно.

Пример

Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

#!/usr/bin/python
a = 21
b = 10
c = 0
if ( a == b ):
 print "Строка 1 - a равно b"
else:
 print "Строка 1 - a не равно b"
if ( a != b ):
 print "Строка 2 - a не равно b"
else:
 print "Строка 2 - a равно b"
if ( a <> b ):
 print "Строка 3 - a не равно b"
else:
 print "Строка 3 - a равно b"
if ( a < b ):
 print "Строка 4 - a меньше, чем b"
else:
 print "Строка 4 - a не меньше, чем b"
if ( a > b ):
 print "Строка 5 - a больше, чем b"
else:
 print "Строка 5 - a не больше, чем b"
a = 5;
b = 20;
if ( a <= b ):
 print "Строка 6 - a либо меньше, либо равно b"
else:
 print "Строка 6 - a не меньше и не равно b"
if ( b >= a ):
 print "Строка 7 - b либо больше, либо равно b"
else:
 print "Строка 7 - b не больше и не равно b"

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - a не равно b
Строка 2 - a не равно b
Строка 3 - a не равно b
Строка 4 - a не меньше, чем b
Строка 5 - a больше, чем b
Строка 6 - a либо меньше, либо равно b
Строка 7 - b либо больше, либо равно b

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

Рассмотрим операторы присваивания на языке Python. Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

Оператор Описание Пример
= Присваивает значения из правых операндов левому операнду. c = a + b присваивает значение a + b в c
+= Добавить Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. c += a эквивалентно c = c + a
-= Вычесть Он вычитает правый операнд из левого операнда и присваивает результат левому операнду. c -= a эквивалентно c = c - a
*= Умножить Он умножает правый операнд на левый операнд и присваивает результат левому операнду. c *= a эквивалентно c = c * a
/ = Разделить Он делит левый операнд на правый и присваивает результат левому операнду. c /= a эквивалентно c = c / a
%= Модуль Он принимает модуль с использованием двух операндов и присваивает результат левому операнду. c %= a эквивалентно c = c% a
**= Степень Выполняет экспоненциальное (степенное) вычисление операторов и присваивает значение левому операнду. c **= a эквивалентно c = c ** a
//= Деление с остатком Он выполняет деление с остатком по операторам и присваивает значение левому операнду. c //= a эквивалентно c = c // a

Пример

Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

#!/usr/bin/python
a = 21
b = 10
c = 0
c = a + b
print "Строка 1 - Значение c равно ", c
c += a
print "Строка 2 - Значение c равно ", c
c *= a
print "Строка 3 - Значение c равно ", c
c /= a
print "Строка 4 - Значение c равно ", c
c = 2
c %= a
print "Строка 5 - Значение c равно ", c
c **= a
print "Строка 6 - Значение c равно ", c
c //= a
print "Строка 7 - Значение c равно ", c

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - Значение c равно 31
Строка 2 - Значение c равно 52
Строка 3 - Значение c равно 1092
Строка 4 - Значение c равно 52
Строка 5 - Значение c равно 2
Строка 6 - Значение c равно 2097152
Строка 7 - Значение c равно 99864

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

Побитовые операторы в Python работают с битами и выполняют побитовую операцию. Допустим, если a = 60; и b = 13; в двоичном формате их значения будут 0011 1100 и 0000 1101 соответственно. В следующей таблице перечислены побитовые операторы, поддерживаемые языком Python, с примером каждого из них, мы используем две, указанные выше, переменные (a и b) в качестве операндов:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

В языке Python поддерживаются следующие побитовые операторы:

Оператор Описание Пример
& Двоичное AND Оператор копирует бит в результат, если он существует в обоих операндах. (a&b) (означает 0000 1100)
| Двоичное OR Он копирует бит, если он существует в любом из операндов. (a | b) = 61 (означает 0011 1101)
^ Двоичный XOR Он копирует бит, если он установлен в одном операнде, но не в обоих. (a^b) = 49 (означает 0011 0001)
~ Двоичное дополнение Он унарный и имеет эффект «переворачивания» битов. (~a) = -61 (означает 1100 0011 в форме дополнения до 2 из-за двоичного числа со знаком.
<< Двоичный сдвиг влево Значение левого операнда сдвигается влево на количество битов, указанное правым операндом. a << 2 = 240 (означает 1111 0000)
>> Двоичный сдвиг вправо Значение левого операнда перемещается вправо на количество бит, указанное правым операндом. a>>2 = 15 (означает 0000 1111)

Пример

#!/usr/bin/python
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b; # 12 = 0000 1100
print "Строка 1 - Значение c равно ", c
c = a | b; # 61 = 0011 1101
print "Строка 2 - Значение c равно ", c
c = a ^ b; # 49 = 0011 0001
print "Строка 3 - Значение c равно ", c
c = ~a; # -61 = 1100 0011
print "Строка 4 - Значение c равно ", c
c = a << 2; # 240 = 1111 0000
print "Строка 5 - Значение c равно ", c
c = a >> 2; # 15 = 0000 1111
print "Строка 6 - Значение c равно ", c

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - Значение c равно 12
Строка 2 - Значение c равно 61
Строка 3 - Значение c равно 49
Строка 4 - Значение c равно -61
Строка 5 - Значение c равно 240
Строка 6 - Значение c равно 15

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

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

Язык Python поддерживает следующие логические операторы. Предположим, что переменная a содержит 10, а переменная b содержит 20, тогда:

Оператор Описание Пример
and логическое AND (И) Если оба операнда верны, тогда условие становится истинным. (a and b) верно.
or логическое OR (ИЛИ) Если какой-либо из двух операндов не равен нулю, условие становится истинным. (a or b) верно.
not логическое NOT (НЕ) Используется для изменения логического состояния его операнда. not (a and b) ложно.

Операторы членства

Операторы членства Python проверяют членство в последовательности, таких, как строки, списки или кортежи. Есть два оператора членства, которые описаны ниже:

Оператор Описание Пример
in Возвращает значение true, если находит переменную в указанной последовательности, и false в противном случае. x in y, здесь возвращается 1, если x является членом последовательности y.
not in Возвращает значение true, если не находит переменную в указанной последовательности, и false в противном случае. x not in y, здесь не приводит к 1, если x не является членом последовательности y.

Пример

#!/usr/bin/python
a = 10
b = 20
list = [1, 2, 3, 4, 5 ];
if ( a in list ):
 print "Строка 1 - a имеется в данном списке"
else:
 print "Строка 1 - a отсутствует в данном списке"
if ( b not in list ):
 print "Строка 2 - b отсутствует в данном списке"
else:
 print "Строка 2 - b имеется в данном списке"
a = 2
if ( a in list ):
 print "Строка 3 - a имеется в данном списке"
else:
 print "Строка 3 - a отсутствует в данном списке"

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - a отсутствует в данном списке
Строка 2 - b отсутствует в данном списке
Строка 3 - a имеется в данном списке

Операторы идентификации

Операторы идентификации в Python сравнивают места в памяти двух объектов. Ниже описаны два оператора идентификации:

Оператор Описание Пример
is Возвращает значение true, если переменные по обе стороны от оператора указывают на один и тот же объект, и false в противном случае. x is y, здесь результат равен 1, если id (x) равен id (y).
не является Возвращает false, если переменные по обе стороны от оператора указывают на один и тот же объект, и true в противном случае. x is not y, здесь не будет 1, если id (x) не равно id (y).

Пример

#!/usr/bin/python
a = 20
b = 20
if ( a is b ):
 print "Строка 1 - a и b имеют одинаковые идентичности"
else:
 print "Строка 1 - a и b не имеют одинаковых идентичностей"
if ( id(a) == id(b) ):
 print "Строка 2 - a и b имеют одинаковые идентичности"
else:
 print "Строка 2 - a и b не имеют одинаковых идентичностей"
b = 30
if ( a is b ):
 print "Строка 3 - a и b имеют одинаковые идентичности"
else:
 print "Строка 3 - a и b не имеют одинаковых идентичностей"
if ( a is not b ):
 print "Строка 4 - a и b не имеют одинаковых идентичностей"
else:
 print "Строка 4 - a и b имеют одинаковые идентичности"

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Строка 1 - a и b имеют одинаковые идентичности
Строка 2 - a и b имеют одинаковые идентичности
Строка 3 - a и b не имеют одинаковых идентичностей
Строка 4 - a и b не имеют одинаковых идентичностей

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

Теперь давайте рассмотрим приоритет операторов в Python. В следующей таблице перечислены все операторы от наивысшего до самого низкого приоритета.

Оператор и описание
1

**

Возведение в степень.

2

~ + -

Дополнение, унарный плюс и минус (имена методов для последних двух: +@ и -@).

3

* / % //

Умножение, деление, деление по модулю и деление с остатком.

4

+ -

Сложение и вычитание.

5

>> <<

Поразрядный сдвиг вправо и влево.

6

&

Побитовое AND (И)

7

^ |

Побитовое исключающее OR (ИЛИ) и обычное OR (ИЛИ).

8

<= <>> =

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

9

<> ==! =

Операторы равенства.

10

=% = / = //= - = + = * = ** =

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

11

is is not

Операторы идентификации.

12

in not in

Операторы членства.

13

not or and

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

Пример

#!/usr/bin/python
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print "Значение (a + b) * c / d равно ", e
e = ((a + b) * c) / d # (30 * 15 ) / 5
print "Значение ((a + b) * c) / d равно ", e
e = (a + b) * (c / d); # (30) * (15/5)
print "Значение (a + b) * (c / d) равно ", e
e = a + (b * c) / d; # 20 + (150/5)
print "Значение a + (b * c) / d равно ", e

Когда вы выполните вышеуказанную программу, она даст следующий результат:

Значение (a + b) * c / d равно 90
Значение ((a + b) * c) / d равно 90
Значение (a + b) * (c / d) равно 90
Значение a + (b * c) / d равно 50
Поделитесь:

О сайте

Все материалы сайта proglang.su являются результатом труда его авторов. Копирование материалов в некоммерческих целях без указания источника в виде прямой ссылки на сайт proglang.su запрещено. Использование материалов в коммерческих целях разрешено только с письменного согласия автора. Нарушение авторских прав преследуется по закону. Мы это делаем, чтобы защитить плоды своих трудов от воровства. © 2014-2019

Присоединяйтесь


Обратная связь