Переменные
Чему вы научитесь:
- создавать переменные и менять их значения;
- объяснять, почему после
b = aиa = 20вbостаётся старое значение; - различать типы
int,float,str,boolиNoneи узнавать тип черезtype(); - превращать строку в число и число в строку через
int(),float()иstr().

Представьте багажную бирку на длинной нитке. На бирке написано price, а нитка привязана к круглому жетону с числом 250. Бирка и жетон — два разных предмета: бирка не хранит число внутри, она только указывает на жетон.
Так устроены переменные в Python. Имя — это бирка, а значение — жетон, к которому она привязана.
Зачем вообще нужны имена? Программа часто использует одно значение в нескольких строках: цену товара, счёт в игре, число попыток. Если писать само число в каждой строке, при смене цены придётся исправлять их все. Вместо этого значению дают имя и дальше пишут имя:
price = 250
count = 3
print(price * count) # 750
print(price, count) # 250 3Давайте разберём пример по строкам:
price = 250привязывает биркуpriceк жетону250.count = 3привязывает биркуcountк жетону3.print(price * count)находит оба жетона по биркам, умножает числа и печатает750.print(price, count)печатает250 3: значения, на которые указывают бирки, а не сами имена.
Если цена изменится, достаточно поправить одну первую строку.
Имя и объект
Строка price = 250 — это присваивание. Python вычисляет выражение справа от = и связывает с результатом имя слева. Такое имя называют переменной. Объявлять переменную заранее не нужно: она появляется при первом присваивании.
Само значение 250 хранится в памяти как объект — это и есть жетон. Переменная только ссылается на объект. Когда print получает имя, он печатает объект, на который это имя ссылается.
Знак = — не равенство из математики, а команда. Сначала вычисляется правая часть, и только потом имя связывается с результатом. Поэтому запись x = x + 1 имеет смысл: Python берёт текущее значение x, прибавляет к нему 1 и перевязывает бирку x на новый объект.
Переприсваивание
Новое присваивание перевязывает бирку на другой объект. Другие бирки при этом остаются на месте:
a = 10
b = a
a = 20
print(a, b) # 20 10Разберём по шагам:
a = 10привязывает биркуaк объекту10.b = aне связываетbс именемa. Она привязывает вторую биркуbк тому же объекту10, на который сейчас указываетa.a = 20перевязывает на новый объект20только биркуa.print(a, b)печатает20 10: биркаbпо-прежнему висит на10.
Нажмите «Следующий шаг» и следите за y: после строки x = 7 её значение остаётся прежним.
1x = 52y = x3print(x, y)4x = 75print(x, y)6y = y + 17print(x, y)
Бирка x привязана к объекту 5.
Этот вопрос часто задают на собеседовании: «Изменится ли b, если после b = a присвоить a новое значение?» Ответ — нет. Присваивание перевязывает только ту бирку, имя которой стоит слева от =.
Здесь аналогия с биркой перестаёт работать: бирки без жетона не бывает. Имя появляется только в момент присваивания, сразу вместе с объектом. До этого такой бирки у Python нет.
Короткие формы += и -=
Запись score += 5 — короткая форма score = score + 5. Так же работают -= и *=:
score = 0
score += 5
score -= 2
print(score) # 3Давайте разберём по шагам:
score = 0задаёт начальное значение.score += 5берёт0, прибавляет5и перевязываетscoreна5.score -= 2берёт5, вычитает2, и теперьscoreуказывает на3.print(score)печатает3.
Имена переменных
Для имён в Python действуют три правила:
- по PEP 8 имена пишут строчными буквами, а слова разделяют подчёркиванием:
item_count,max_speed; - имя не начинается с цифры;
- регистр букв важен:
Scoreиscore— две разные переменные.
Частая ошибка
Запись += использовали для переменной, которой ещё ничего не присвоили:
total += 5 # ✗
print(total)NameError: name 'total' is not definedtotal += 5 сначала читает текущее значение total, а его нет: бирки total ещё не существует. Программа останавливается на этой строке с ошибкой NameError. Перед первым += переменной нужно присвоить начальное значение, например total = 0.
Главное
- Переменная — имя-бирка, которое ссылается на объект; она появляется при первом присваивании.
=сначала вычисляет правую часть, а потом привязывает к результату имя слева.- После
b = aобе бирки висят на одном объекте, аa = 20перевязывает толькоa. x += 1— короткая формаx = x + 1, и до неё уxуже должно быть значение.
Подпишись, чтобы пройти курс
Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.