Числа в Python: int и float

Числа в Python: int и float Переменные и типы данных

Мы уже познакомились с переменными и научились хранить в них данные. Теперь пришло время разобраться, какие бывают числа в Python и что с ними можно делать.

В этой статье мы разберём:

  • int — целые числа (1, 100, -5, 0)
  • float — числа с плавающей точкой (дробные: 3.14, -0.5, 2.0)

А ещё научимся складывать, вычитать, умножать, делить и даже возводить в степень.

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python (первая статья)
  • Базовое понимание переменных (вторая статья)

Если ты пропустил предыдущие уроки, лучше вернись и прочитай их. Числа будут использовать переменные, так что без них будет сложновато.

Совет: Открой VS Code и повторяй примеры прямо по ходу чтения. Математику легче понять, когда сам щёлкаешь примеры.

Основная часть

Целые числа (int)

Целые числа — это числа без дробной части. Например: -10042100500.,

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 + 38
-Вычитание5 - 32
*Умножение5 * 315
/Деление (всегда float)5 / 22.5
//Целочисленное деление5 // 22
%Остаток от деления5 % 21
**Возведение в степень2 ** 38

Совет: Целочисленное деление // и остаток % очень полезны, когда нужно разбить число на части (например, перевести секунды в часы и минуты).

Примеры:

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
Преобразовать в intint(x)
Преобразовать в floatfloat(x)
Округлитьround(x)

Заключение / Выводы

Сегодня мы узнали:

  • int — целые числа
  • float — дробные числа
  • Арифметические операции: +-*///%**
  • Преобразование типов: int()float()
  • Особенности float: погрешности, сравнение с допуском
  • Частые ошибки: деление на ноль, путаница с типами

КВИЗ

Что дальше?

Числа — основа основ. Если ты освоил эту тему, то полдела сделано. Теперь ты можешь писать программы, которые считают, сравнивают и принимают решения на основе чисел.

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×