← НАЗАД К КУРСУ Этап 1 · Урок 4 из 8

Урок 1.3 — Python: переменные и типы данных

Переменная — это имя для данных. Ты даёшь имя какому-то значению, чтобы потом использовать его в программе. Без переменных программа не может ничего запомнить.


Что такое переменная

Когда ты заполняешь профиль в Telegram — ты вводишь имя, и приложение его запоминает. В коде это работает точно так же: ты создаёшь переменную, кладёшь туда значение — и программа его помнит.

# Создаём переменную: имя = значение
name = "Катя"

# Теперь программа знает, что name — это "Катя"
# И ты можешь использовать это имя где угодно:
print(name)   # → Катя

Аналогия: Контакт в телефоне. Ты сохраняешь номер под именем "Мама". Теперь вместо того чтобы каждый раз набирать +7-999-123-45-67, ты просто нажимаешь "Мама". Переменная — это то же самое: имя, за которым стоит значение.


Зачем нужны переменные

Без переменных тебе пришлось бы каждый раз писать одно и то же значение заново:

# Без переменных — повторяешь "Катя" каждый раз
print("Привет, Катя!")
print("Катя, у тебя 3 новых сообщения")
print("Катя, твой заказ в пути")

# С переменной — меняешь в одном месте, работает везде
name = "Катя"
print(f"Привет, {name}!")
print(f"{name}, у тебя 3 новых сообщения")
print(f"{name}, твой заказ в пути")

# Если имя изменится — меняешь только первую строку
name = "Аня"
# И все три сообщения теперь будут для Ани

Типы данных

У каждого значения есть тип — что это за данные. Как в реальной жизни: имя — это текст, возраст — число, "подписан / не подписан" — да или нет.


Строка (string, str) — текст

Что это: Любой текст. Всегда в кавычках.

Зачем: Имена, сообщения, адреса, всё что является текстом.

# Строка — текст в кавычках (двойных или одинарных, без разницы)
name = "Катя"
message = 'Привет!'
emoji = "🔥"

# Строки можно соединять
greeting = "Привет, " + name   # → "Привет, Катя"

# Или использовать f-строку (f = format)
greeting = f"Привет, {name}!"  # → "Привет, Катя!"
# Внутри {} можно вставить любую переменную

Число целое (integer, int) — без дробной части

Что это: Целое число. Без точки, без кавычек.

Зачем: Возраст, количество подписчиков, номер страницы — всё, что считается целыми числами.

age = 25
followers = 15000
messages_count = 3

# С числами можно делать математику
total = 10 + 5       # → 15
double = age * 2      # → 50
remaining = 100 - 30  # → 70

Число дробное (float) — с точкой

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

Зачем: Цена, рейтинг, координаты — всё, где нужна точность после запятой.

price = 199.99
rating = 4.8
temperature = 36.6

# В Python дробная часть отделяется ТОЧКОЙ, не запятой
# 36,6 — ошибка
# 36.6 — правильно

Булево значение (boolean, bool) — да или нет

Что это: Только два значения: True (да, правда) или False (нет, ложь).

Зачем: Любой вопрос, на который ответ — да или нет. Пользователь залогинен? Подписка активна? Сообщение прочитано?

Аналогия: Переключатель — вкл/выкл. Уведомления в телефоне — включены (True) или выключены (False).

is_online = True       # пользователь онлайн? Да
is_premium = False     # подписка премиум? Нет
has_new_messages = True # есть новые сообщения? Да

# Булево значение получается из сравнений
age = 25
print(age > 18)    # → True  (25 больше 18? Да)
print(age == 30)   # → False (25 равно 30? Нет)
# == означает "равно ли?" (сравнение)
# = означает "присвоить" (записать значение)

Список (list) — набор значений по порядку

Что это: Упорядоченная коллекция элементов. В квадратных скобках.

Зачем: Лента постов, список контактов, история сообщений — любой набор элементов.

Аналогия: Лента Instagram. Посты идут по порядку: первый, второй, третий. Можно добавить новый, удалить старый, посмотреть конкретный по номеру.

# Список — значения в квадратных скобках, через запятую
friends = ["Аня", "Макс", "Дима"]

# Получить элемент по номеру (нумерация с 0, не с 1!)
print(friends[0])   # → "Аня"   (первый элемент)
print(friends[1])   # → "Макс"  (второй)
print(friends[2])   # → "Дима"  (третий)

# Добавить элемент
friends.append("Лена")   # теперь: ["Аня", "Макс", "Дима", "Лена"]

# Узнать сколько элементов
print(len(friends))   # → 4
# len = length = длина

Словарь (dictionary, dict) — данные с именами

Что это: Коллекция пар "ключ: значение". В фигурных скобках.

Зачем: Когда у данных есть названия. Профиль пользователя, настройки, ответ от API — всё это словари.

Аналогия: Профиль в соцсети. У каждого поля есть название (имя, город, возраст) и значение (Катя, Москва, 25).

# Словарь — пары ключ: значение в фигурных скобках
profile = {
    "name": "Катя",
    "age": 25,
    "city": "Москва",
    "is_premium": True
}

# Получить значение по ключу
print(profile["name"])    # → "Катя"
print(profile["city"])    # → "Москва"

