undo
search menu close

Числа

📅 16 апреля 2025 г. 21:44

Числовые типы данных являются основой многих вычислительных задач. В 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 – число или строка, которую нужно преобразовать в целое число

Необязательные параметры:
base – основание системы счисления, в которой записано число в строке 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()?

 
Ответ
arrow_back_ios Назад
Дальше arrow_forward_ios

 💬 0 комментариев
person
email