2.2.1.2 Целые числа
Возможно, вы уже немного знаете о том, как компьютеры выполняют вычисления с числами. Возможно, вы слышали о двоичной системе и знаете, что это система, которую компьютеры используют для хранения чисел, и что они могут выполнять с ними любые операции.
Мы не будем здесь исследовать тонкости позиционных систем счисления, но скажем, что числа, обрабатываемые современными компьютерами, бывают двух типов:
Характеристика числового значения, определяющая его вид, диапазон и применение, называется типом.
Если вы закодируете литерал и поместите его в код Python, форма литерала определяет представление (type), которое Python будет использовать для хранения его в памяти.
А пока оставим в стороне числа с плавающей запятой (мы скоро к ним вернемся) и рассмотрим вопрос о том, как Python распознает целые числа.
Процесс почти такой же, как если бы вы написали их карандашом на бумаге - это просто набор цифр, составляющих число. Но есть оговорка - нельзя вставлять в число символы, не являющиеся цифрами.
Возьмем, к примеру, число одиннадцать миллионов сто одиннадцать тысяч сто одиннадцать. Если бы вы прямо сейчас взяли в руку карандаш, вы бы написали это число так: 11,111,111, или вот так: 11.111.111, или даже так: 11 111 111.
Понятно, что это положение облегчает чтение, особенно когда номер состоит из многих цифр. Однако Python не принимает такие вещи. Это запрещено. Однако Python позволяет использовать символы подчеркивания в числовых литералах. *
Следовательно, вы можете написать это число либо так: 11111111, либо так: 11_111_111.
ПРИМЕЧАНИЕ. * Python 3.6 представил символы подчеркивания в числовых литералах, что позволяет размещать одиночные символы подчеркивания между цифрами и после базовых спецификаторов для улучшения читаемости. Эта функция недоступна в более старых версиях Python.
А как мы кодируем отрицательные числа в Python? Как обычно - с добавлением минуса. Вы можете написать: -11111111 или -11_111_111.
Положительным числам не обязательно ставить знак плюса, но это допустимо, если вы хотите. Следующие строки описывают один и тот же номер: +11111111 и 11111111.
----- ----- ----- ----- -----
Целые числа: восьмеричные и шестнадцатеричные числа / Integers: octal and hexadecimal numbers
В Python есть два дополнительных соглашения, которые неизвестны миру математики.
0o123 - восьмеричное число с (десятичным) значением, равным 83.
Функция print() выполняет преобразование автоматически. Попробуй это:
print(0o123)
print(0x123)
Мы не будем здесь исследовать тонкости позиционных систем счисления, но скажем, что числа, обрабатываемые современными компьютерами, бывают двух типов:
- целые числа (integers), то есть те, которые лишены дробной части;
- и числа с плавающей запятой (floating-point numbers), которые содержат (или могут содержать) дробную часть.
Характеристика числового значения, определяющая его вид, диапазон и применение, называется типом.
Если вы закодируете литерал и поместите его в код Python, форма литерала определяет представление (type), которое Python будет использовать для хранения его в памяти.
А пока оставим в стороне числа с плавающей запятой (мы скоро к ним вернемся) и рассмотрим вопрос о том, как Python распознает целые числа.
Процесс почти такой же, как если бы вы написали их карандашом на бумаге - это просто набор цифр, составляющих число. Но есть оговорка - нельзя вставлять в число символы, не являющиеся цифрами.
Возьмем, к примеру, число одиннадцать миллионов сто одиннадцать тысяч сто одиннадцать. Если бы вы прямо сейчас взяли в руку карандаш, вы бы написали это число так: 11,111,111, или вот так: 11.111.111, или даже так: 11 111 111.
Понятно, что это положение облегчает чтение, особенно когда номер состоит из многих цифр. Однако Python не принимает такие вещи. Это запрещено. Однако Python позволяет использовать символы подчеркивания в числовых литералах. *
Следовательно, вы можете написать это число либо так: 11111111, либо так: 11_111_111.
ПРИМЕЧАНИЕ. * Python 3.6 представил символы подчеркивания в числовых литералах, что позволяет размещать одиночные символы подчеркивания между цифрами и после базовых спецификаторов для улучшения читаемости. Эта функция недоступна в более старых версиях Python.
А как мы кодируем отрицательные числа в Python? Как обычно - с добавлением минуса. Вы можете написать: -11111111 или -11_111_111.
Положительным числам не обязательно ставить знак плюса, но это допустимо, если вы хотите. Следующие строки описывают один и тот же номер: +11111111 и 11111111.
----- ----- ----- ----- -----
Целые числа: восьмеричные и шестнадцатеричные числа / Integers: octal and hexadecimal numbers
В Python есть два дополнительных соглашения, которые неизвестны миру математики.
- Первое соглашение позволяет нам использовать числа в восьмеричном представлении.
0o123 - восьмеричное число с (десятичным) значением, равным 83.
Функция print() выполняет преобразование автоматически. Попробуй это:
print(0o123)
- Второе соглашение позволяет нам использовать шестнадцатеричные числа. Таким числам должен предшествовать префикс 0x или 0X ( zero-x ).
print(0x123)