Step 1 (S-12059)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/2232/step/1


Мы изучили, что все объекты в Python характеризуется своим типом данных. Часто бывает удобно, а иногда просто необходимо для объекта создать имя и далее обращаться к этому объекту с помощью имени. Для этой цели в языках программирования придуманы переменные. Давайте посмотрим на примере, как используются переменные языке Python.

S-12059-1.png

В первой строчке мы объявляем переменную a и записываем в нее значение 2. Мы можем создать еще одну переменную b и записать в нее произвольное значение. Например: 3. Далее мы можем эти переменные использовать в произвольных выражениях.

S-12059-12.png

В третьей строчке мы используем функцию print, которой мы передаем выражение (a + b). Что происходит при этом? Функция print обращается по имени к переменной a, смотрит ее значение - 2, далее смотрит на значение переменной b, равное 3 и складывает их. Таким образом, результатом этой операции будет выведено число 5.

S-12059-11.png

Мы можем изменить значение переменной, фактически связать переменную a с новым значением - 6. Если мы выведем после этого сумму (a + b), то результат вычисления выражения соответственно изменится - (6 + 3) и будет равен 9.

S-12059-10.png

Мы можем при изменении значения переменной использовать уже существующие переменные. Например, можем в переменную b записать значение b + 2. Таким образом в значение b будет записано значение (3 + 2), чтобы проверить это выведем значение переменой b с помощью функции print и убедимся в этом.

S-12059-9.png

Обязательное условие - перед тем как использовать переменную мы должны ее проинициализировать - записать в нее некоторое значение. Если мы попробуем выполнить операцию print(c), то у нас произойдет ошибка, потому что переменная с еще не была объявлена и в нее не было записано какое-либо значение.

S-12059-8.png

Переменные инициализируется с помощью оператора присваивания. Операция присваивания выглядит следующим образом а = 2.

S-12059-2.png

Оператор присваивания - это просто значок равенства. Слева от оператора записывается имя переменной, а справа - значение, которое мы хотим связать с этой переменной. Во время выполнении программы существует специальный список переменных. Когда мы объявляем новую переменную, она добавляется в этот список и связывается с некоторым значением (каким-либо объектом), хранящемся в памяти. В данном случае этим объектом является число 2. Если мы захотим изменить значение переменной, то у нам необходимо имя переменной а связать с новым значением. Для этого напишем а = 5, после этого где-то в памяти выделится место под новый объект (число 5) и вместо связи с числом 2 появится новая связь с этим объектом (числом 5). Оператор присваивания является не симметричным оператором, мы не можем написать 2 = а. Имя переменой обязательно должно находиться слева от оператора присваивания.

Давайте еще раз внимательно посмотрим на то что происходит в нашем примере.

S-12059-3.gif

Изначально мы завели переменную а и связали ее со значением 2, далее мы добавили переменную b и связали ее со значением 3. Когда в выражениях встречаются эти переменные а и b, то на их место подставляются соответствующее значения: 2 и 3. После того как мы изменили значение переменной а, связав ее с числом 6, связь переменной а с числом 2 теряется и при последующем вычислении выражения (a + b) используются текущие значения переменных, соответственно 6 и 3.

Существует способ изменить переменную с помощью операторов приращения. Например, выражение а += 3 позволяет увеличить значение переменной а на 3. Фактически это тоже самое, что происходит с переменной а в присвоении а = а + 3.

S-12059-4.png

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

S-12059-13.png

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

S-12059-5.png

Имя переменной может содержать буквы (строчные и прописные), цифры и знак подчеркивания. Должно начинаться с буквы или подчеркивания. Не должно являться ключевым словом. Например, мы не можем завести переменную и назвать ее True, потому что True - это ключевое слово, обозначающее истину для логических тиаов данных. Регистр букв имеет значение. Таким образом, переменная а и переменная А, это две разных переменных. Если вы завели переменную а и далее в программе вызовете print(А), возникнет ошибка. Интерпретатор сообщит, что ничего не знает про переменную А.

В языке Python одна и та же переменная может связываться с объектами разных типов.

S-12059-6.png

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

Вообще, не совсем корректно говорить, что переменная имеет такой-то тип. Более правильным будет утверждение, что в конкретный момент выполнения программы конкретная переменная имеет такой-то тип, то есть связана с конкретным объектом этого типа. Этим Python отличается от многих других языков программирования с так называемой статической типизации, где тип переменной жестко зафиксирован.

Ссылки: https://www.8host.com/blog/ispolzovanie-peremennyx-v-python-3/

http://pep8.ru/doc/pep8/

https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B8%D0%BF%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F