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

Приоритет

Python: Приоритет

Рассмотрим простое выражение:

print(2 + 2 * 2)  # => 6

Результат равен 6, а не 8. Это объясняется понятием приоритета операций в математике и программировании. Он определяет порядок, в котором выполняются действия:

  • Умножение и деление выполняются раньше сложения и вычитания.
  • Возведение в степень (**) имеет еще более высокий приоритет.
Приоритет операций (от высокого к низкому):

  **          возведение в степень
   ↓
  * / // %    умножение, деление, остаток
   ↓
  + -         сложение, вычитание

Например:

print(2 * 2 ** 3)  # => 16, потому что сначала 2 ** 3 = 8, затем 8 * 2 = 16

Если рядом идут операции с одинаковым приоритетом, они выполняются слева направо:

print(8 / 2 * 3)  # => 12, потому что сначала 8 / 2 = 4, затем 4 * 3 = 12

Управление порядком действий

Иногда нужно изменить порядок вычислений. Для этого используются круглые скобки. Они позволяют задать, какие действия нужно выполнить в первую очередь:

print((2 + 2) * 2)  # => 8

Скобки можно ставить вокруг любой части выражения и вкладывать их друг в друга:

print(3 ** (4 - 2))  # => 9
print(7 * 3 + (4 / 2) - (8 + (2 - 1)))  # => 14

Главное правило: всегда закрывайте скобки. Непарные скобки вызывают ошибки: и новички, и опытные программисты иногда забывают про закрывающую скобку.

Пишите скобки сразу парой. Например, вводите () и потом заполняйте внутреннюю часть. Большинство редакторов кода (в том числе наш) автоматически добавляют закрывающую скобку, как только вы пишете открывающую.

Повышаем читаемость

Иногда выражение работает правильно, но выглядит запутанно. В таких случаях скобки можно добавить просто для наглядности: они не изменят результат, но улучшат восприятие.

# Было
print(8 / 2 + 5 - -3 / 2)  # => 10.5

# Стало
print(((8 / 2) + 5) - (-3 / 2))  # => 10.5

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

Задание

Вы с 4 друзьями (итого 5 человек) заказали 2 пиццы по 300 рублей и 4 напитка по 50 рублей. Нужно разделить счет поровну.

Запишите программу из одной строки с print(), расставив скобки так, чтобы сначала посчиталась общая сумма, а затем делилась на всех:

без скобок:   2 * 300 + 4 * 50 / 5  =  640.0  ← неверно
со скобками:  (2 * 300 + 4 * 50) / 5  =  160.0  ← верно
Коммерческий опыт и Трудоустройство

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

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

Приоритет

Python: Приоритет

Рассмотрим простое выражение:

print(2 + 2 * 2)  # => 6

Результат равен 6, а не 8. Это объясняется понятием приоритета операций в математике и программировании. Он определяет порядок, в котором выполняются действия:

  • Умножение и деление выполняются раньше сложения и вычитания.
  • Возведение в степень (**) имеет еще более высокий приоритет.
Приоритет операций (от высокого к низкому):

  **          возведение в степень
   ↓
  * / // %    умножение, деление, остаток
   ↓
  + -         сложение, вычитание

Например:

print(2 * 2 ** 3)  # => 16, потому что сначала 2 ** 3 = 8, затем 8 * 2 = 16

Если рядом идут операции с одинаковым приоритетом, они выполняются слева направо:

print(8 / 2 * 3)  # => 12, потому что сначала 8 / 2 = 4, затем 4 * 3 = 12

Управление порядком действий

Иногда нужно изменить порядок вычислений. Для этого используются круглые скобки. Они позволяют задать, какие действия нужно выполнить в первую очередь:

print((2 + 2) * 2)  # => 8

Скобки можно ставить вокруг любой части выражения и вкладывать их друг в друга:

print(3 ** (4 - 2))  # => 9
print(7 * 3 + (4 / 2) - (8 + (2 - 1)))  # => 14

Главное правило: всегда закрывайте скобки. Непарные скобки вызывают ошибки: и новички, и опытные программисты иногда забывают про закрывающую скобку.

Пишите скобки сразу парой. Например, вводите () и потом заполняйте внутреннюю часть. Большинство редакторов кода (в том числе наш) автоматически добавляют закрывающую скобку, как только вы пишете открывающую.

Повышаем читаемость

Иногда выражение работает правильно, но выглядит запутанно. В таких случаях скобки можно добавить просто для наглядности: они не изменят результат, но улучшат восприятие.

# Было
print(8 / 2 + 5 - -3 / 2)  # => 10.5

# Стало
print(((8 / 2) + 5) - (-3 / 2))  # => 10.5

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

Задание

Вы с 4 друзьями (итого 5 человек) заказали 2 пиццы по 300 рублей и 4 напитка по 50 рублей. Нужно разделить счет поровну.

Запишите программу из одной строки с print(), расставив скобки так, чтобы сначала посчиталась общая сумма, а затем делилась на всех:

без скобок:   2 * 300 + 4 * 50 / 5  =  640.0  ← неверно
со скобками:  (2 * 300 + 4 * 50) / 5  =  160.0  ← верно
Коммерческий опыт и Трудоустройство

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

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

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

import importlib


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

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