Как использовать переменные в Python 3

Вступление

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

В этом руководстве будут рассмотрены некоторые основы переменных и их наилучшее использование в создаваемых вами программах Python 3.

Понимание переменных

В технических терминах переменная назначает место хранения для значения, которое связано с символическим именем или идентификатором. Имя переменной используется для ссылки на это сохраненное значение в компьютерной программе.

Вы можете думать о переменной как о метке с именем, которое вы привязываете к значению:

Variables in Python

Допустим, у нас есть целое число103204934813, и мы хотим сохранить его в переменной, а не постоянно набирать длинное число снова и снова. Вместо этого давайте воспользуемся чем-нибудь, что легко запомнить, например, переменнойmy_int:

my_int = 103204934813

Если мы будем думать о нем как о ярлыке, привязанном к значению, он будет выглядеть примерно так:

Python Variable Example

На метке написано имя переменнойmy_int, и она привязана к целочисленному значению103204934813.

Фразаmy_int = 103204934813 - этоassignment statement, состоящая из нескольких частей:

  • имя переменной (my_int)

  • assignment operator, также известный как знак равенства (=)

  • значение, которое привязывается к имени переменной (103204934813)

Вместе эти три части составляют оператор, который устанавливает переменнуюmy_int равной значению целого числа103204934813.

Как только мы устанавливаем переменную равной значению, мыinitialize или создаем эту переменную. Как только мы это сделаем, мы будем использовать переменную вместо значения. В Python переменные не требуют явного объявления перед использованием, как некоторые языки программирования; Вы можете начать использовать переменную прямо сейчас.

Как только мы установимmy_int равным значению103204934813, мы сможем использоватьmy_int вместо целого числа, так что давайте распечатаем его:

print(my_int)
Output103204934813

Используя переменные, мы можем быстро и легко выполнитьmath. Используяmy_int = 1040, вычтем целое значение 813:

print(my_int - 813)
Output103204934000

В этом примере Python выполняет вычисления за нас, вычитая 813 из переменнойmy_int, чтобы вернуть сумму103204934000.

Говоря о математике, переменные могут быть установлены равными результату математического уравнения. Давайте сложим два числа и сохраним значение суммы в переменнойx:

x = 76 + 145

Приведенный выше пример может выглядеть как то, с чем вы уже знакомы: алгебра. В алгебре буквы и другие символы используются для представления чисел и величин в формулах и уравнениях, так же, как переменные являются символическими именами, которые представляют значение типа данных. Для правильного синтаксиса Python вам необходимо убедиться, что ваша переменная находится слева от любых уравнений.

Давайте продолжим и напечатаемx:

print(x)
Output221

Python вернул значение221, потому что переменнаяx была установлена ​​равной сумме76 и145.

Переменные могут представлять любой тип данных, а не только целые числа:

my_string = 'Hello, World!'
my_flt = 45.06
my_bool = 5 > 9 #A Boolean value will return either True or False
my_list = ['item_1', 'item_2', 'item_3', 'item_4']
my_tuple = ('one', 'two', 'three')
my_dict = {'letter': 'g', 'number': 'seven', 'symbol': '&'}

Если вы напечатаете любую из перечисленных выше переменных, Python вернет то, чему эквивалентна эта переменная. Например, давайте поработаем с оператором присваивания дляlist data type выше:

my_list = ['item_1', 'item_2', 'item_3', 'item_4']
print(my_list)
Output['item_1', 'item_2', 'item_3', 'item_4']

Мы передали значение списка['item_1', 'item_2', 'item_3', 'item_4'] переменнойmy_list, а затем использовали функциюprint(), чтобы распечатать это значение, вызвавmy_list.

Переменные работают, вырезая небольшую область памяти на вашем компьютере, которая принимает определенные значения, которые затем связываются с этим пространством.

Переменные именования: правила и стиль

Именование переменных довольно гибкое, но следует помнить о некоторых правилах:

  • Имена переменных должны быть только одним словом (как без пробелов)

  • Имена переменных должны состоять только из букв, цифр и символа подчеркивания (_)

  • Имена переменных не могут начинаться с цифры

Следуя приведенным выше правилам, давайте рассмотрим как действительные, так и недействительные имена переменных:

действительный Недействительным Почему недействительный

my_int

my-int

Дефисы не допускаются

int4

4int

Не может начинаться с числа

MY_INT

$MY_INT

Нельзя использовать символы кроме_

другой_инт

другой int

Не может быть больше одного слова

При именовании переменных следует помнить о том, что они чувствительны к регистру, что означает, чтоmy_int,MY_INT,My_Int иmY_iNt - это совершенно разные переменные. Вам следует избегать использования одинаковых имен переменных в программе, чтобы гарантировать, что и вы, и ваши нынешние и будущие соавторы могут сохранять ваши переменные прямыми.

Напоследок несколько заметок о стиле. Условно говоря, при именовании переменных принято начинать их со строчной буквы и использовать подчеркивание при разделении слов. Начиная с заглавной буквы, недопустимо, и некоторые люди могут предпочесть camelCase или смешанные заглавные и строчные буквы при написании своих переменных, но это менее традиционный выбор.

Обычный стиль Нетрадиционный стиль Почему нетрадиционный

my_int

myInt

верблюд

int4

Int4

Первая буква верхнего регистра не является условной

my_first_string

myFirstString

верблюд

Самый важный выбор стиля, который вы можете сделать, - это быть последовательным. Если вы начинаете работать над существующим проектом, который использует camelCase в качестве имен переменных, то лучше продолжать использовать существующий стиль.

