Переменные и типы данных
Учимся хранить данные в переменных и разбираемся, какие бывают типы данных в Python.
Переменная — это «ящик» с именем, в котором программа хранит значение, чтобы потом им воспользоваться.
Зачем нужны переменные
Пока наши программы выводили готовые значения. Но настоящие программы работают с данными, которые меняются: имя пользователя, счёт в игре, результат вычисления. Эти данные надо где-то хранить — для этого и придуманы переменные.
Представь подписанные коробки. На одной написано vozrast, и внутри лежит число 14. На другой — imya, и внутри текст «Аня». Когда программе понадобится возраст, она просто заглянет в коробку vozrast. Имя коробки придумываешь ты, а что в неё положить — решает программа.
Как создать переменную
Чтобы создать переменную, пишут её имя, знак = и значение. Знак = здесь — это не «равно» из математики, а команда «положи в коробку». Читается как «присвоить».
vozrast = 14
imya = "Аня"
print(imya)
print(vozrast)
print("Через год будет", vozrast + 1)
Вывод:
Аня 14 Через год будет 15
Мы положили в vozrast число 14, а в imya — текст. Дальше пользуемся ими по имени. Заметь: vozrast + 1 не изменил саму переменную — он просто посчитал значение на основе её содержимого.
Переменные можно менять
Слово «переменная» не зря — её значение можно перезаписать. Новое значение вытесняет старое, как будто ты вынул из коробки одно и положил другое.
schet = 0
print("Старт:", schet)
schet = schet + 10 # добавили 10 очков
print("После гола:", schet)
schet = schet + 5 # ещё 5 очков
print("Итого:", schet)
Вывод:
Старт: 0 После гола: 10 Итого: 15
Строка schet = schet + 10 сначала считает правую часть (0 + 10 = 10), а потом кладёт результат обратно в schet. Этот приём — «взять старое значение, изменить, сохранить» — встречается в программах постоянно.
Обмен значениями — классический трюк
Вот задачка, которая кажется простой, но ловит многих новичков: как поменять местами значения двух переменных? Пусть a = 1, b = 2, и надо сделать наоборот. Первая мысль — написать a = b, потом b = a. Но это не работает! После a = b обе переменные станут равны 2, и исходное значение a потеряется. Это как пытаться перелить воду из стакана в стакан без третьего стакана. Решение — завести временную переменную-«посредник»: сохранить в неё старое значение, а потом переставить. В Python, кстати, есть и красивый короткий способ — a, b = b, a, — но важно понимать, что происходит «под капотом». Этот пример показывает: с переменными надо обращаться аккуратно, ведь присваивание затирает старое значение безвозвратно.
Типы данных
В коробку-переменную можно положить разное, и Python различает типы данных. Для начала важны три:
| Тип | Что хранит | Пример |
int | целые числа | 14, -7, 0 |
float | дробные числа | 3.14, 36.6 |
str | строки (текст) | "Аня", "привет" |
Тип важен, потому что от него зависит, что можно делать со значением. Числа можно складывать и умножать, строки — соединять. А вот сложить число и текст напрямую нельзя — Python выдаст ошибку. Узнать тип помогает функция type.
Попробуй сам
Создадим переменные разных типов и попросим Python назвать тип каждой. Обрати внимание на дробные числа: разделитель — точка, а не запятая!
vozrast = 14 # целое число
rost = 1.65 # дробное число
imya = "Аня" # строка
print("Возраст:", vozrast, "— тип", type(vozrast))
print("Рост:", rost, "— тип", type(rost))
print("Имя:", imya, "— тип", type(imya))
# Со строками тоже можно работать: соединять
privetstvie = "Привет, " + imya + "!"
print(privetstvie)
Вывод:
Возраст: 14 — тип <class 'int'> Рост: 1.65 — тип <class 'float'> Имя: Аня — тип <class 'str'> Привет, Аня!
Поменяй значения и имя в переменных на свои. Попробуй соединить две строки знаком + — это называется «склеивание». А вот vozrast + imya вызовет ошибку: нельзя складывать число и текст. Попробуй и убедись сам — ошибки тоже учат.
Правила имён переменных
- Имя пишут латинскими буквами, можно с цифрами и знаком подчёркивания:
schet,moy_vozrast,x2. - Имя не может начинаться с цифры:
2x— нельзя,x2— можно. - В имени нет пробелов; слова разделяют подчёркиванием.
- Имя должно быть понятным:
vozrastлучше, чемv.
Переменные в действии: накопитель
Чтобы почувствовать, зачем переменные нужны по-настоящему, посмотрим на маленькую программу-«копилку». Она имитирует игру: за раунд начисляются очки, и переменная хранит их сумму. Без переменной это было бы невозможно — её значение «помнит» результат между действиями.
ochki = 0 # копилка, пока пусто
print("Начало игры, очков:", ochki)
ochki = ochki + 10 # собрал монетку
print("Нашёл монетку! Очков:", ochki)
ochki = ochki + 50 # победил врага
print("Победил врага! Очков:", ochki)
ochki = ochki - 20 # попал в ловушку
print("Ловушка! Очков:", ochki)
print("Итоговый счёт:", ochki)
Вывод:
Начало игры, очков: 0 Нашёл монетку! Очков: 10 Победил врага! Очков: 60 Ловушка! Очков: 40 Итоговый счёт: 40
Видишь, как переменная ochki «живёт» на протяжении всей программы и помнит накопленное? Каждая строка берёт прежнее значение, меняет его и сохраняет обратно. Поменяй числа или добавь свои события (например, бонус +100) — счёт пересчитается. Этот приём «копилки» лежит в основе игровых очков, корзины в интернет-магазине и счётчика лайков. Маленькая переменная — а сколько всего на ней держится!
Частые ошибки
- Использовать запятую в дробных числах. В Python разделитель — точка:
3.14, а не3,14. - Складывать число и строку.
14 + "лет"— ошибка; типы должны совпадать. - Путать
=и сравнение. Одно=— это присваивание (положить в коробку), а не проверка равенства.
Запомни
- Переменная — именованный «ящик» для хранения значения; создают через
имя = значение. - Знак
=означает «присвоить», а не «равно». - Основные типы:
int(целые),float(дробные),str(текст). - Дробные числа пишут через точку; узнать тип помогает
type.