>>> 9 // 5
1
>>> 9 % 5
4
Только что вы увидели кое-что новое: функцию с именем divmod, в которую
передаются целые числа 9 и 5, возвращающую двухэлементный результат, на-
зываемый кортежем. С кортежами вы познакомитесь в главе 3, а с функциями —
в главе 4.
Приоритет операций
Рассмотрим, что получится, если ввести следующее:
>>> 2 + 3 * 4
Если выполнить сложение первым, 2 + 3 равно 5, а 5 * 4 равно 20. Но если выполнить
первым умножение, 3 * 4 равно 12, а 2 + 12 равно 14. В Python, как и в большинстве
52
Глава 2. Ингредиенты Python: числа, строки и переменные
других языков, умножение имеет больший приоритет, нежели сложение, поэтому
вы увидите ответ, совпадающий со второй версией:
>>> 2 + 3 * 4
14
Как узнать приоритет той или иной операции? В приложении Е приводится
огромная таблица, в которой перечислены все приоритеты, но я обнаружил, что
на практике никогда не смотрю в эти правила. Гораздо проще добавить пару ско-
бок, чтобы сгруппировать код и вычисления так, как нужно:
>>> 2 + (3 * 4)
14
Это поможет любому человеку, читающему код, точно определить его предна-
значение.
Системы счисления
Предполагается, что целые числа указываются в десятичной системе счисления,
если только вы не укажете какую-либо другую. Вам может никогда не понадо-
биться использовать другие системы счисления, но иногда они будут встречать-
ся в коде.
Как правило, у нас десять пальцев на руках и ногах (у одного из моих котов их
немного больше, но он редко использует их для счета), поэтому мы считаем: 0, 1, 2,
3, 4, 5, 6, 7, 8, 9. После этого у нас заканчиваются цифры и мы переносим единицу
на место десятки и ноль — на место единицы: 10 означает «одна десятка и ноль
единиц». У нас нет одной цифры, которая представляла бы собой 10. Далее мы
считаем: 11, 12… 19, переносим единицу, чтобы сделать 20 (две десятки и ноль еди-
ниц), и т. д.
Система счисления указывает, сколько цифр вы можете использовать до того,
как перенести единицу. В двоичной (бинарной) системе счисления единственными
цифрами являются 0 и 1. Двоичные 0 и 1 точно такие же, как и десятичные. Одна-
ко, если в этой системе сложить 1 и 1, вы получите 10 (одна десятичная двойка
плюс ноль десятичных единиц).
В Python вы можете выразить числа в трех системах счисления помимо деся-
тичной:
0b или 0B для двоичной системы (основание 2);
0o или 0O для восьмеричной системы (основание 8);
0x или 0X для шестнадцатеричной системы (основание 16).