На нескольких следующих страницах я покажу вам простые примеры того, как Python можно использовать в качестве очень сложного калькулятора.
Целые числа
Любая последовательность цифр в Python считается целым числом:
>>> 5
5
Можно использовать и простой ноль (0):
>>> 0
0
Но не ставьте его перед другими цифрами:
>>> 05
··File "<stdin>", line 1
····05
·····^
SyntaxError: invalid token
Только что вы увидели первое исключение в Python — программную ошибку. В нашем случае это предупреждение о том, что значение 05 — это invalid token (некорректный символ). Я объясню, что это значит, в подразделе «Системы счисления» далее. В этой книге вы увидите еще много примеров исключений, поскольку они являются основным механизмом обработки ошибок в Python.
Последовательность цифр указывает на целое число. Если вы поместите знак + перед цифрами, число останется прежним:
>>> 123
123
>>> +123
123
Чтобы указать на отрицательное число, вставьте перед цифрами знак —:
>>> -123
-123
С помощью Python вы можете выполнять обычные арифметические действия, как и с обычным калькулятором, используя операторы, показанные в предыдущей таблице. Сложение и вычитание будут работать, полностью соответствуя вашим ожиданиям:
>>> 5 + 9
14
>>> 100–7
93
>>> 4–10
-6
Вы можете работать с любым количеством чисел и операторов:
>>> 5 + 9 + 3
17
>>> 4 + 3–2 — 1 + 6
10
Замечание по стилю: не обязательно вставлять пробел между каждым числом и оператором:
>>> 5+9···+······3
17
Такой формат выглядит лучше, и его проще прочесть.
Умножение тоже довольно привычно:
>>> 6 * 7
42
>>> 7 * 6
42
>>> 6 * 7 * 2 * 3
252
Операция деления чуть более интересна, поскольку существует два ее вида:
• с помощью оператора / выполняется деление с плавающей точкой (десятичное деление);
• с помощью оператора // выполняется целочисленное деление (деление с остатком).
Даже если вы делите целое число на целое число, оператор / даст результат с плавающей точкой:
>>> 9 / 5
1.8
Целочисленное деление даст вам целочисленный ответ, отбрасывая остаток:
>>> 9 // 5
1
Деление на ноль с помощью любого оператора сгенерирует исключение:
>>> 5 / 0
Traceback (most recent call last):
··File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
>>> 7 // 0
Traceback (most recent call last):
··File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by z
Во всех предыдущих примерах используются непосредственно целочисленные значения. Вы можете смешивать целочисленные значения и переменные, которым было присвоено целочисленное значение:
>>> a = 95
>>> a
95
>>> a — 3
92
Ранее, когда мы выполнили операцию a — 3, мы не присвоили результат переменной a, поэтому ее значение не изменилось:
>>> a
95
Если вы хотите изменить значение переменной а, придется сделать следующее:
>>> a = a — 3
>>> a
92
Это обычно сбивает с толку начинающих программистов, потому что благодаря изучению математики в школе мы видим знак = и думаем, что он указывает на равенство. В Python выражение, стоящее справа от знака =, вычисляется первым и только затем присваивается переменной с левой стороны.