Logo
Книга для начинающих
ВходРегистрация
/
Программирование
/
Курс Python
/

Композиция операций

Python: Композиция операций

В Python, как и в математике, можно объединять несколько операций в одну строку. Такие выражения интерпретатор обрабатывает шаг за шагом, по определенным правилам.

Рассмотрим пример:

print(2 * 4 * 5 * 10)

Этот код состоит из нескольких операций умножения, объединенных в одно выражение. Чтобы понять, как интерпретатор выполняет выражение, разберем его по этапам:

  • Сначала вычисляется 2 * 4: 8 * 5 * 10
  • Затем 8 * 5: 40 * 10
  • И наконец 40 * 10: 400

Итоговый результат составляет 400.

А если разные операции?

Все просто, пока используются одинаковые операторы. Но что произойдет, если объединить, например, умножение и сложение?

print(2 + 3 * 4)
2 + 3 * 4
    └─┬─┘
2 +  12
└──┬───┘
   14

Получится ли 20 или 14? Ответ: 14.

Это объясняется тем, что в Python, как и в математике, у операций есть приоритет. Умножение выполняется раньше сложения, если не использовать скобки. Мы разберем это подробнее в уроке про приоритеты.

Примеры с вычитанием и отрицательными числами

То же правило работает и для вычитания:

print(10 - 2 * 3)  # => 4

Сначала выполняется умножение: 10 - 6 = 4.

Если же в выражении есть отрицательные числа, унарный минус применяется уже после возведения в степень:

print(-2 ** 2) # => -4, два в степени два, затем применяется минус
print(-2 * 5)  # => -10, минус два умноженное на пять
print(4 + -2)  # => 2
print(6 - -2)  # => 8

Во всех примерах, кроме первого, сначала вычисляется унарный минус (-2), и затем проводятся остальные операции.

Рассмотрим подробнее последний пример:

print(6 - -2)   # => 8

Сначала вычисляется унарный минус (-2), и затем операция превращается в 6 - (-2), что дает 8. Это то же самое, что:

print(6 + 2) # => 8

Что нужно запомнить

  • Выражения могут состоять из нескольких операций.
  • Python вычисляет их поэтапно: слева направо, соблюдая приоритет операций.
  • Скобки можно использовать, чтобы явно указать порядок вычислений.

Задание

Вы идете в магазин за подарками: 3 книги по 200 рублей и 2 ручки по 30 рублей. Рассчитайте и выведите итоговую стоимость покупки.

3 * 200  +  2 * 30
    ↓           ↓
   600    +    60    =  660
Коммерческий опыт и Трудоустройство

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
/
Программирование
/
Курс Python
/

Композиция операций

Python: Композиция операций

В Python, как и в математике, можно объединять несколько операций в одну строку. Такие выражения интерпретатор обрабатывает шаг за шагом, по определенным правилам.

Рассмотрим пример:

print(2 * 4 * 5 * 10)

Этот код состоит из нескольких операций умножения, объединенных в одно выражение. Чтобы понять, как интерпретатор выполняет выражение, разберем его по этапам:

  • Сначала вычисляется 2 * 4: 8 * 5 * 10
  • Затем 8 * 5: 40 * 10
  • И наконец 40 * 10: 400

Итоговый результат составляет 400.

А если разные операции?

Все просто, пока используются одинаковые операторы. Но что произойдет, если объединить, например, умножение и сложение?

print(2 + 3 * 4)
2 + 3 * 4
    └─┬─┘
2 +  12
└──┬───┘
   14

Получится ли 20 или 14? Ответ: 14.

Это объясняется тем, что в Python, как и в математике, у операций есть приоритет. Умножение выполняется раньше сложения, если не использовать скобки. Мы разберем это подробнее в уроке про приоритеты.

Примеры с вычитанием и отрицательными числами

То же правило работает и для вычитания:

print(10 - 2 * 3)  # => 4

Сначала выполняется умножение: 10 - 6 = 4.

Если же в выражении есть отрицательные числа, унарный минус применяется уже после возведения в степень:

print(-2 ** 2) # => -4, два в степени два, затем применяется минус
print(-2 * 5)  # => -10, минус два умноженное на пять
print(4 + -2)  # => 2
print(6 - -2)  # => 8

Во всех примерах, кроме первого, сначала вычисляется унарный минус (-2), и затем проводятся остальные операции.

Рассмотрим подробнее последний пример:

print(6 - -2)   # => 8

Сначала вычисляется унарный минус (-2), и затем операция превращается в 6 - (-2), что дает 8. Это то же самое, что:

print(6 + 2) # => 8

Что нужно запомнить

  • Выражения могут состоять из нескольких операций.
  • Python вычисляет их поэтапно: слева направо, соблюдая приоритет операций.
  • Скобки можно использовать, чтобы явно указать порядок вычислений.

Задание

Вы идете в магазин за подарками: 3 книги по 200 рублей и 2 ручки по 30 рублей. Рассчитайте и выведите итоговую стоимость покупки.

3 * 200  +  2 * 30
    ↓           ↓
   600    +    60    =  660
Коммерческий опыт и Трудоустройство

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

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются
← ПредыдущийСледующий →
← ПредыдущийСледующий →
← ПредыдущийСледующий →

Ваше упражнение проверяется по этим тестам

import importlib


def test(capsys):
    expected = "660"
    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

waiting_clock
← ПредыдущийСледующий →