Числа в python
Целые числа
Нельзя ставить ноль (0
) перед другими цифрами, ибо:
Положительные и отрицательные числа:
При записи числа допускаются разделители в виде underscore _
, которые будут проигнорированы:
Системы счисления
Система счисления указывает, сколько цифр вы используете до того, как перенесете единицу.
Помимо десятичной, можно выразить числа еще в 3-х системах счисления, юзая префиксы для целых чисел:
0b
или0B
для двоичной системы (основание2
)0o
или0O
для восьмеричной системы (основание8
)0x
или0X
для шестнадцатеричной системы (основание16
)
Они удобны для битовых операций.
А можно наоборот:
Функция chr()
преобразует int
в его строковый эквивалент (состоящий из одного символа):
А функция ord()
- наоборот:
Преобразования типов
int
/ float
←> boolean
Функция
bool()
преобразовывает любой тип данный вboolean
.
Ненулевые значения преобразуются в True
:
Нулевые значения преобразуются в False
:
Кстати, булевы значения в арифметических операциях будут рассматриваться как 1
/ 1.0
и 0
/ 0.0
(в зависимости от int
/ float
):
float
←> int
При преобразовании из float
в int
просто отсекается всё, что находится после точки:
str
←> int
Если число в строке представлено не в иной СС, можно указать основание этой СС:
Но строки с float
числами преобразовываться не будут:
int
В Python 2 были ограничения на размер
int
, + был еще типаlong
.
В Python 3 переменная типа int может быть любого размера.
В python можно даже юзать гуголплексы (10 в степени гугол 🤓):
Во многих других ЯП такое число вызовет переполнение целочисленного значения и различные нежелательные последствия, так как компьютер не сможет предоставить все необходимое место. Python обрабатывает огромные целые числа порядка гугола без всяких проблем.
float
Соус: Книга “Простой Python” ⇒ Глава 3. “Числа”