Python является строго типизированным языком, а это означает, что тип объекта
не изменится, даже если можно поменять его значение (рис. 2.2).
Рис. 2.2. Строгая типизация не означает, что нужно нажимать клавиши
со строгим выражением лица
Переменные, имена и объекты
45
Языки программирования также позволяют вам определять переменные. Пере-
менные являются именами, которые ссылаются на значения в памяти компьютера.
Вы можете определить их для использования в своей программе. В Python символ =
применяется для присваивания значения переменной.
В школе нас всех учили, что символ = означает «равно». Почему же во многих языках про-
граммирования, включая Python, этот символ используется для обозначения присваивания?
Одна из причин — на стандартной клавиатуре отсутствуют логические альтернативы вроде
стрелки влево, а символ = не слишком сбивает с толку. Кроме того, в компьютерных про-
граммах присваивание используется чаще проверки на равенство.
В следующей программе целое число 7 присваивается переменной с именем a, затем
на экран выводится значение, связанное в текущий момент с этой переменной:
>>> a = 7
>>> print(a)
7
Сейчас пришло время сделать очень важное заявление о переменных в Python:
переменные — это просто имена. Присваивание не копирует значение, оно при-
крепляетимя к объекту, который содержит данные. Имя — это ссылка на какой-то
объект, а не сам объект. Имя можно рассматривать как стикер (рис. 2.3).
Рис. 2.3. Имена прикрепляются к объектам
Попробуйте сделать следующее с помощью интерактивного интерпретатора.
1. Как и раньше, присвойте значение 7 имени a. Это создаст объект-«ящик», со-
держащий целочисленное значение 7.
46
Глава 2. Ингредиенты Python: числа, строки и переменные
2. Выведите на экран значение а.
3. Присвойте а переменной b, заставив b прикрепиться к объекту-«ящику», со-
держащему значение 7.
4. Выведите значение b.
>>> a = 7
>>> print(a)
7
>>> b = a
>>> print(b)
7
В Python, если вы хотите узнать тип какого-то объекта (переменной или значе-
ния), вам следует использовать конструкцию type(объект). Попробуем сделать это
для разных значений (58, 99.9, abc) и переменных (a, b):
>>> type(a)
<class 'int'>
>>> type(b)
<class 'int'>
>>> type(58)