
Числовые типы данных в Python
Python предоставляет различные типы для работы с числами, что делает его мощным инструментом для математических вычислений. В этой статье мы подробно рассмотрим числовые типы данных и операции, которые можно с ними выполнять.
Основные числовые типы
В Python есть три основных числовых типа:
- Целые числа (int) — числа без дробной части
- Числа с плавающей точкой (float) — числа с дробной частью
- Комплексные числа (complex) — числа с действительной и мнимой частью
Целые числа (int)
Целые числа (тип int) представляют числа без дробной части:
# Положительные и отрицательные целые числа positive = 42 negative = -73 zero = 0 # Большие числа (в Python нет ограничения на размер целых чисел) big_number = 1234567890123456789012345678901234567890 # Двоичные, восьмеричные и шестнадцатеричные числа binary = 0b1010 # 10 в десятичной системе octal = 0o756 # 494 в десятичной системе hexadecimal = 0xFF # 255 в десятичной системе # Использование разделителя для удобства чтения больших чисел million = 1_000_000 # Это то же самое, что и 1000000
В отличие от многих других языков программирования, в Python целые числа имеют неограниченную точность, то есть они могут быть сколь угодно большими (ограничены только доступной памятью компьютера).
Числа с плавающей точкой (float)
Числа с плавающей точкой (тип float) представляют действительные числа с дробной частью:
# Числа с десятичной точкой price = 19.99 pi_approx = 3.14159 negative_float = -0.5 # Экспоненциальная запись (научная нотация) avogadro = 6.022e23 # 6.022 * 10^23 tiny = 1.6e-35 # 1.6 * 10^(-35)
Числа с плавающей точкой имеют ограниченную точность и могут представлять лишь приближенные значения некоторых десятичных дробей. Это может приводить к небольшим погрешностям в вычислениях:
# Пример ограниченной точности float >>> result = 0.1 + 0.2 >>> print(result) # Выведет 0.30000000000000004, а не точно 0.3
0.30000000000000004
Для финансовых вычислений, где требуется точность, рекомендуется использовать модуль decimal.
Комплексные числа (complex)
Комплексные числа (тип complex) содержат действительную и мнимую части, где мнимая часть обозначается суффиксом j или J:
# Создание комплексных чисел z1 = 3 + 4j z2 = complex(2, -3) # 2 - 3j # Получение действительной и мнимой частей real_part = z1.real # 3.0 imag_part = z1.imag # 4.0
Комплексные числа часто используются в инженерных расчетах, обработке сигналов и математических алгоритмах.
Арифметические операции
Python поддерживает все стандартные арифметические операции для числовых типов:
Основные операции
a = 10 b = 3 # Сложение sum_result = a + b # 13 # Вычитание diff_result = a - b # 7 # Умножение mult_result = a * b # 30 # Деление (всегда возвращает float) div_result = a / b # 3.3333333333333335 # Целочисленное деление (возвращает целую часть результата деления) floor_div = a // b # 3 # Остаток от деления remainder = a % b # 1 # Возведение в степень power = a ** b # 1000
Смешанные операции
При выполнении операций между различными числовыми типами Python автоматически преобразует типы по следующему правилу: int → float → complex
# int + float = float mixed1 = 5 + 3.14 # 8.14 (float) # float + complex = complex mixed2 = 2.5 + 3j # (2.5+3j) (complex)
Округление и управление точностью
Python предоставляет несколько функций для округления чисел:
# Округление до ближайшего целого rounded = round(3.14159) # 3 # Округление до указанного количества знаков после запятой rounded_pi = round(3.14159, 2) # 3.14 # Округление вниз (к меньшему целому) import math floor_value = math.floor(3.99) # 3 # Округление вверх (к большему целому) ceil_value = math.ceil(3.01) # 4 # Отбрасывание дробной части trunc_value = math.trunc(3.99) # 3
Математические функции
Модуль math предоставляет множество полезных математических функций:
import math # Константы pi = math.pi # 3.141592653589793 e = math.e # 2.718281828459045 # Тригонометрические функции (аргументы в радианах) sin_value = math.sin(math.pi / 2) # 1.0 cos_value = math.cos(math.pi) # -1.0 tan_value = math.tan(math.pi / 4) # 1.0 # Обратные тригонометрические функции asin_value = math.asin(1.0) # 1.5707963267948966 (π/2) # Логарифмы log_value = math.log(10) # натуральный логарифм, ln(10) = 2.302585092994046 log10_value = math.log10(100) # логарифм по основанию 10, log10(100) = 2.0 # Корни sqrt_value = math.sqrt(16) # квадратный корень, 4.0
Для работы с комплексными числами используется модуль cmath, который содержит аналогичные функции, но работающие с комплексными аргументами.
Случайные числа
Для генерации случайных чисел в Python используется модуль random:
import random # Случайное число от 0 до 1 random_float = random.random() # например, 0.7593696548501615 # Случайное целое число в диапазоне random_int = random.randint(1, 10) # случайное целое от 1 до 10 включительно # Случайное число с плавающей точкой в диапазоне random_range = random.uniform(1.5, 3.5) # например, 2.4378123553729193 # Случайный выбор из последовательности random_choice = random.choice([1, 3, 5, 7, 9]) # случайный элемент из списка
Числовые методы и функции
Python предоставляет несколько встроенных функций для работы с числами:
# Абсолютное значение abs_value = abs(-10) # 10 # Максимальное и минимальное значение max_value = max(1, 5, 3, 9, 2) # 9 min_value = min(1, 5, 3, 9, 2) # 1 # Сумма последовательности sum_value = sum([1, 2, 3, 4, 5]) # 15 # Преобразование других типов в числовые int_from_str = int("42") # 42 float_from_str = float("3.14") # 3.14
Проверка понимания
Проверим ваше понимание числовых типов данных:
Что будет результатом выражения 10 / 3 в Python?