- №27 Инструкции и выражения / для начинающих
- Инструкции в Python
- Что такое инструкция?
- Что такое выражение?
- Простая операция присваивания
- Пример 1. С правой стороны — выражение со значением
- Пример 2. С правой стороны — существующая переменная Python
- Пример 3. С правой стороны — операция
- Дополненная инструкция присваивания
- Инструкция в несколько строк
- 1. Явное продолжение строки
- 2. Неявное продолжение строки
- Отступы в Python
- Сколько места занимает один отступ
- Почему отступы так важны в Python?
- Выводы
№27 Инструкции и выражения / для начинающих
Этот материал посвящен инструкциям и выражениям в Python, а также отличиям между ними. Также речь пойдет об инструкциях, занимающих несколько строк, и отступах в Python. Попробуем ответить на вопрос: «Почему отступы так важны в Python?»
Инструкции в Python
Что такое инструкция?
Инструкция в Python — это логическая инструкция, которую интерпретатор Python может прочесть и выполнить. Она может являться выражением или оператором присваивания в Python.
Присваивание — фундаментальный элемент этого языка. Он определяет способ создания и сохранения объектов с помощью выражений.
Что такое выражение?
Выражение — один из типов инструкции, который содержит логическую последовательность чисел, строк, объектов и операторов python. Значение и переменная являются выражениями сами по себе.
С помощью выражений можно выполнять такие операции, как сложение, вычитание, конкатенация и другие. Они также могут представлять собой вызовы функций, которые возвращают результат.
# Использование арифметических выражений
>>> ((20 + 2) * 10 / 5 - 20)
24.0
# Использование функций в выражении
>>> pow(2, 10)
1024
# Использование eval в выражении
>>> eval("2.5+2.5")
5.0Простая операция присваивания
В случае простого присваивания создаются новые переменные, которым присваиваются значения. Их можно менять. Инструкция предоставляет выражение и имя переменной в качестве метки для сохранения значения выражения.
# Синтаксис
variable = expressionРассмотрим типы выражений присваивания в Python и посмотрим, как они работают внутри.
Пример 1. С правой стороны — выражение со значением
Это базовая форма присваивания в Python.
Python создаст в памяти строку "Изучение python" и присвоит ей имя test . Узнать адрес в памяти можно с помощью встроенной функции id() .
>>> test = "Изучение python"
>>> id(test)
6589040Номер — это адрес места, где значение хранится в памяти. Дальше несколько интересных вещей, о которых нужно помнить.
- Если создать другую строку с тем же значением, Python создаст новый объект и присвоит его другому местоположению в памяти. Это работает в большинстве случаев.
- Однако в двух следующих случаях он использует то же место в памяти:
- Строки без пробелов с менее чем 20 символами;
- Целые числа от -5 до 255.
Это называется интернированием и делается для сохранения памяти.
Пример 2. С правой стороны — существующая переменная Python
Теперь другой пример инструкции присваивания. С правой стороны находится ранее объявленная переменная python.
Инструкция выше не приведет к выделению нового места в памяти. Обе переменных будут ссылаться на один и тот же объект в памяти. Это как создание псевдонима для существующего объекта. Убедиться в этом можно с помощью все той же функции id() .
>>> test = "Изучение python"
>>> id(test)
6589424
>>> another_test = test
>>> id(another_test)
6589424Пример 3. С правой стороны — операция
В случае такой инструкции результат зависит от исхода операции. Возьмем такой пример.
>>> test = 2 * 2 / 4
>>> print(test)
1.0
>>> type(test)В примере выше присваивание приведет к созданию переменной типа float . А в этом — к появлению переменной типа int .
>>> test = 3 * 3
>>> print(test)
9
>>> type(test)Дополненная инструкция присваивания
Арифметические операторы можно объединять для формирования инструкций дополненного присваивания.
Рассмотрим такой пример: x += y . Он является аналогичным этой инструкции — x = x + y .
Следующий пример с добавлением новых элементов в кортеж чуть яснее демонстрирует принцип.
>>> my_tuple = (5, 10, 20)
>>> my_tuple += (40, 80,)
>>> print(my_tuple)
(5, 10, 20, 40, 80)Следующий пример — список гласных. В нем в список добавляются недостающие значения.
>>> list_vowels = ['a','e','i']
>>> list_vowels += ['o', 'u',]
>>> print(list_vowels)
['a', 'e', 'i', 'o', 'u']Инструкция в несколько строк
Каждая инструкция в Python заканчивается символом новой строки. Но это поведение можно расширить на несколько строк с помощью символа продолжения строки \ .
В Python есть два варианта работы с инструкциями, занимающими несколько строк.
1. Явное продолжение строки
Когда сразу используется символ продолжения строки \ для разбития инструкции на несколько строчек.
# Инициализация списка с помощью многострочной инструкции
>>> my_list = [1, \
. 2, 3\
. ,4,5 \
. ]
>>> print(my_list)
[1, 2, 3, 4, 5]
# Вычислить выражение, используя многострочную инструкцию
>>> eval ( \
. " 2.5 \
. + \
. 3.5")
6.02. Неявное продолжение строки
Неявное продолжение строки работает в тех случаях, когда инструкция разбивается с помощью круглых (), квадратных [] или фигурных <> скобок. В таком случае инструкцию нужно заключить внутрь скобок для переноса.
>>> result = (10 + 100
. * 5 - 5
. / 100 + 10
. )
>>> print(result)
519.95>>> subjects = [
. 'Метематика',
. 'Английский',
. 'Химия'
. ]
>>> print(subjects)
['Метематика', 'Английский', 'Химия']
>>> type(subjects)Отступы в Python
Большая часть высокоуровневых языков программирования, таких как C, C++, C# используют фигурные скобки для выделения блоков кода. Python делает это с помощью отступов.
Блок кода, представляющий тело функции или цикл, начинается с отступа и заканчивается первой строкой без отступа.
Сколько места занимает один отступ
Согласно правилам стиля Python (PEP8), размер отступа — 4 символа. Однако у Google есть собственные правила, ограничивающие этот размер 2 символами. Так что можно руководствоваться и собственным стилем, но лучше следовать PEP8.
Почему отступы так важны в Python?
В большинстве языков программирования отступы используются для улучшения читабельности, но добавлять их необязательно. Но в Python их обязательно нужно использовать. Обычно каждую строку предваряет отступ в 4 символа для одного блока кода.
В примерах прошлых разделов были блоки без отступов. Однако в более сложных выражениях без них не обойтись.
def demo_routine(num):
print('Демо функция')
if num % 2 == 0:
return True
else:
return False
num = int(input('Введи число:'))
if demo_routine(num) is True:
print(num, 'четное число')
else:
print(num, 'нечетное число')Также стоит рассмотреть пример, когда ненужный отступ вызывает ошибку.
>>> 6*5-10
File "", line 1
6*5-10
^
IndentationError: unexpected indentВыводы
Если вы планируете стать профессиональным программистом, который верит в понятие чистого кода, тогда важно знать о выражениях, инструкциях и отступах в Python. Чтобы получить максимум от этого урока, повторите все представленные примеры в консоли. Для работы с ранее введенными командами можно использовать стрелку вверх на клавиатуре.