Переменные в Питоне
На курсе «Программирование на Питоне» мы во многом продолжим изучать то, о чем узнали на вводном курсе, но на гораздо более детальном уровне. И начнем мы этот путь с того, что еще раз взглянем на переменные в Питоне.
Перед прохождением этого занятия рекомендую изучить первый раздел вводного курса или, как минимум, познакомиться с программой Google Colab, которую мы используем в нашей работе, а также повторить основы программирования.
Как объявить переменную в Питоне
Создание или объявление переменной в Питоне происходит в тот момент, когда вы присваиваете ей определенное значение. Это очень удобно. Заранее объявлять переменную не требуется.
Также напомню, что в Питоне можно записать значения сразу в несколько переменных или присвоить одно и то же значение нескольким переменным.
Помимо этого, список можно «распаковать» (unpack) в несколько переменных:
Автоматическое определение типа данных
При создании и записи данных в переменную Питон попытается автоматически определить тип этих данных. Приведем несколько примеров:
Это очень важная и удобная особенность, которая выгодно отличает Питон от многих других языков программирования.
Как узнать тип переменной в Питоне
В случае, если вы не уверены в том, к какому типу данных относится переменная, можно воспользоваться функцией type().
Присвоение и преобразование типа данных
Иногда может быть полезно принудительно присвоить или преобразовать тип данных уже созданной переменной. Начнем с присвоения типа данных:
Также тип данных можно изменить.
Возможно, вы спрашиваете себя зачем инженеру машинного обучения в таких деталях разбираться в типах переменных. Одним из наиболее очевидных применений является предварительная обработка данных, поступивших, скажем, в формате строки (str), хотя с точки зрения логики это должно быть целое число (int).
Именование переменных
Напомню, что имя переменной может включать только латинские буквы и цифры, а также символ подчеркивания. Одновременно оно не должно начинаться с цифры. Питон отличает заглавную от строчной буквы. Пробелы и кириллицу использовать нельзя.
Как я не устаю повторять, название переменных должно быть осознанным. Это упростит работу с длинным кодом.
Python — Имена переменных
Переменная может иметь короткое имя (например, x и y) или более информативное имя (age, carname, total_volume).
Правила для именования переменных Python:
- Имя переменной должно начинаться с буквы или символа подчеркивания
- Имя переменной не может начинаться с цифры
- Имя переменной может содержать только буквенно-цифровые символы и символы подчеркивания (A – z, 0–9 и _)
- Имена переменных чувствительны к регистру (age, Age и AGE — это три разные переменные)
Пример
Допустимые имена переменных:
Пример
Недопустимые имена переменных:
Помните, что имена переменных чувствительны к регистру!
Имена переменных из нескольких слов
Имена переменных, содержащие более одного слова, могут быть трудночитаемыми.
Есть несколько способов сделать их более читабельными:
Верблюжий регистр
Каждое слово, кроме первого, начинается с заглавной буквы:
Регистр Pascal
Каждое слово начинается с заглавной буквы:
Змеиный регистр
Каждое слово отделяется символом подчеркивания:
ПАЛИТРА ЦВЕТОВ
ПРИСОЕДИНЯЙТЕСЬ!
Связь с админом
Если вы хотите сообщить об ошибке, а также внести предложение о работе сайта, добавить объявление или рекламу на сайт, не стесняйтесь отправить админу электронное письмо на email:
Топ Учебники
Топ Справочники
Топ Примеры
Веб Сертификаты
Этот сайт оптимизирован для обучения и тестирования. Примеры могут быть упрощены для улучшения чтения и базового понимания. Учебные пособия, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность и работоспособность всего контента. Используя этот сайт, вы соглашаетесь с тем, что прочитали и приняли условия использования, cookie и политику конфиденциальности.
Также вы можете абсолютно бесплатно скачать офлайн версию сайта W3Schools на русском архивом с GitHub и пользоваться локально на своём компьютере.
Также доступна версия сайта W3Schools на украинском языке.
Copyright 1999-2023 by Refsnes Data. All Rights Reserved.
Сайт работает на фреймворке W3.CSS.
Переменные в Python — подробное руководство
Переменная Python — это идентификатор для ссылки на значение в программе. Переменная содержит место в памяти объекта. Они позволяют программе Python получать доступ к другим объектам и вызывать их функции или выполнять другие операции.
Правила для определения переменной Python
Есть несколько правил для определения переменной python.
- Имя переменной Python может содержать строчные буквы (a-z), прописные буквы (A-Z), цифры (0-9) и подчеркивание (_).
- Не может начинаться с числа.
- Мы не можем использовать зарезервированные ключевые слова в качестве имени переменной.
- Не может содержать только цифры.
- Может начинаться с символа подчеркивания или буквы.
- Чувствительны к регистру.
- Длина имени не ограничена.
Примеры допустимых имен
- abc
- _: Да, мы можем создать имя переменной как подчеркивание.
- __: Да, несколько знаков подчеркивания также являются допустимым.
- x_yAB
- _abc
Примеры недопустимых имен
- 9abc: не может начинаться с цифры.
- 123: не может содержать только числа.
- xy: единственный разрешенный специальный символ — это подчеркивание.
- def: недопустимо, потому что это зарезервированное ключевое слово.
Как объявить переменную в Python?
Python — это язык с динамической типизацией. Нам не нужно указывать тип переменной при ее объявлении. Переменная определяется знаком равенства. Левая часть содержит имя переменной, а правая часть — значение.
Давайте посмотрим на несколько примеров объявления.
Python также поддерживает множественное назначение. Мы можем определить несколько переменных одновременно, используя множественное присваивание.
Мы также можем присвоить последовательность списку переменных. В этом случае количество элементов в последовательности должно быть равно количеству переменных.
Посмотрим, что произойдет, если количество переменных и количество элементов в последовательности не равны.
Как вывести значение?
Мы можем использовать функцию Python print() для печати и вывода значения. Давайте посмотрим на несколько примеров.

