Числа
Числовые типы данных являются основой многих вычислительных задач. В Python представлены целые, дробные и комплексные числа, с которыми можно выполнять широкий спектр арифметических операций и использовать разнообразные математические функции.
Целые числа: тип int
Целые числа в Python представлены типом int
(от англ. integer – целое число). Они широко используются в математике и программировании для представления количественных величин, порядковых номеров и многого другого.
Создать переменную целочисленного типа очень просто: достаточно присвоить ей целое числовое значение:
height = 25
students = 40
x = 5
Системы счисления
По умолчанию целые числа в Python интерпретируются как десятичные (используются цифры 0-9). Однако с помощью специальных префиксом можно задавать целые числа в других системах счисления.
Система счисления | Префикс | Алфавит | Функция перевода из десятичной системы счисления | Пример |
---|---|---|---|---|
Двоичная | 0b |
Цифры 0 и 1 | bin(x) |
0b1000111 , 0b0011 , 0b1101 |
Восьмеричная | 0o |
Цифры от 0 до 7 | oct(x) |
0o107 , 0o1333 , 0o64 |
Шестнадцатеричная | 0x |
Цифры от 0 до 9 и буквы от A до F | hex(x) |
0x47 , 0xA37 , 0xB3 |
Создадим целые числа в двоичной, восьмеричной и шестнадцатеричной системах счисления:
binary_number = 0b101101
octal_number = 0o173
hexadecimal_number = 0xA9
И преобразуем десятичное целое число 24
в другие системы счисления:
decimal_number = 24
print(bin(decimal_number))
# Вывод: 0b11000
print(oct(decimal_number))
# Вывод: 0o30
print(hex(decimal_number))
# Вывод: 0x18
Обратите внимание, что функции bin()
, oct()
и hex()
возвращают строки, которые начинаются с одного из префиксов, обозначающих систему счисления (0b
, 0o
, 0x
).
Преобразование в целое число
Универсальным инструментом для преобразования других чисел и строк в целое число (типа int
) является функция int()
.
Функция | int(x, base=10) |
Описание | Возвращает целое число, полученное из числа или строки x |
Параметры | x – число или строка, которую нужно преобразовать в целое числоНеобязательные параметры: – основание системы счисления, в которой записано число в строке x , по умолчанию base=10 |
Возвращаемое значение | Целое число |

Отсутствие пробелов в base=10
не является ошибкой или опечаткой. Согласно PEP 8, при присваивании значения параметру функции не следует ставить пробелы до и после знака =
. Поэтому если base
является параметром функции, пробелы не ставятся, но если вы создаёте переменную с именем base
, то вокруг оператора присваивания должно быть по одному пробелу.
Используем функцию int()
и преобразуем несколько строк в десятичные целые числа:
print(int("224"))
# Вывод: 224
print(int("1248"))
# Вывод: 1248
Если строка содержит число в другой системе счисления, необходимо указать основание (параметр base
). При этом префикс системы счисления в строке указывать не нужно:
print(int("11101001", base=2))
# Вывод: 233
print(int("723", base=8))
# Вывод: 467
print(int("A37", base=16))
# Вывод: 2615
Но если вы уже имеете число с префиксом (например, полученное от функций bin()
, oct()
, hex()
), то при использовании int()
без указания base
префикс будет автоматически распознан:
print(int(0b100101))
# Вывод: 37
print(int(0o272))
# Вывод: 186
print(int(0x102B))
# Вывод: 4139
При преобразовании чисел с плавающей точкой в целые, дробная часть просто отбрасывается (без округления):
print(int(20))
# Вывод: 20
print(int(1.2))
# Вывод: 1
print(int(7.999))
# Вывод: 7
Неограниченность диапазона целых чисел
Одной из замечательных особенностей Python является то, что диапазон целых чисел практически не ограничен и зависит только от объема доступной оперативной памяти вашего компьютера. Это означает, что вы можете работать с очень большими целыми числами без опасения переполнения, которое встречается в некоторых других языках программирования:
n = 78446744073709551615
Для улучшения читаемости больших чисел в коде можно использовать символ подчеркивания _
в качестве разделителя тысяч (или любой другой группы разрядов). Python игнорирует эти подчеркивания при интерпретации числа:
n = 78_446_744_073_709_551_615
print(n)
# Вывод: 78446744073709551615
Дробные числа: тип float
Дробные числа в Python представлены типом данных float
(от англ. floating-point arithmetic – арифметика с плавающей точкой). Они используются для представления чисел, имеющих дробную часть.
Создать переменную типа float
можно, присвоив ей число с десятичной точкой:
score = 0.54
temperature = 36.6
weight = 68.0
Экспоненциальная запись дробных чисел
Для представления очень больших или очень маленьких дробных чисел удобно использовать экспоненциальную запись (научную нотацию). В Python для этого используется символ e
(или E
), который означает «умножить на 10 в степени».
Например, рассмотрим следующие переменные:
point = 0.0000000014
radius = 2100000000
Экспоненциальная запись сделает их значения более наглядными, так как позволит сразу оценить размер числа и количество нулей:
point = 1.4e-9
radius = 2.1e9
- Мантиссы – десятичное число, например,
1.4
или2.1
- Символа экспоненты –
e
илиE
- Показателя степени – целое число, указывающее степень десятки, например,
9
или-9
Поэтому число 1.4e-9
означает 1.4×10−9, а число 2.1e9
– это 2.1×109.
Преобразование в число с плавающей точкой
Для преобразования других типов данных в числа с плавающей точкой используется функция float()
.
Функция | float(x) |
Описание | Возвращает число с плавающей точкой, полученное из числа или строки x |
Параметры | x – число или строка, которую нужно преобразовать в число с плавающей точкой |
Возвращаемое значение | Число с плавающей точкой |
Переведём несколько чисел из строкового типа в тип числа с плавающей точкой:
print(float("2.57"))
# Вывод: 2.57
print(float("-12.5679"))
# Вывод: -12.5679
Целые числа так же можно преобразовать в вещественные:
print(float(2))
# Вывод: 2.0
print(float(10))
# Вывод: 10.0
1. Каким типом данных представлены результаты перевода числа из десятичной системы счисления в другую с помощью функций bin()
, oct()
и hex()
?
2. Что будет выведено на экран в результате выполнения данного кода?
print(int(12.1))
print(int(9.99))
3. Каким типом данных в Python представлены дробные числа?
4. Представьте значения следующих переменных в экспоненциальной записи:
x = 12000000000
y = 0.00000071
5. Что делает функция float()
?