Learnly
Python с нуля/Глава 4/Урок 2

Типы данных: числа, текст, булево

Типы данных: числа, текст, булево

Не все значения одинаковы. Число 42 и текст "42", это разные вещи для Python. Чтобы работать с данными, нужно понимать их типы.

Зачем вообще нужны типы

Представь, что ты складываешь две вещи. "2 + 2", это 4. Но "2" + "2", это "22" (два текста склеились). Один и тот же символ "+" ведёт себя по-разному в зависимости от типа данных.

Python нужно знать тип, чтобы понимать что делать с данными.

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

Любое целое число, положительное, отрицательное, ноль:

age = 25
temperature = -10
users_count = 1_000_000   # подчёркивание для читаемости

Над числами можно выполнять математику:

a = 10
b = 3

print(a + b)   # 13, сложение
print(a - b)   # 7, вычитание
print(a * b)   # 30, умножение
print(a / b)   # 3.333..., деление (всегда даёт дробное число!)
print(a // b)  # 3, целочисленное деление (без остатка)
print(a % b)   # 1, остаток от деления
print(a ** b)  # 1000, возведение в степень

Дробные числа (float)

Числа с дробной частью:

height = 1.82
pi = 3.14159
price = 99.99

Важно знать: дробные числа в компьютере хранятся приблизительно. Это не баг Python, это особенность математики с плавающей точкой:

print(0.1 + 0.2)   # 0.30000000000000004, не 0.3!

Для денежных расчётов используют специальный модуль decimal, а не обычный float.

Текст (str, строка)

Любой текст в кавычках, это строка:

name = "Алекс"
city = 'Москва'          # одинарные или двойные, без разницы
message = "Привет!"
empty = ""               # пустая строка, тоже строка

Строки можно складывать (конкатенировать):

first = "Привет"
second = "мир"
print(first + ", " + second + "!")   # Привет, мир!

И умножать:

print("=" * 20)   # ====================

Булево значение (bool)

Только два варианта, True (истина) или False (ложь):

is_active = True
is_deleted = False
has_subscription = True

Чаще всего появляются как результат сравнений:

print(5 > 3)    # True
print(5 < 3)    # False
print(5 == 5)   # True  (двойное == это проверка равенства)
print(5 != 3)   # True  (не равно)

Как узнать тип переменной

age = 25
name = "Алекс"
price = 99.99
active = True

print(type(age))     # <class 'int'>
print(type(name))    # <class 'str'>
print(type(price))   # <class 'float'>
print(type(active))  # <class 'bool'>

💡 Главная мысль: Каждое значение имеет тип. Тип определяет что с ним можно делать. Числа складываются математически, строки, конкатенируются. Это важно понимать, чтобы не удивляться неожиданному поведению.