Программы Python выполняются последовательно. Поэтому, если вы попытаетесь получить доступ к переменной до ее определения, вы получите NameError .
Советы
Если вы посмотрите на приведенные выше фрагменты кода, имена переменных случайны. Они не передают значения. Есть несколько рекомендаций, которым следует придерживаться.
Основываясь на приведенных выше передовых методах, мы можем изменить приведенный выше фрагмент кода, чтобы иметь правильные имена.
Как напечатать тип?
Мы не указываем тип переменной в программах на Python. Мы можем использовать функцию type() для определения типа.
Какие существуют типы?
Тип переменной Python — это тип данных ее значения. Python — это объектно-ориентированный язык программирования. Все в Python — это объект. Итак, переменные всегда являются экземпляром класса.
- x = 1: Здесь тип переменной x — int. Это относится к экземпляру класса int.
- message = «Hello»: Тип переменной сообщения — «str».
Область видимости переменной Python
Область видимости определяет область доступности переменной в программе. Переменные Python имеют две области действия:
- локальная область;
- глобальная область.
Локальная
Когда переменная определена внутри функции или класса, она доступна только внутри них. Они называются локальными, и их область действия ограничена только границей этой функции или класса.
Если мы попытаемся получить доступ к локальной переменной вне ее области видимости, мы получим NameError , это говорит, что она не определена.

- Функция print() внутри функции foo() может получить доступ к foo_var потому что она находится внутри ее области видимости.
- Функция print() вне функции foo() не может получить доступ к foo_var потому что она находится вне области видимости.
Давайте посмотрим на другой пример локальной переменной, определенной внутри класса. Область видимости — это класс для этого сценария.
Вывод: NameError: name ‘class_foo_var’ is not defined
Глобальная
Когда переменная не находится внутри функции или класса, она доступна из любой точки программы. Эти переменные называются глобальными.
Переменные, определенные внутри блоков кода, такие как if-else, for loop, while loop, try-except и т. Д., Добавляются в глобальную область видимости при условии, что код, объявляющий переменную, был выполнен. Давайте разберемся в этом на простом примере.
Var_else не определен, потому что код внутри блока else не был выполнен.
Давайте посмотрим на другой пример с блоком try-except.
Мы можем получить доступ, определенным внутри блока try и except, потому что они обе были выполнены.
Удаление
Мы можем удалить переменную, используя оператор del . Давайте посмотрим на простой пример.
Статическая
Переменные, определенные внутри класса, доступны по имени класса. Их также называют статическими, потому что они принадлежат классу.
Также могут быть доступны из объекта класса. Однако рекомендуется использовать статический доступ к классу.
Краткое описание функций globals() и locals()
- Функция Python globals() возвращает словарь глобальных переменных текущей области видимости.
- Функция Python locals() возвращает словарь локальных переменных текущей области видимости.
Мы можем использовать эти функции в любом месте кода, чтобы проверить, доступна ли переменная в этом месте или нет. Это встроенные функции в Python.