PEP 8 - это официальное руководство по стилю кода Python, в котором рассматриваются многие стилистические вопросы, которые могут у вас возникнуть в отношении Python. В целом, удобочитаемость и последовательность предпочтительнее других стилистических проблем.

Переназначение переменных

Как следует из словаvariable, переменные Python можно легко изменить. Это означает, что вы можете легко связать другое значение с ранее назначенной переменной с помощью простого переназначения.

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

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

Давайте сначала назначимx как целое число, а затем переназначим его какstring:

#Assign x to be an integer
x = 76
print(x)

#Reassign x to be a string
x = "Sammy"
print(x)
Output76
Sammy

Приведенный выше пример показывает, что мы можем сначала присвоить переменнойx и присвоить ей значение целого числа, а затем переназначить переменнуюx, присвоив ей на этот раз значение строки.

Если мы переписали программу так:

x = 76
x = "Sammy"
print(x)

Мы получили бы только второе назначенное значение в качестве вывода, так как это было самое последнее назначение:

OutputSammy

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

Множественное назначение

С Python вы можете назначить одно значение нескольким переменным одновременно. Это позволяет вам инициализировать несколько переменных одновременно, которые вы можете переназначить позже в программе самостоятельно или с помощью пользовательского ввода.

Посредством множественного присваивания вы можете установить переменныеx,y иz на значение целого числа0:

x = y = z = 0
print(x)
print(y)
print(z)
Output0
0
0

В этом примере все три переменные (x,y иz) присвоены одной и той же ячейке памяти. Каждый из них равен значению 0.

Python также позволяет назначать несколько значений нескольким переменным в одной строке. Каждое из этих значений может иметь другой тип данных:

j, k, l = "shark", 2.05, 15
print(j)
print(k)
print(l)
Outputshark
2.05
15

В приведенном выше примере переменнаяj была назначена строке"shark", переменнаяk была назначена float2.05, а переменнаяl была присвоено целому числу15.

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

Глобальные и локальные переменные

При использовании переменных в программе важно помнить оvariable scope. Область действия переменной относится к конкретным местам, в которых она доступна в коде данной программы. Это означает, что не все переменные доступны из всех частей данной программы - некоторые переменные будут глобальными, а некоторые локальными.

Global variables существуют внеfunctions. Local variables существуют внутри функций.

Давайте посмотрим на глобальные и локальные переменные в действии:

#Create a global variable, outside of a function
glb_var = "global"

#Define a function
def var_function():
    lcl_var = "local" #Create a local variable, inside function
    print(lcl_var)

#Call function to print local variable
var_function()

#Print global variable outside function
print(glb_var)
Outputlocal
global

Вышеупомянутая программа назначает глобальную переменнуюglb_var вне какой-либо функции, а затем определяет функциюvar_function(). Внутри функции назначается и распечатывается локальная переменнаяlcl_var. Программа заканчивается вызовомvar_function() и последующей печатьюglb_var.

Посколькуglb_var - глобальная переменная, мы можем ссылаться на нее вvar_function(). Давайте изменим небольшую программу выше, чтобы сделать это:

glb_var = "global"

def var_function():
    lcl_var = "local"
    print(lcl_var)
    print(glb_var) #Print glb_var within function

var_function()
print(glb_var)
Outputlocal
global
global

Теперь у нас есть дважды распечатанная глобальная переменнаяglb_var, потому что она выводится как функцией, так и вне функции.

Что если мы попытаемся вызвать локальную переменную вне функции?

glb_var = "global"

def var_function():
    lcl_var = "local"
    print(lcl_var)

print(lcl_var)
OutputNameError: name 'lcl_var' is not defined

Мы не можем использовать локальную переменную вне функции, для которой она назначена. Если мы попытаемся это сделать, мы получим взаменNameError.

Давайте посмотрим на другой пример, где мы используем одно и то же имя переменной для глобальной переменной и локальной переменной:

num1 = 5 #Global variable

def my_function():
    num1 = 10 #Use the same variable name num1
    num2 = 7 #Assign local variable

    print(num1) #Print local variable num1
    print(num2) #Print local variable num2

#Call my_function()
my_function()

#Print global variable num1
print(num1)
Output10
7
5

Поскольку локальная переменнаяnum1 назначается локально внутри функции, когда мы вызываем эту функцию, мы видим, чтоnum1 равно локальному значению10. Когда мы распечатываем глобальное значениеnum1 после вызоваmy_function(), мы видим, что глобальная переменнаяnum1 по-прежнему равна значению5.

Можно назначить глобальные переменные внутри функции с помощью оператора Pythonglobal:

def new_shark():
    #Assign variable as global
    global shark
    shark = "Sammy"

#Call new_shark() function
new_shark()

#Print global variable shark
print(shark)

Несмотря на то, что переменнаяshark была назначена локально в функцииnew_shark(), она доступна вне функции из-за оператораglobal, используемого перед назначением переменной в функции. Из-за этого оператораglobal, когда мы вызываемprint(shark) вне функции, мы не получаем ошибки. Хотя выcan назначаете глобальную переменную внутри функции, вам, вероятно, не нужно будет делать это часто, и вы должны ошибиться на стороне читаемого кода.

Следует также помнить, что если вы ссылаетесь на переменную внутри функции, не присваивая ей значение, эта переменная неявно является глобальной. Чтобы иметь локальную переменную, вы должны присвоить ей значение в теле функции.

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

Заключение

В этом руководстве были рассмотрены некоторые распространенные случаи использования переменных в Python 3. Переменные являются важным строительным блоком программирования, они служат символами, которые заменяют значениеdata type, которое вы используете в программе.