Мы уже познакомились с переменными и научились хранить в них данные. Теперь пришло время разобраться, какие бывают числа в Python и что с ними можно делать.
В этой статье мы разберём:
- int — целые числа (1, 100, -5, 0)
- float — числа с плавающей точкой (дробные: 3.14, -0.5, 2.0)
А ещё научимся складывать, вычитать, умножать, делить и даже возводить в степень.
- Что нужно знать перед началом
- Основная часть
- Целые числа (int)
- Числа с плавающей точкой (float)
- Арифметические операции
- Преобразование типов
- Особенности float (важно!)
- Задачи для закрепления
- Нюансы и подводные камни
- Отбрасывание vs округление
- Деление на ноль
- Целочисленное деление с отрицательными числами
- Частые ошибки и как их избежать
- Ошибка 1: Деление на ноль
- Ошибка 2: Путаница между / и //
- Ошибка 3: Прямое сравнение float
- Ошибка 4: Забыл преобразовать тип
- Шпаргалка (быстрый справочник)
- Заключение / Выводы
- КВИЗ
- Что дальше?
Что нужно знать перед началом
Для этого урока тебе понадобится:
- Установленный Python (первая статья)
- Базовое понимание переменных (вторая статья)
Если ты пропустил предыдущие уроки, лучше вернись и прочитай их. Числа будут использовать переменные, так что без них будет сложновато.
Совет: Открой VS Code и повторяй примеры прямо по ходу чтения. Математику легче понять, когда сам щёлкаешь примеры.
Основная часть
Целые числа (int)
Целые числа — это числа без дробной части. Например: -10, 0, 42, 100500.,
age = 25
year = 2025
temperature = -15С целыми числами можно делать всё, что ты привык в математике: складывать, вычитать, умножать, делить.
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335 (обрати внимание — результат float)Важно: Обычное деление
/всегда возвращает дробное число (float), даже если числа делятся нацело.
print(10 / 2) # 5.0 (float, а не int)Числа с плавающей точкой (float)
Float — это числа с дробной частью. Их ещё называют «вещественными» или «числами с плавающей точкой».
pi = 3.14159
price = 19.99
weight = -7.5Для десятичной части используется точка, а не запятая. Это важно!
Неправильно: price = 19,99 — Python не поймёт.
Правильно: price = 19.99
Арифметические операции
В Python есть все привычные математические операции + несколько специальных.
| Оператор | Что делает | Пример | Результат |
|---|---|---|---|
+ | Сложение | 5 + 3 | 8 |
- | Вычитание | 5 - 3 | 2 |
* | Умножение | 5 * 3 | 15 |
/ | Деление (всегда float) | 5 / 2 | 2.5 |
// | Целочисленное деление | 5 // 2 | 2 |
% | Остаток от деления | 5 % 2 | 1 |
** | Возведение в степень | 2 ** 3 | 8 |
Совет: Целочисленное деление
//и остаток%очень полезны, когда нужно разбить число на части (например, перевести секунды в часы и минуты).
Примеры:
a = 17
b = 5
print(a // b) # 3 (целая часть от деления)
print(a % b) # 2 (остаток)
hours = 150 // 60 # 2 часа
minutes = 150 % 60 # 30 минут
print(f"150 минут — это {hours} часа и {minutes} минут")Преобразование типов
Иногда нужно превратить число из одного типа в другой.
int()— превращает в целое число (отбрасывает дробную часть, не округляет!)float()— превращает в число с плавающей точкой
# Превращаем float в int
x = 3.99
y = int(x)
print(y) # 3
# Превращаем int в float
a = 5
b = float(a)
print(b) # 5.0
# Превращаем строку в число
price_str = "100"
price_int = int(price_str)
print(price_int + 50) # 150Внимание: Если попробовать превратить в число строку с буквами, будет ошибка.
int("hello")— не сработает.
Полезно: Преобразование типов часто нужно, когда ты получаешь данные от пользователя (через
input()) — они всегда приходят в виде строки, а тебе может понадобиться число.
age_str = input("Сколько тебе лет? ")
age = int(age_str)
print("Через год тебе будет", age + 1)Особенности float (важно!)
Числа с плавающей точкой имеют одну неприятную особенность: иногда они ведут себя странно.
print(0.1 + 0.2) # 0.30000000000000004Почему так происходит?
Компьютер хранит числа в двоичной системе. Некоторые десятичные дроби (например, 0.1) невозможно точно представить в двоичном виде. Поэтому Python (и любой другой язык) даёт небольшое приближение.
Что делать?
- Не сравнивай float напрямую:
if a + b == 0.3— плохая идея. - Используй «допуск» (очень маленькое число):
result = 0.1 + 0.2
if abs(result - 0.3) < 0.000001:
print("Примерно равно 0.3")- Или используй модуль
decimalдля точных финансовых расчётов (об этом в отдельной статье).
Совет: В большинстве обычных задач (графика, игры, физика) эта погрешность не страшна. Но в деньгах лучше не рисковать — используй целые числа (копейки) или
decimal.
Задачи для закрепления
Попробуй решить задачи самостоятельно. Ответы ниже, но сначала попробуй сам.
Задача 1. Создай переменные a = 15 и b = 4. Выведи:
- сумму
- разность
- произведение
- обычное деление
- целочисленное деление
- остаток
Задача 2. У тебя есть 137 секунд. Переведи их в минуты и секунды (целое число минут и остаток секунд).
Задача 3. Пользователь вводит свой возраст (строка). Преврати его в число и выведи, сколько ему будет через 10 лет.
Задача 4. Что выведет код? print(10 / 3) и print(10 // 3).
Задача 5. Напиши код, который проверяет, является ли число чётным (используй %).
Ответы (не подглядывай)
Задача 1
a = 15
b = 4
print(a + b) # 19
print(a - b) # 11
print(a * b) # 60
print(a / b) # 3.75
print(a // b) # 3
print(a % b) # 3Задача 2
seconds = 137
minutes = seconds // 60
secs = seconds % 60
print(f"{seconds} секунд — это {minutes} мин {secs} сек")Задача 3
age_str = input("Сколько тебе лет? ")
age = int(age_str)
print("Через 10 лет тебе будет", age + 10)Задача 4
print(10 / 3) # 3.3333333333333335
print(10 // 3) # 3Задача 5
number = 42
if number % 2 == 0:
print("Чётное")
else:
print("Нечётное")Нюансы и подводные камни
Отбрасывание vs округление
int() не округляет, а просто отбрасывает дробную часть.
print(int(3.9)) # 3Для округления используй функцию round().
print(round(3.9)) # 4Деление на ноль
Никогда не дели на ноль. Python выдаст ошибку ZeroDivisionError.
# print(10 / 0) # ZeroDivisionErrorЗапомни: Деление на ноль — одна из самых частых ошибок у новичков. Всегда проверяй, что знаменатель не ноль, особенно если он пришёл от пользователя.
if b != 0:
result = a / b
else:
print("На ноль делить нельзя")Целочисленное деление с отрицательными числами
// округляет вниз (к минус бесконечности), а не к нулю.
print(10 // 3) # 3
print(-10 // 3) # -4Если нужно округлить к нулю, лучше используй int() перед делением или математические ухищрения.
Частые ошибки и как их избежать
Ошибка 1: Деление на ноль
Как избежать: всегда проверяй знаменатель.
if b != 0:
result = a / b
else:
print("На ноль делить нельзя")Ошибка 2: Путаница между / и //
/— обычное деление, возвращает float//— целочисленное деление, возвращает int
Новички часто ждут от / целого числа, а получают дробное. Запомни разницу.
Ошибка 3: Прямое сравнение float
result = 0.1 + 0.2
if abs(result - 0.3) < 1e-10:
print("Равно")Как исправить: сравнивай с допустимой погрешностью.
if abs((0.1 + 0.2) - 0.3) < 1e-10:
print("Равно")Ошибка 4: Забыл преобразовать тип
age = int(input("Введи возраст: "))Как исправить: age = int(input("Введи возраст: "))
Шпаргалка (быстрый справочник)
| Что нужно | Как пишется |
|---|---|
| Целое число | x = 10 |
| Дробное число | y = 3.14 |
| Сложение | a + b |
| Вычитание | a - b |
| Умножение | a * b |
| Деление (float) | a / b |
| Целочисленное деление | a // b |
| Остаток | a % b |
| Степень | a ** b |
| Преобразовать в int | int(x) |
| Преобразовать в float | float(x) |
| Округлить | round(x) |
Заключение / Выводы
Сегодня мы узнали:
- int — целые числа
- float — дробные числа
- Арифметические операции:
+,-,*,/,//,%,** - Преобразование типов:
int(),float() - Особенности float: погрешности, сравнение с допуском
- Частые ошибки: деление на ноль, путаница с типами
КВИЗ
Что дальше?
- Следующая статья: «Строки в Python» — работа с текстом
Числа — основа основ. Если ты освоил эту тему, то полдела сделано. Теперь ты можешь писать программы, которые считают, сравнивают и принимают решения на основе чисел.