global ключевое слово
Мы можем получить доступ к глобальной переменной внутри функции. Но мы не можем это изменить. Мы должны использовать ключевое слово global чтобы изменить значение глобальной переменной внутри функции.
Посмотрим, что произойдет, когда мы попытаемся изменить значение внутри функции.
Причина проста. Когда мы используем оператор присваивания для изменения значения «name», он начинает обрабатываться как локальная переменная. Таким образом, доступ к нему внутри функции print() сбрасывает, потому что он не определен в этот момент.
Давайте используем ключевое слово global, чтобы изменить значение глобальной переменной.
nonlocal ключевое слово
Ключевое слово nonlocal используется для доступа к переменным, определенным вне области действия блока. Это всегда используется во вложенных функциях для доступа, определенным снаружи. Переменные всегда ищутся в ближайшей охватывающей области, за исключением глобальных.
Переменные в Python
В предыдущем руководстве поBasic Data Types in Python вы видели, как могут быть созданы значения различных типов данных Python. Но пока что все показанные значения были буквальными или постоянными значениями:
Если вы пишете более сложный код, вашей программе потребуются данные, которые могут изменяться по мере выполнения программы.
Here’s what you’ll learn in this tutorial: Вы узнаете, как каждый элемент данных в программе Python может быть описан абстрактным терминомobject, и вы узнаете, как управлять объектами, используя символические имена, называемыеvariables.
Бесплатная загрузка PDF: Шпаргалка по Python 3
__ Take the Quiz: Проверьте свои знания с помощью нашей интерактивной викторины «Переменные Python». По окончании вы получите оценку, чтобы вы могли отслеживать прогресс в обучении с течением времени:
Назначение переменной
Думайте о переменной как об имени, прикрепленном к определенному объекту. В Python переменные не нужно объявлять или определять заранее, как это происходит во многих других языках программирования. Чтобы создать переменную, вы просто назначаете ей значение, а затем начинаете использовать его. Присваивание выполняется с помощью единственного знака равенства ( = ):
Это читается или интерпретируется как « n присвоено значение 300 ». Как только это будет сделано, n можно использовать в операторе или выражении, и его значение будет заменено:
Так же, как буквальное значение может отображаться непосредственно из приглашения интерпретатора в сеансе REPL без необходимости в print() , так и переменная:
Позже, если вы измените значение n и снова воспользуетесь им, вместо него будет подставлено новое значение:
Python также позволяет присваивать цепочки, что позволяет присваивать одно и то же значение нескольким переменным одновременно:
Цепное присвоение, приведенное выше, назначает 300 одновременно переменным a , b и c .
Типы переменных в Python
Во многих языках программирования переменные статически типизированы. Это означает, что переменная первоначально объявляется имеющей определенный тип данных, и любое значение, присвоенное ей в течение срока ее службы, всегда должно иметь этот тип.
Переменные в Python не подпадают под это ограничение. В Python переменной может быть присвоено значение одного типа, а затем позднее переназначено значение другого типа:
Ссылки на объекты
Что на самом деле происходит, когда вы назначаете переменную? Это важный вопрос в Python, потому что ответ несколько отличается от того, что вы найдете во многих других языках программирования.
Python оченьobject-oriented language. Фактически, практически каждый элемент данных в программе на Python является объектом определенного типа или класса. (Этот пункт будет повторяться много раз в течение этих уроков.)
Рассмотрим этот код:
При представлении оператора print(300) интерпретатор делает следующее:
Создает целочисленный объект
Дает ему значение 300
Выводит это на консоль
Вы можете видеть, что целочисленный объект создается с помощью встроенной функции type() :
Переменная Python — это символическое имя, которое является ссылкой или указателем на объект. Как только объект назначен переменной, вы можете ссылаться на объект по этому имени. Но сами данные все еще содержатся в объекте.
Это назначение создает целочисленный объект со значением 300 и присваивает переменной n , указывающей на этот объект.
Следующий код проверяет, что n указывает на целочисленный объект:
Теперь рассмотрим следующее утверждение:
Что происходит, когда он выполняется? Python не создает другого объекта. Он просто создает новое символическое имя или ссылку m , которая указывает на тот же объект, на который указывает n .
Далее, предположим, что вы делаете это:
Теперь Python создает новый целочисленный объект со значением 400 , и m становится ссылкой на него.
Наконец, предположим, что этот оператор выполняется следующим образом:
Теперь Python создает строковый объект со значением «foo» и ссылается на него n .
Больше нет ссылки на целочисленный объект 300 . Он осиротел, и нет возможности получить к нему доступ.
Учебные пособия в этой серии иногда ссылаются на время жизни объекта. Жизнь объекта начинается с момента его создания, когда создается хотя бы одна ссылка на него. В течение времени жизни объекта, как вы видели выше, могут создаваться дополнительные ссылки на него, а также ссылки на него. Объект остается живым, пока на него есть хотя бы одна ссылка.
Когда количество ссылок на объект падает до нуля, он больше не доступен. В этот момент его время жизни истекло. В конечном итоге Python заметит, что он недоступен, и освободит выделенную память, чтобы ее можно было использовать для чего-то другого. На компьютерном жаргоне этот процесс обозначается какgarbage collection.
Идентичность объекта
В Python каждому создаваемому объекту присваивается номер, который однозначно его идентифицирует. Гарантируется, что никакие два объекта не будут иметь одинаковый идентификатор в течение любого периода, в течение которого их время жизни перекрывается. Как только счетчик ссылок на объект упадет до нуля и он будет обработан сборщиком мусора, как это произошло с объектом 300 выше, его идентификационный номер становится доступным и может использоваться снова.
Встроенная функция Python id() возвращает целочисленный идентификатор объекта. Используя функцию id() , вы можете убедиться, что две переменные действительно указывают на один и тот же объект:
После присвоения m = n , m и n оба указывают на один и тот же объект, что подтверждается тем фактом, что id(m) и id(n) возвращают одно и то же число. После переназначения m на 400 , m и n указывают на разные объекты с разными идентификаторами.
Deep Dive: кэширование небольших целочисленных значений
Из того, что вы теперь знаете о назначении переменных и ссылках на объекты в Python, следующее, вероятно, вас не удивит:
С помощью оператора m = 300 Python создает целочисленный объект со значением 300 и устанавливает m в качестве ссылки на него. Затем n аналогичным образом присваивается целочисленному объекту со значением 300 , но не тому же объекту. Таким образом, они имеют разные идентификаторы, что вы можете проверить по значениям, возвращаемым id() .
Здесь m и n отдельно назначаются целочисленным объектам, имеющим значение 30 . Но в этом случае id(m) и id(n) идентичны!
В целях оптимизации интерпретатор создает объекты для целых чисел в диапазоне [-5, 256] при запуске, а затем повторно использует их во время выполнения программы. Таким образом, когда вы назначаете отдельные переменные целочисленному значению в этом диапазоне, они фактически ссылаются на один и тот же объект.
Имена переменных
В примерах, которые вы видели до сих пор, использовались короткие и лаконичные имена переменных, например m и n . Но имена переменных могут быть более подробными. На самом деле, обычно это выгодно, потому что это делает назначение переменной более очевидным на первый взгляд.
Официально имена переменных в Python могут быть любой длины и могут состоять из прописных и строчных букв ( A-Z , a-z ), цифр ( 0-9 ) и символа подчеркивания ( _ с). Дополнительное ограничение заключается в том, что хотя имя переменной может содержать цифры, первый символ имени переменной не может быть цифрой.
Note: Одним из дополнений к Python 3 была полная поддержка Unicode, которая также позволяет использовать символы Unicode в имени переменной. Вы узнаете о Unicode более подробно в следующем уроке.
Например, все перечисленные ниже являются допустимыми именами переменных: