Тема
Python. Основы синтаксиса
Что такое синтаксис
Под синтаксисом языка понимают правила организации кода. Например, в большинстве языков принято отделять блоки кода с помощью {}, но в python так не делается. Или где-то отступы - чисто декоративный элемент, а в python они играют ключевую роль. Давайте поподробнее об этом поговорим.
Важно сделать важное уточнение - несмотря на то, что синтаксис языка python может показаться очень странным и даже "ленивым", но на самом деле он строже других языков в некоторых моментах. Например в JavaScript можно ставить ;, а можно и не ставить - от этого он не будет ругаться. Многие ошибки, например соединение строк и чисел JavaScript бы тоже простил, в отличие от python. Это говорит о том, что синтаксис python скорее минималистичный, нежели простой.
Блоки кода
В следующих темах будет встречаться понятие - блок кода. Оно означает, что код, который мы пишем связан с какой-либо родительской конструкцией, например:
python
if a > 10:
print("a > 10")
else:
print("a <= 10")Здесь код на 2 строчке принадлежит конструкции if с 1 строчки, а код на 4 строчке - конструкции else на 3
Такие конструкции будут встречаться очень часто, и сразу важно научиться понимать принадлежность одного кода к другому. Так что давайте еще потренируемся
python
def reverse(word):
r = word[::-1]
return r
b = input("Введите слово")
print(reverse(b))Вопрос - какой конструкции принадлежит здесь код на 2 и 3 строчке? А на 4 и 5?
Если вы задались вопросом, к какому блоку принадлежит 4 и 5 строчки - то ответом будет ни к какому, так как они написаны без отступов. Это означает, что они глобальные
Знак ":"
Также обратите особое внимание на знак : - он означает, что следующий код точно пойдет с отступом, так как это начало блока кода.
Давайте еще раз потренируемся
python
class Rectangle:
def __init__(self, a, b):
self.a = a
self.b = b
def s(self):
return self.a * self.b
r = Rectangle(4, 5)
print(r.s())Двойная вложенность совершенно не должна вас пугать - у родителей тоже могут быть родители
- К какой конструкции принадлежит код на 3 и 4 строчках?
- К какой конструкции принадлежит код на 2 строчке?
- К какой конструкции принадлежит код на последних 2 строчках?
Если ответами были:
def __init__class Rectangle- ни к какой то вы ответили правильно.
Вложенности
Отдельно стоит сказать о том, что количество таких вложенностей неограниченно, то есть такой код вполне реален:
python
if a > 10:
if b > 10:
if c > 10:
if d > 10:
if e > 10:
if f > 10:
if g > 10:
if k > 10:
print("Фух!")но маловероятен, так как не очень лаконичен. О том, как правильно делать код красивым мы поговорим далее. А пока что проверьте свои знания и давайте перейдем к переменным.
Тест по теме
Основы синтаксиса
Какие отступы принято использовать в Python?
Что произойдет, если код в Python не имеет правильных отступов?
Что означает символ ':' в Python?
Сколько максимум может быть вложенностей?