Skip to content

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?

Сколько максимум может быть вложенностей?