Краткий ответ
- Программа выведет:
1 11 - Значение
c:
- в левой программе:
c = 15 - в правой программе:
c = -4.0— в Python 3; если считать без учёта вещественного деления, то-4.
1. Первая программа
a = 10
b = a + 1
a = b - a
print(a, b)
Выполняем по порядку:
a = 10b = a + 1 = 10 + 1 = 11a = b - a = 11 - 10 = 1bпри этом осталось равно11
print(a, b) выводит числа через пробел:
1 11
2. Левая программа
a = 13
b = a % 5
b = b * 10
a = b // 5 - 3
b = b // 5 * 2
c = a + b
% — остаток от деления, // — целочисленное деление.
| Строка | Значение |
|---|---|
a = 13 |
a = 13 |
b = 13 % 5 |
b = 3 |
b = 3 * 10 |
b = 30 |
a = 30 // 5 - 3 |
a = 6 - 3 = 3 |
b = 30 // 5 * 2 |
b = (30 // 5) * 2 = 6 * 2 = 12 |
c = 3 + 12 |
c = 15 |
Важно: в выражении b // 5 * 2 сначала выполняется //, потом умножение — слева направо:
\[ 30 // 5 * 2 = (30 // 5) \cdot 2 = 6 \cdot 2 = 12 \]
3. Правая программа
a = 123
b = a // 10
b = b / 4 + 2
b = b * 25 + 2
c = a - b
| Строка | Значение |
|---|---|
a = 123 |
a = 123 |
b = 123 // 10 |
b = 12 |
b = 12 / 4 + 2 |
b = 3.0 + 2 = 5.0 |
b = 5.0 * 25 + 2 |
b = 125.0 + 2 = 127.0 |
c = 123 - 127.0 |
c = -4.0 |
Здесь важно различие:
//— деление нацело, результат целый;/— обычное деление, в Python 3 результат вещественный.
Поэтому в правой программе b становится вещественным числом, и c = -4.0. Если в вашем учебнике / условно считают целочисленным делением, то ответ будет c = -4.
Проверка принципа: выполняй строки сверху вниз, каждый раз подставляя текущие значения переменных; соблюдай приоритет операций: %, //, *, / — раньше, чем + и -; одинаковые по приоритету операции — слева направо.
