Раздел: Статьи / Питон /

Чем операнд отличается от оператора

Учимся программировать на Python Учимся программировать на Python

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

В мире программирования есть довольно много разных направлений, которые очень сильно отличаются друг от друга. Например, программист микроконтроллеров не сможет разработать конфигурацию 1С, а программист 1С может не иметь понятия о принципах обмена данными через интерфейс RS-232. И при этом оба они могут быть очень классными специалистами в своей области.

Однако есть базовые вещи - азы программирования, которые должны знать все программисты, независимо от рода деятельности. К таким вещам относятся, например, понятия о выражениях, операндах и операторах.

Знаете ли вы, чем отличается операнд от оператора? Я вот когда-то не знал и постоянно путался с этими терминами. Для меня, как говорится, был “хрен редьки не слаще”. Но однажды каждый программист при переходе от любителя к профессионалу должен взять себя в руки и разобраться с этими базовыми понятиями. А я постараюсь в этом помочь.

ПРИМЕЧАНИЕ: В видео я кратко рассказал о сдвиге. Если хотите подробнее, то можете посмотреть здесь: сдвиг влево, сдвиг вправо.

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

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

А во-вторых, у всех языков программирования практически всегда операторы сложения, вычитания, деления и умножения выглядят одинаково, а вот с остальными могут быть (и есть) отличия.

А вот обещанное отличие операнда от оператора:

Чем операнд отличается от оператора

Операторы

В Python используются следующие операторы:

+       -       *       **      /       //      % 

<       >       <=      >=      ==      != 
     
<<      >>      &       |       ^       ~

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

Например, оператор + складывает два числа. Но он также может быть унарным оператором, и оператором конкатенации (сложения) строк.

Ну а теперь подробнее о назначении приведённых выше операторов. Со строками будем разбираться отдельно, но в случае использования с числовыми типами эти операторы выполняют следующие действия:

Операция Результат Примечания
x + y Сумма х и у
x - y Разность х и у
x * y Произведение х на у
x ** y х в степени у
x / y Деление х на у
x // y Целочисленное деление х на у Результат представляет собой целое число, хотя тип результата не обязательно int. Результат всегда округляется до минус бесконечности: 1//2 равно 0, (-1)//2 равно -1, 1//(-2) равно -1 и (-1)//(-2) равно 0.
х % у Остаток от деления х/у Не для комплексных чисел
-x Отрицательное значение х Равносильно -1 * х
+x Не изменяет х
х | y Поразрядное ИЛИ между х и у
x ^ y Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ между х и у
x & y Поразрядное И между х и у
х << n Сдвиг влево значения х на n битов Сдвиг отрицательных чисел является неправильным и приводит к увеличению ошибки значения. Сдвиг влево на n бит эквивалентен умножению на число 2 в степень n без проверки переполнения.
x >> n Сдвиг вправо значения х на n битов Сдвиг отрицательных чисел является неправильным и приводит к увеличению ошибки значения. Сдвиг вправо на n бит эквивалентен делению на число 2 в степень n без проверки переполнения.
~x Инверсия х
<
>
<=
>=
==
!=
Операторы сравнения. Соответственно “меньше”, “больше”, “меньше или равно”, “больше или равно”, “равно”, “не равно”.

Есть ещё такая штука, как приоритет операторов. Например, в выражении

x + y * z

Сначала будет выполнена операция y * z, а потом к х будет добавлен результат этой операции. Обычно в языках программирования на математические операции действуют правила приоритета, аналогичные принятым в математике. Но если вы не уверены, то лучше заключать в круглые скобки выражение, которое должно быть вычислено первым.

Например, если вы не знаете, как в Python будет вычислено это выражение:

x / y // z

то есть какая операция будет вычислена первой - обычного деления или целочисленного, а вы хотите, чтобы сначала было выполнено целочисленное, то лучше сделать так:

x / (y // z)

Лично я никогда не заморачиваюсь запоминанием приоритетов операторов, потому что в разных языках они могут отличаться (а мне приходится работать с разными языками). Проще добавить скобки в выражение - так будет наверняка.

Есть в Python и другие операторы. А также знаки, похожие на операторы, но не являющиеся таковыми. Но о них мы поговорим в следующих статьях.


Все способы изучить Python Все способы изучить Python

Каждый раз, изучая какую-то новую науку, мы задаёмся вопросом - где взять обучающие материалы. Конечно, сегодня нам помогает в этом Интернет. Но иногда на поиски уходит очень много времени, а нужного результата мы не получаем... Собрал для вас кучу полезных ссылок для изучения Python. не благодарите ))) Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика