Python Операторы
Что такое оператор?
В этой главе в основном объясняются операторы Python. Давайте рассмотрим простой пример 4 +5 = 9 В примере,4и5называютсяоперандами, а,+называется оператором.
Язык Python поддерживает следующие типы операторов:
- Арифметические операторы
- Операторы сравнения (реляционные)
- Операторы присваивания
- Логические операторы
- Побитовые операторы
- Операторы принадлежности
- Операторы идентичности
- Приоритет операторов
Далее давайте изучим операторы Python по одному.
Арифметические операторы Python
Далее предполагаются переменные: a=10,b=20:
| Operator | Описание | Пример |
|---|---|---|
| + | Сложение — складывает два объекта | a + b выводит 30 |
| - | Вычитание — даёт отрицательное число или вычитает одно число из другого | a - b выводит -10 |
| * | Умножение — умножает два числа или возвращает строку, повторённую заданное число раз | a * b выводит 200 |
| / | Деление — x делится на y | b / a выводит 2 |
| % | Деление по модулю — возвращает остаток от деления | b % a выводит 0 |
| ** | Возведение в степень — возвращает x, возведённое в степень y | a**b — это 10 в 20-й степени, выводит 100000000000000000000 |
| // | Целочисленное деление — возвращает целую часть частного (округлённую вниз) |
>>> 9//2 4 >>> -9//2 -5 |
В следующем примере демонстрируется работа всех арифметических операторов Python:
Примеры (Python 2.0+)
Запустить пример »
Вывод приведенного выше примера:
1 - c 的值为: 31 2 - c 的值为: 11 3 - c 的值为: 210 4 - c 的值为: 2 5 - c 的值为: 1 6 - c 的值为: 8 7 - c 的值为: 2
Примечание:В Python 2.x при делении целого числа на целое может получиться только целое число. Если вам нужна дробная часть, измените одно из чисел на число с плавающей точкой.
>>> 1/2 0 >>> 1.0/2 0.5 >>> 1/float(2) 0.5
Операторы сравнения Python
Предполагается, что переменная a равна 10, а переменная b равна 20:
| Operator | Описание | Пример |
|---|---|---|
| == | Равно — сравнивает, равны ли объекты | (a == b) возвращает False. |
| != | Не равно — сравнивает, не равны ли два объекта | (a != b) возвращает True. |
| <> | Не равно — сравнивает, не равны ли два объекта.Устарело в Python 3. | (a <> b) возвращает True. Этот оператор похож на !=. |
| > | Больше — возвращает, больше ли x, чем y | (a > b) возвращает False. |
| < | Меньше — возвращает, меньше ли x, чем y. Все операторы сравнения возвращают 1 для истины и 0 для лжи. Они эквивалентны специальным переменным True и False соответственно. | (a < b) возвращает True. |
| >= | Больше или равно — возвращает, больше ли x, чем y, или равно ли ему. | (a >= b) возвращает False. |
| <= | Меньше или равно - Возвращает, является ли x меньшим или равным y. | (a <= b) возвращает True. |
Следующий пример демонстрирует работу всех операторов сравнения Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - a 不等于 b 2 - a 不等于 b 3 - a 不等于 b 4 - a 大于等于 b 5 - a 大于 b 6 - a 小于等于 b 7 - b 大于等于 a
Операторы присваивания Python
Предполагается, что переменная a равна 10, а переменная b равна 20:
| Operator | Описание | Пример |
|---|---|---|
| = | Простой оператор присваивания | 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 |
Следующий пример демонстрирует работу всех операторов присваивания Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - c 的值为: 31 2 - c 的值为: 52 3 - c 的值为: 1092 4 - c 的值为: 52 5 - c 的值为: 2 6 - c 的值为: 2097152 7 - c 的值为: 99864
Побитовые операторы Python
Побитовые операторы обрабатывают числа как двоичные для вычислений. Правила побитовых операций в Python следующие:
В таблице ниже переменная a равна 60, а b — 13, в двоичном формате они выглядят так:
a = 0011 1100 b = 0000 1101 ----------------- a&b = 0000 1100 a|b = 0011 1101 a^b = 0011 0001 ~a = 1100 0011
| Operator | Описание | Пример |
|---|---|---|
| & | Побитовый оператор AND: для двух значений, участвующих в операции, если оба соответствующих бита равны 1, результирующий бит равен 1; в противном случае он равен 0. | (a & b) выводит 12, двоичное пояснение: 0000 1100 |
| | | Побитовый оператор OR: если хотя бы один из двух соответствующих двоичных битов равен 1, результирующий бит равен 1. | (a | b) выводит 61, двоичное пояснение: 0011 1101 |
| ^ | Побитовый оператор XOR: когда два соответствующих двоичных бита различаются, результат равен 1. | (a ^ b) выводит 49, двоичное пояснение: 0011 0001 |
| ~ | Побитовый оператор NOT: инвертирует каждый бит в двоичном представлении, меняя 0 на 1, а 1 на 0.~xАналогично-x-1 | (~a ) выводит -61, двоичное пояснение: 1100 0011 (представлено в дополнительном коде), в дополнительном коде знакового двоичного числа. |
| << | Оператор левого сдвига: все двоичные биты операнда сдвигаются влево на число битов, определяемое<<Число справа задаёт количество позиций для сдвига. Старшие биты отбрасываются, а младшие заполняются 0. | a << 2 выводит 240, пояснение в двоичном виде: 1111 0000 |
| >> | Оператор правого сдвига: сдвигает все двоичные биты операнда слева от >> вправо на указанное число разрядов,>>Число справа задаёт количество позиций для сдвига. | a >> 2 выводит 15, пояснение в двоичном виде: 0000 1111 |
Следующий пример демонстрирует работу всех побитовых операторов в Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
Логические операторы Python
Язык Python поддерживает логические операторы. Предположим, переменная a равна 10, а b равна 20:
| Operator | Логическое выражение | Описание | Пример |
|---|---|---|---|
| и | x and y | Логический оператор "and" — если x равно False, x and y возвращает False, иначе возвращает вычисленное значение y. | (a and b) возвращает 20. |
| или | x or y | Логический оператор "or" — если x не равно нулю, он возвращает вычисленное значение x, иначе возвращает вычисленное значение y. | (a or b) возвращает 10. |
| not | not x | Логический оператор "not" — если x равно True, возвращает False. Если x равно False, возвращает True. | not(a and b) возвращает False |
Вывод приведенного выше примера:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - 变量 a 和 b 都为 True 2 - 变量 a 和 b 都为 True,或其中一个变量为 True 3 - 变量 a 和 b 有一个不为 True 4 - 变量 a 和 b 都为 True,或其中一个变量为 True 5 - 变量 a 和 b 都为 False,或其中一个变量为 False
Операторы принадлежности Python
Помимо операторов, перечисленных выше, Python также поддерживает операторы принадлежности, которые проверяют, содержит ли последовательность ряд элементов, включая строки, списки или кортежи.
| Operator | Описание | Пример |
|---|---|---|
| in | Возвращает True, если значение найдено в указанной последовательности, иначе возвращает False. | x in y sequence, возвращает True, если x находится в последовательности y. |
| not in | Возвращает True, если значение не найдено в указанной последовательности, иначе возвращает False. | x not in y sequence, возвращает True, если x не входит в последовательность y. |
В следующем примере демонстрируются операции всех операторов принадлежности в Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - 变量 a 不在给定的列表中 list 中 2 - 变量 b 不在给定的列表中 list 中 3 - 变量 a 在给定的列表中 list 中
Операторы идентичности Python
Операторы идентичности используются для сравнения единиц хранения двух объектов
| Operator | Описание | Пример |
|---|---|---|
| является | is определяет, ссылаются ли два идентификатора на один и тот же объект | x is y, аналогичноid(x) == id(y), если они ссылаются на один и тот же объект, возвращает True; иначе возвращает False |
| не | is not определяет, ссылаются ли два идентификатора на разные объекты | x is not y, аналогичноid(a) != id(b). Если они не ссылаются на один и тот же объект, результат возвращает True; иначе возвращает False. |
Примечание: id()Функция используется для получения адреса памяти объекта.
В следующем примере демонстрируются операции всех операторов идентичности в Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
1 - a 和 b 有相同的标识 2 - a 和 b 有相同的标识 3 - a 和 b 没有相同的标识 4 - a 和 b 没有相同的标识
Разница между is и ==:
is используется для определения, указывают ли две ссылки на переменные на один и тот же объект (одну и ту же область памяти), == используется для определения, равны ли значения переменных, на которые ссылаются.
>>> a = [1, 2, 3] >>> b = a >>> b is a True >>> b == a True >>> b = a[:] >>> b is a False >>> b == a True
Приоритет операторов Python
В следующей таблице перечислены все операторы в порядке от наивысшего приоритета к наинизшему:
| Operator | Описание |
|---|---|
| ** | Возведение в степень (наивысший приоритет) |
| ~ + - | Побитовая инверсия, унарный плюс и минус (имена методов для последних двух — +@ и -@) |
| * / % // | Умножение, деление, остаток от деления и целочисленное деление |
| + - | Сложение и вычитание |
| >> << | Операторы сдвига вправо, сдвига влево |
| & | Побитовое 'AND' |
| ^ | | Побитовые операторы |
| <= < > >= | Операторы сравнения |
| <> == != | Операторы равенства |
| = %= /= //= -= += *= **= | Операторы присваивания |
| is is not | Операторы идентичности |
| in not in | Операторы принадлежности |
| not and or | Логические операторы |
Следующий пример демонстрирует работу всех приоритетов операторов в Python:
Примеры (Python 2.0+)
Вывод приведенного выше примера:
(a + b) * c / d 运算结果为: 90 ((a + b) * c) / d 运算结果为: 90 (a + b) * (c / d) 运算结果为: 90 a + (b * c) / d 运算结果为: 50Другие расширения