328 lines
11 KiB
Markdown
328 lines
11 KiB
Markdown
|
---
|
|||
|
title: Basic Operators
|
|||
|
localeTitle: Основные операторы
|
|||
|
---
|
|||
|
## Основные операторы
|
|||
|
|
|||
|
Операторы - это символы, которые говорят интерпретатору выполнять определенную операцию (арифметику, сравнение, логику и т. Д.),
|
|||
|
|
|||
|
Ниже перечислены различные типы операторов в Python:
|
|||
|
|
|||
|
1. Арифметические операторы
|
|||
|
2. Реляционные операторы
|
|||
|
3. Побитовые операторы
|
|||
|
4. Операторы присваивания
|
|||
|
5. Логические операторы
|
|||
|
6. Операторы членства
|
|||
|
7. Операторы идентификации
|
|||
|
|
|||
|
#### Арифметические операторы
|
|||
|
|
|||
|
Арифметический оператор принимает два операнда в качестве входных данных, выполняет вычисление и возвращает результат.
|
|||
|
|
|||
|
Рассмотрим выражение **«a = 2 + 3»** . Здесь `2` и `3` - _операнды,_ а `+` - _арифметический оператор_ . Результат операции хранится в переменной a.
|
|||
|
|
|||
|
оператор
|
|||
|
|
|||
|
Описание
|
|||
|
|
|||
|
использование
|
|||
|
|
|||
|
+
|
|||
|
|
|||
|
Выполняет добавление в операндах
|
|||
|
|
|||
|
12 + 3 = 15
|
|||
|
|
|||
|
\-
|
|||
|
|
|||
|
Выполняет вычитание на операндах. Вычитает правый операнд из левого операнда
|
|||
|
|
|||
|
12 - 3 = 9
|
|||
|
|
|||
|
\*
|
|||
|
|
|||
|
Выполняет умножение на операнды
|
|||
|
|
|||
|
12 \* 3 = 36
|
|||
|
|
|||
|
/
|
|||
|
|
|||
|
Выполняет разделение на операнды. Делит левый операнд на правый операнд
|
|||
|
|
|||
|
12/3 = 4
|
|||
|
|
|||
|
Примечание. Когда используются два целых числа, результат отличается между Python 2 и Python 3.
|
|||
|
|
|||
|
5/2 = 2 в Python 2
|
|||
|
|
|||
|
5/2 = 2,5 в Python 3
|
|||
|
|
|||
|
%
|
|||
|
|
|||
|
Выполняет модуль для операндов. Возвращает остаток, полученный при делении левого операнда на правый операнд
|
|||
|
|
|||
|
16% 3 = 1
|
|||
|
|
|||
|
\*\*
|
|||
|
|
|||
|
Выполняет операцию экспонирования. Левый операнд поднят до степени правильного операнда
|
|||
|
|
|||
|
12 \*\* 3 = 1728
|
|||
|
|
|||
|
//
|
|||
|
|
|||
|
Выполняет операцию разделения пола. Возвращает интегральную часть частного, полученную после погружения левого операнда в правый операнд
|
|||
|
|
|||
|
18 // 5 = 3
|
|||
|
|
|||
|
Примечание. Чтобы получить результат в плавающем типе, один из операндов должен также иметь тип float.
|
|||
|
|
|||
|
#### Реляционные операторы
|
|||
|
|
|||
|
Для сравнения двух операндов используется реляционный оператор для определения отношения между ними. Он возвращает логическое значение, основанное на условии.
|
|||
|
|
|||
|
оператор
|
|||
|
|
|||
|
Описание
|
|||
|
|
|||
|
использование
|
|||
|
|
|||
|
\>
|
|||
|
|
|||
|
Возвращает True, если левый операнд больше, чем правый операнд Возвращает False в противном случае
|
|||
|
|
|||
|
12> 3 возвращает True
|
|||
|
|
|||
|
<
|
|||
|
|
|||
|
Возвращает True, если правый операнд больше, чем левый операнд Возвращает False в противном случае
|
|||
|
|
|||
|
12 <3 возвращает False
|
|||
|
|
|||
|
\==
|
|||
|
|
|||
|
Возвращает True, если оба операнда равны Возвращает False в противном случае
|
|||
|
|
|||
|
12 == 3 возвращает False
|
|||
|
|
|||
|
\> =
|
|||
|
|
|||
|
Возвращает True, если левый операнд больше или равен правильному операнду Возвращает False в противном случае
|
|||
|
|
|||
|
12> = 3 возвращает True
|
|||
|
|
|||
|
<=
|
|||
|
|
|||
|
Возвращает True, если правый операнд больше или равен левому операнду Возвращает False в противном случае
|
|||
|
|
|||
|
12 <= 3 возвращает False
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
Возвращает True, если оба операнда не равны Возвращает False в противном случае
|
|||
|
|
|||
|
12! = 3 возвращает True
|
|||
|
|
|||
|
#### Побитовые операторы
|
|||
|
|
|||
|
Побитовый оператор выполняет операции по операндам по битам
|
|||
|
|
|||
|
Рассмотрим a = 2 (в двоичной нотации, 10) и b = 3 (в двоичной нотации, 11) для нижеследующих применений
|
|||
|
|
|||
|
оператор
|
|||
|
|
|||
|
Описание
|
|||
|
|
|||
|
использование
|
|||
|
|
|||
|
&
|
|||
|
|
|||
|
Выполняет побитовое И операцию над операндами
|
|||
|
|
|||
|
a & b = 2 Двоичный: 10 & 11 = 10
|
|||
|
|
|||
|
|
|
|||
|
|
|||
|
Выполняет побитовое ИЛИ операцию над операндами
|
|||
|
|
|||
|
a | b = 3 Двоичный: 10 | 11 = 11
|
|||
|
|
|||
|
^
|
|||
|
|
|||
|
Выполняет побитовое XOR-операцию над операндами
|
|||
|
|
|||
|
a ^ b = 1 Двоичный: 10 ^ 11 = 01
|
|||
|
|
|||
|
~
|
|||
|
|
|||
|
Выполняет побитовое НЕ операции над операндом Перемещает каждый бит в операнд
|
|||
|
|
|||
|
~ a = -3 Двоичный: ~ (00000010) = (11111101)
|
|||
|
|
|||
|
\>>
|
|||
|
|
|||
|
Выполняет побитовое смещение вправо. Сдвигает биты левого операнда, прямо на количество бит, указанное в качестве правильного операнда
|
|||
|
|
|||
|
a >> b = 0 Двоичный: 00000010 >> 00000011 = 0
|
|||
|
|
|||
|
<<
|
|||
|
|
|||
|
Выполняет побитовый сдвиг влево. Сдвигает биты левого операнда, оставшиеся от количества бит, заданных в качестве правильного операнда
|
|||
|
|
|||
|
a << b = 16 Двоичный: 00000010 << 00000011 = 00001000
|
|||
|
|
|||
|
#### Операторы присваивания
|
|||
|
|
|||
|
Оператор присваивания используется для назначения значений переменной. Обычно это объединяется с другими операторами (такими как арифметические, побитовые), где операция выполняется над операндами, а результат присваивается левому операнду.
|
|||
|
|
|||
|
Рассмотрим следующие примеры, **a = 18** . Здесь `=` - оператор присваивания, и результат сохраняется в переменной a. **a + = 10** . Здесь `+=` - оператор присваивания, и результат сохраняется в переменной a. Это то же самое, что и a = a + 10.
|
|||
|
|
|||
|
оператор
|
|||
|
|
|||
|
использование
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a = 5. Значение 5 присваивается переменной a
|
|||
|
|
|||
|
\+ =
|
|||
|
|
|||
|
a + = 5 эквивалентно a = a + 5
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
а = 5 эквивалентно а = а - 5
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
а \* = 3 эквивалентно а = а \* 3
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a / = 3 эквивалентно a = a / 3
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a% = 3 эквивалентно a = a% 3
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a \*\* = 3 эквивалентно a = a \*\* 3
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a // = 3 эквивалентно a = a // 3
|
|||
|
|
|||
|
знак равно
|
|||
|
|
|||
|
a = 3 эквивалентно a = a & 3
|
|||
|
|
|||
|
| =
|
|||
|
|
|||
|
a | = 3 эквивалентно a = a | 3
|
|||
|
|
|||
|
^ =
|
|||
|
|
|||
|
а ^ = 3 эквивалентно а = а ^ 3
|
|||
|
|
|||
|
\>> =
|
|||
|
|
|||
|
a >> = 3 эквивалентно a = a >> 3
|
|||
|
|
|||
|
<< =
|
|||
|
|
|||
|
a << = 3 эквивалентно a = a << 3
|
|||
|
|
|||
|
#### Логические операторы
|
|||
|
|
|||
|
Логический оператор используется для принятия решения на основе нескольких условий. Логические операторы, используемые в Python, `and` , `or` и `not`
|
|||
|
|
|||
|
оператор
|
|||
|
|
|||
|
Описание
|
|||
|
|
|||
|
использование
|
|||
|
|
|||
|
а также
|
|||
|
|
|||
|
Возвращает True, если оба операнда True Возвращает False в противном случае
|
|||
|
|
|||
|
a и b
|
|||
|
|
|||
|
или
|
|||
|
|
|||
|
Возвращает True, если любой из операндов True Возвращает False в противном случае
|
|||
|
|
|||
|
a или b
|
|||
|
|
|||
|
не
|
|||
|
|
|||
|
Возвращает True, если операнд False Возвращает False в противном случае
|
|||
|
|
|||
|
не
|
|||
|
|
|||
|
#### Операторы членства
|
|||
|
|
|||
|
Оператор членства используется для идентификации членства в любой последовательности (списки, строки, кортежи). `in` а `not in` операторы членства
|
|||
|
|
|||
|
`in` возвращает True, если указанное значение найдено в последовательности. Возвращает False в противном случае. `not in` возвращает True, если указанное значение не найдено в последовательности. Возвращает False в противном случае.
|
|||
|
|
|||
|
###### Пример использования
|
|||
|
|
|||
|
```py
|
|||
|
a = [1,2,3,4,5]
|
|||
|
|
|||
|
#Is 3 in the list a?
|
|||
|
print 3 in a # prints True
|
|||
|
|
|||
|
#Is 12 not in list a?
|
|||
|
print 12 not in a # prints True
|
|||
|
|
|||
|
str = "Hello World"
|
|||
|
|
|||
|
#Does the string str contain World?
|
|||
|
print "World" in str # prints True
|
|||
|
|
|||
|
#Does the string str contain world? (note: case sensitive)
|
|||
|
print "world" in str # prints False
|
|||
|
|
|||
|
print "code" not in str # prints True
|
|||
|
```
|
|||
|
|
|||
|
#### Операторы идентификации
|
|||
|
|
|||
|
Оператор идентификации используется для проверки того, имеют ли две переменные одинаковое расположение памяти. `is` и `is not` есть операторы тождества
|
|||
|
|
|||
|
`is` возвращает Истина , если операнды относятся к одному объекту. Возвращает False в противном случае. `is not` возвращает True, если операнды не относятся к одному и тому же объекту. Возвращает False в противном случае.
|
|||
|
|
|||
|
Обратите внимание, что два значения, когда они равны, не обязательно должны совпадать.
|
|||
|
|
|||
|
###### Пример использования
|
|||
|
|
|||
|
```py
|
|||
|
a = 3
|
|||
|
b = 3
|
|||
|
c = 4
|
|||
|
print a is b # prints True
|
|||
|
print a is not b # prints False
|
|||
|
print a is not c # prints True
|
|||
|
|
|||
|
x = 1
|
|||
|
y = x
|
|||
|
z = y
|
|||
|
print z is 1 # prints True
|
|||
|
print z is x # prints True
|
|||
|
|
|||
|
str1 = "FreeCodeCamp"
|
|||
|
str2 = "FreeCodeCamp"
|
|||
|
|
|||
|
print str1 is str2 # prints True
|
|||
|
print "Code" is str2 # prints False
|
|||
|
|
|||
|
a = [10,20,30]
|
|||
|
b = [10,20,30]
|
|||
|
|
|||
|
print a is b # prints False (since lists are mutable in Python)
|
|||
|
|
|||
|
```
|