Python: Операторы
В математике и программировании мы часто используем знаки операций, такие как +, -, * и другие. В программировании такие знаки называются операторами.
- Оператор представляет собой символ или слово, которое обозначает действие.
- Операнды являются значениями, к которым применяется оператор.
Пример:
print(8 + 2)Здесь:
+является оператором8и2являются операндами- результатом будет
10
операнд оператор операнд результат
8 + 2 → 10
5 - 3 → 2
4 * 3 → 12Унарные операторы
Существуют и унарные операции, которые работают с одним операндом. Пример:
print(-3) # => -3В этом случае - является унарным оператором, а 3 является операндом. Интерпретатор получает команду: "возьми число 3 и измени его знак".
Оператор - может использоваться по-разному. Когда он стоит между двумя числами, это операция вычитания:
print(5 - 2) # => 3
print(10 - 7) # => 3Здесь - берет первое число и вычитает из него второе.
Эта разница особенно заметна при работе с отрицательными числами. Например:
# минус на минус дает плюс
print(5 - -2) # => 7Сначала мы видим операцию вычитания: 5 - (...). Но справа стоит унарный минус -2, который превращает 2 в отрицательное число. В итоге получается: 5 - (-2) = 7.
Таким образом, значение - зависит от контекста: если рядом стоит другое число, это вычитание, иначе это смена знака числа.
Главное, что здесь нужно помнить, поведение и даже сама запись здесь полностью соответствует тому, как мы делали это в школе.
Ошибки при вычислениях и парсинге
Если воспринимать -3 как единое число, можно не заметить, что - является отдельным оператором со своим приоритетом. Например:
print(-3**2)На первый взгляд может показаться, что в квадрат возводится -3, и результат должен быть 9 (любое число в квадрате становится положительным). Но результат будет -9.
Дело в порядке вычислений: сначала выполняется возведение в степень (**), а только потом применяется унарный минус. То есть программа считает так: -(3**2) = -9. Про приоритет операций мы поговорим подробнее дальше по курсу.
Задание
Подводная лодка находится на глубине -81 м. Палуба спасательного корабля расположена на высоте +6 м над уровнем воды.
Рассчитайте и выведите на экран:
- Полное расстояние всплытия в метрах.
- Время подъема в минутах — лодка поднимается со скоростью 3 м/мин.
Полезное
Всегда отбивайте арифметические операторы пробелами от своих операндов – это хороший стиль программирования.
Ваше упражнение проверяется по этим тестам
import importlib
def test(capsys):
expected = "87\n29.0"
expect_output(capsys, expected)
def expect_output(capsys, expected):
importlib.import_module('solution')
out, _err = capsys.readouterr()
actual = out.strip('\n')
with capsys.disabled():
print('\n')
print(out)
assert actual == expectedРешение учителя откроется через:
20:00
