Хорошо, давайте попробуем сократить одну из "лишних" сущностей.
def func():
print('Hello world!')
a = 1
b = 2
c = a + b
print(c)
func()
Так, стоп - а как понять, что функция кончилась? Придётся ещё какое-то правило вводить, например, пустую строку в конце функции.
def func():
print('Hello world!')
a = 1
b = 2
c = a + b
print(c)
func()
Хм, ну это вариант, но лучше ли это, чем отступы, нагляднее ли? А если добавить ещё таких же сущностей внутрь функции.
def func():
print('Hello world!')
a = 1
b = 2
if a > b:
c = a - b
else:
c = a + b
print(c)
func()
Так, стоп, а как понять, где кончились строки внутри блоков if
?! И так, чтобы не перепутать их с концом функции? Тоже с помощью пустой строки? Ну ладно, добавим ещё после else:
пустую строку.
def func():
print('Hello world!')
a = 1
b = 2
if a > b:
c = a - b
else:
c = a + b
print(c)
func()
Понятно ли в таком виде, где кончился else:
, а где def
? А если это длинная функция и там ещё есть внутри уровни вложенности? Это тогда придётся считать пустые строки, чтобы понять, конец какого блока эта пустая строка означает? И считать потом назад конструкции, начинающие блоки. Кажется, код постепенно становится не читаемым. :/
- Теперь попробуем оставить отступы, но не двоеточие
def func()
print('Hello world!')
a = 1
b = 2
if a > b
c = a - b
else
c = a + b
print(c)
func()
Выглядит неплохо (хотя и не так чётко как с двоеточием), но возникают проблемы с тем, что мы уже не можем написать в одну строчку код, так, чтобы было всё чётко отделено.
if a > b c = a - b
Вы сможете сходу понять глядя на такой код где кончилось условие и где начался код внутри уже блока if
? И сразу понять, глядя на этот код, нет ли тут каких ошибок? Я вот что-то уже не уверен. Если только запретить продолжать код в той же строке, тогда ещё ладно. Но всё-равно не будет чёткого видения, где же тут кончился оператор и начался блок внутри оператора.
Подозреваю, что вылезут и ещё какие-то проблемы, но сходу пока больше не придумал.
В целом мне лично кажется удобным иметь простое правило: видишь в конце строки двоеточие - значит дальше должны быть строки с отступом. Это позволяет быстро глазами увидеть, правильно ли сделаны отступы в программе.