Переменные в Python

Переменные в Python

В данной статье я расскажу, что такое переменные, как объявлять переменные и об их области видимости.

Введение

Переменные — это зарезервированная область памяти для хранения данных. Это метки, которые прикрепляются к объектам и действуют как указатель или ссылка на объект. Например:

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)

Правила объявления переменных:

  1. Название должно начинаться либо с «__», либо с какой-либо буквы. Название не может начинаться с каких-либо числовых значений.
  2. Переменные могут состоять только из буквенно-цифровых символов и символов подчеркивания (A-Z, a-z,0-9 и __).
  3. Переменные чувствительны к регистру. PyThon отличается от Python.
  4. Существуют определенные зарезервированные ключевые слова, такие как «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
variables.png

Здесь я определил три глобальные переменные «a»,»b» и «c». Все они изначально представляли собой целочисленные значения.

В функции «myfunc()» я представил глобальную переменную, добавив ключевое слово «global» перед «c». И как вы видите, когда я изменил значение «c» с «30» на «Hello World», оно изменилось глобально. Однако значение «a» сохранялось только в пределах области действия функции.

Это происходит потому, что Python проверяет существование переменной в двух местах: в функции и в глобальном пространстве имен. Когда я присвоил значение «a — 12», интерпретатор обнаружил, что это значение было определено внутри функции, и напечатал его значение. Здесь переменная «a» является локальной для функции, поэтому она исчезает, когда функция завершается.

Поскольку «b» не определена внутри функции, эту переменную искали в глобальном пространстве имен. Аналогично для «с», переменная увидела ключевое слово «global» и заглянула в глобальное пространство имен. Здесь переменная «c» рассматривается как глобальная переменная, и поэтому ее значение изменяется в глобальной области.

Более подробно про глобальные переменные можно почитать в отдельной статье

Заключение

В этой статье вы узнали основы переменных Python.

Теперь у вас должно быть четкое представление о переменных, о том, как объявлять переменные и об областях видимости.

Примечание: пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы, комментарии или проблемы. Основываясь на ваших предложениях, я обновлю эту статью более подробной информацией и иллюстрациями в будущем.

Егор Егоров

Программирую на Python с 2017 года. Люблю создавать контент, который помогает людям понять сложные вещи. Не представляю жизнь без непрерывного цикла обучения, спорта и чувства юмора.

Ссылка на мой github есть в шапке. Залетай.

Оцените автора
Егоров Егор
Добавить комментарий