Синтаксис
Переменные
Для начала стоит разобраться куда нам присваивать данные, а потом уже рассматривать их типы. Переменные предназначены как раз для этого.
Для создания валидного названия переменной должны быть соблюдены следующие условия:
- название должно начинаться с алфавитного символа или знака подчеркивания
_
; - название может содержать алфавитные символы, цифры
0-9
и знак подчеркивания_
; - название не должно совпадать с ключевыми словами (например:
if
,import
,True
и т.д.)
Пример:
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 пробелам.
Подсказка
Уровень отступа для всего блока определяется по первой строчке после открытия блока.