В данной статье я расскажу, что такое переменные, как объявлять переменные и об их области видимости.
Введение
Переменные — это зарезервированная область памяти для хранения данных. Это метки, которые прикрепляются к объектам и действуют как указатель или ссылка на объект. Например:
x = [1, 2, 3] y = x
В этом примере переменная «x» указывает на расположение в ячейке памяти [1, 2, 3] объекта. Когда мы создаем переменную «y» и приравниваем ее к «a», она указывает на ту же ячейку памяти [1, 2, 3]. И если мы решим добавить элемент в этот список, как показано ниже, то это изменение отразится как на «x», так и на «y»:
x.append(4)
Попробуйте сами!
Объявление переменной
Python — это динамически типизированный язык. Таким образом, в отличие от Java или C, когда мы инициализируем переменную, нам не нужно объявлять ее тип.
Хотя переменные представляют определенные значения, такие как «String» и «Int», имя переменной, указывающее на эти значения, необязательно должно иметь тип. Переменные — это просто ссылка на ячейку памяти.
Вы можете легко переопределить переменную, как только вы ее объявите. После повторного объявления переменной она просто указывает на другую ячейку памяти, и предыдущее значение теряется:
x = 4 type(x) x = "Test variable" type(a)
Правила объявления переменных:
- Название должно начинаться либо с «__», либо с какой-либо буквы. Название не может начинаться с каких-либо числовых значений.
- Переменные могут состоять только из буквенно-цифровых символов и символов подчеркивания (A-Z, a-z,0-9 и __).
- Переменные чувствительны к регистру. PyThon отличается от Python.
- Существуют определенные зарезервированные ключевые слова, такие как «if», «break», «class» и «del», которые не могут использоваться в качестве имен переменных. Список ключевых слов вы можете найти здесь.
Преобразование типов
Процесс преобразования объекта одного типа данных («integer», «string», «float») в другой, называется преобразованием типа в Python. Существует два типа преобразования типов:
- Неявное преобразование типов.
- Явное преобразование типов.
Более подробно про преобразование типов можно почитать в отдельной статье.
Область видимости
В Python есть два типа переменных. Локальные и глобальные:
- Локальные переменные: Всякий раз, когда Python выполняет функцию, он создает локальную среду, содержащую имена переменных и параметров, назначенных внутри функции. Переменные в этой локальной среде называются локальными переменными.
- Глобальные переменные: Переменная, созданная вне функции в глобальном пространстве имен, называется глобальной переменной. Эти переменные могут быть использованы в любой функции.
Чтобы еще больше прояснить наше понимание области видимости переменных и переопределения, давайте рассмотрим этот пример:
a = 10 b = 20 c = 30 def myfunc (): global c a = 12 c ="Hello World" print("Value of a inside the function: "+str(a)) print("Memory location of a inside func: "+str(id(a))) print("Value of b inside the function: "+str(b)) print("Memory location of c inside func: "+str(id(c))) print("Value of c inside the function: "+str(c)) myfunc() print("Memory location of a outside func: "+str(id(a))) print("Global variable a after running the func: "+ str(a)) print("Global variable b after running the func: "+ str(b)) print("Memory location of c outside func: "+str(id(c))) print("Global variable c after running the func: "+ str(c))
Вывод программы:
Value of a inside the function: 12 Memory location of a inside func: 140196548835392 Value of b inside the function: 20 Memory location of c inside func: 140196486430000 Value of c inside the function: Hello World Memory location of a outside func: 140196548835328 Global variable a after running the func: 10 Global variable b after running the func: 20 Memory location of c outside func: 140196486430000 Global variable c after running the func: Hello World
Здесь я определил три глобальные переменные «a»,»b» и «c». Все они изначально представляли собой целочисленные значения.
В функции «myfunc()» я представил глобальную переменную, добавив ключевое слово «global» перед «c». И как вы видите, когда я изменил значение «c» с «30» на «Hello World», оно изменилось глобально. Однако значение «a» сохранялось только в пределах области действия функции.
Это происходит потому, что Python проверяет существование переменной в двух местах: в функции и в глобальном пространстве имен. Когда я присвоил значение «a — 12», интерпретатор обнаружил, что это значение было определено внутри функции, и напечатал его значение. Здесь переменная «a» является локальной для функции, поэтому она исчезает, когда функция завершается.
Поскольку «b» не определена внутри функции, эту переменную искали в глобальном пространстве имен. Аналогично для «с», переменная увидела ключевое слово «global» и заглянула в глобальное пространство имен. Здесь переменная «c» рассматривается как глобальная переменная, и поэтому ее значение изменяется в глобальной области.
Более подробно про глобальные переменные можно почитать в отдельной статье
Заключение
В этой статье вы узнали основы переменных Python.
Теперь у вас должно быть четкое представление о переменных, о том, как объявлять переменные и об областях видимости.
Примечание: пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы, комментарии или проблемы. Основываясь на ваших предложениях, я обновлю эту статью более подробной информацией и иллюстрациями в будущем.