# Добавить новое поле
profile["email"] = "katya@mail.ru"

# Это тот же формат что JSON (урок 1.2), только в Python-коде

None — пустота, ничего

Что это: Специальное значение, которое означает "ничего", "пусто", "нет данных".

Зачем: Когда значение ещё неизвестно или не существует.

Аналогия: Пустое поле в анкете. Не ноль, не пробел — именно "не заполнено".

middle_name = None   # отчество не указано
phone = None         # телефон не добавлен

# None — это не "0" и не "" (пустая строка)
# Это именно "данных нет"

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

name = "Катя"
age = 25
price = 199.99
is_online = True
friends = ["Аня", "Макс"]
profile = {"name": "Катя"}

# type() — функция, которая говорит тип данных
print(type(name))      # → <class 'str'>      строка
print(type(age))       # → <class 'int'>      целое число
print(type(price))     # → <class 'float'>    дробное число
print(type(is_online)) # → <class 'bool'>     булево
print(type(friends))   # → <class 'list'>     список
print(type(profile))   # → <class 'dict'>     словарь

f-строки — вставка переменных в текст

Ты будешь использовать это постоянно:

name = "Катя"
age = 25
city = "Москва"

# f перед кавычкой — и внутри {} можно вставлять переменные
message = f"Меня зовут {name}, мне {age} лет, живу в {city}"
print(message)
# → Меня зовут Катя, мне 25 лет, живу в Москва

Практика

Создай файл profile.py и напиши:

# Твой профиль
name = "Катя"          # замени на своё имя
age = 25               # замени на свой возраст
city = "Москва"        # замени на свой город
is_learning_ai = True
skills = ["терминал", "файлы", "переменные"]

print(f"Имя: {name}")
print(f"Возраст: {age}")
print(f"Город: {city}")
print(f"Изучаю AI: {is_learning_ai}")
print(f"Навыки: {skills}")
print(f"Количество навыков: {len(skills)}")

Запусти: python3 profile.py


Задачки на закрепление

Задача 1: Какой тип данных у каждого значения?

a = "Привет"
b = 42
c = True
d = 3.14
e = ["один", "два"]
f = None
Ответ - `a` — str (строка) - `b` — int (целое число) - `c` — bool (булево) - `d` — float (дробное число) - `e` — list (список) - `f` — NoneType (пустота)

Задача 2: Есть список. Как получить "Макс"?

users = ["Аня", "Макс", "Дима"]
Ответ
print(users[1])   # → "Макс"
# Нумерация с 0: Аня=0, Макс=1, Дима=2

Задача 3: Есть словарь. Как получить email?

user = {
    "name": "Катя",
    "email": "katya@mail.ru",
    "age": 25
}
Ответ
print(user["email"])   # → "katya@mail.ru"

Задача 4: Напиши f-строку, которая выведет: "Катя (25 лет) — Москва"

name = "Катя"
age = 25
city = "Москва"
Ответ
print(f"{name} ({age} лет) — {city}")

Задача 5: В чём разница?

a = "25"
b = 25
Ответ `a` — строка (текст "25"). С ней нельзя считать математику. `b` — число (целое 25). С ним можно: `b + 10` → `35`. `"25" + "25"` → `"2525"` (склейка текста) `25 + 25` → `50` (сложение чисел)

Глоссарий

Термин Что значит
Переменная Именованная «коробка», в которой хранится значение — число, текст или что-то ещё
Тип данных Категория значения, которая определяет, что с ним можно делать (складывать, склеивать и т.д.)
Строка (str) Текстовый тип данных — любой текст в кавычках, например "Привет"
Число (int, float) int — целое число (42), float — дробное число (3.14)
Булево (bool) Тип «да или нет» — принимает только два значения: True или False
Список (list) Упорядоченный набор значений в квадратных скобках: [1, 2, 3]
Словарь (dict) Набор пар «ключ-значение» в фигурных скобках: {"name": "Катя", "age": 25}
f-строка Строка с подстановкой переменных: f"Привет, {name}" — Python вставит значение вместо {name}
print() Функция, которая выводит значение на экран — главный способ увидеть результат работы кода
type() Функция, которая показывает тип данных переменной — полезна для отладки
None Специальное значение «ничего» — означает, что переменная пуста или результат отсутствует

Главное

Переменная — это имя для значения:
  name = "Катя"       — строка (str)
  age = 25             — целое число (int)
  pi = 3.14            — дробное число (float)
  active = True        — булево (bool)
  items = [1, 2, 3]    — список (list)
  user = {"name": "Катя"}  — словарь (dict)

Полезные функции:
  print(name)    — вывести значение на экран
  type(name)     — узнать тип переменной
  f"Мне {age}"   — подставить переменную в текст

Важно помнить:
  "25" и 25 — разные вещи (строка vs число)
  "25" + "25" → "2525"  (склейка текста)
  25 + 25     → 50      (сложение чисел)

  None — значит «ничего», переменная пуста

Что дальше?

В следующем уроке — Python: условия и циклы. Программа начнёт принимать решения и повторять действия.

← ПРЕДЫДУЩИЙ СЛЕДУЮЩИЙ →