The Python Programming Guide

Синтаксис

Переменные

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

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

Пример:

my_Name_Is = "Vlad"

Заметка

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

  • camel case: myNameIs;
  • underscore notation: my_name_is

Более подробно со всеми рекомендациями можно ознакомиться в самом руководстве.

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

myName = "Vlad"
myName = 15

print(myName)

Вывод:

15

Удалить переменную можно с помощью специальной функции del:

# обычно используется запись без скобок
del myName
# но можно и так
# del(myName)
print(myName)

Вывод:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'myName' is not defined

Как видите, мы удалили переменную и интерпретатор говорит нам, при попытке получить значение из myName, что myName не определена.

Комментарии

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

# Эта строка является комментарием
print("Эта строка будет исполнена")
"""Очень
длинный
многострочный
комментарий
"""
print("Эта строка будет исполнена")

Заметка

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

def hello(name):
    """Данная функция выводит приветствие с пользователем.

    :param name:
        Имя пользователя.
    """
    print("Hello,", name)

help(hello)

Это связано с тем, что по факту данная запись является многострочной строкой (string).

Отступы

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

if 1 < 5:
print("Один меньше пяти!")

Вывод:

  File "<stdin>", line 2
    print("Один меньше пяти!")
    ^
IndentationError: expected an indented block after 'if' statement on line 1

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

if 1 < 5:
    print("Один меньше пяти!")

Вывод:

Один меньше пяти!

Если интерпретатор встречает возвращение отступа на предыдущий уровень, он воспринимает это как окончание блока. Используем в примере заведомо ложное условие:

if 1 > 5:
    print("Один больше пяти!")
print("Уровень ноль")

Вывод:

Уровень ноль

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

Заметка

Согласно рекомендациям PEP8, отступ рекомендуется делать равным 4 пробелам.

Подсказка

Уровень отступа для всего блока определяется по первой строчке после открытия блока.