Я убрал лишние пробелы
Было так
if ((number % 3 == 0 or number % 11 == 0)
and number % 2 != 0
and number % 13 != 0
and number % 22 != 0
and number % 33 != 0):
count_divisors += 1
if number < minimal_divisor:
minimal_divisor = number
Стало так
if ((number % 3 == 0 or number % 11 == 0)
and number % 2 != 0
and number % 13 != 0
and number % 22 != 0
and number % 33 != 0):
count_divisors += 1
if number < minimal_divisor:
minimal_divisor = number
Ocean
Всегда с отступами на 4 пробела или на что ориентироваться?
Даже один пробел всегда имеет значение. Поэтому есть ли пробел где-то или нет там пробела, это очень большое значение имеет. Это не в плане работы программы (семантики), не в плане правильности кода (синтаксиса). Потому что программа будет работать одинаково и интерпретироваться/компилироваться она будет одинаково. Этот пробел ни на что не влияет. Это имеет значение для работы с кодом, когда с ним работает
человек руками где-то там. Также есть аспект когда с кодом работает
программа “руками” где-то там, но мы этот аспект обсуждать сейчас не будем, так как тебе ещё рано об этом знать. Если ты семи нот не знаешь ещё всех точно, то как-то рановато раскрывать все секреты исполнения фламенко на восемнадцатиструнной гитаре, потому что без знания семи нот эти секреты не будут понятны даже близко, не будет понятен сам их смысл. Если кратко сказать, то существует такое пространство, целый мир, в котором одни программы пишут другие программы, и в этом пространстве существует множество всяких аспектов и нюансов тоже. Поэтому когда мы пишем код, мы думаем о том, что его может читать потом кто-то или что-то. И с ним этот кто-то или это что-то может ещё потом что-то делать. Поэтому мы на каждый пробельчик обращаем внимание.
Вот у
Pet'а Peeves'а из PEP8 написано, что “не нужно ставить никакие лишние пробелы” - значит, так и делаем. Мы не думаем о том, а почему это не нужно, а не не нужно ли это на самом деле. Мы просто делаем это, чтобы научиться и запомнить, а поймём это всё потом.
В данном случае мы ставим не четыре пробела, а мы стоим под открывающей круглой скобкой, правее её на один символ. Так получаются четыре пробела, но они получаются случайно. Нам похрен, сколько там получилось пробелов, мы стоим под скобкой, к которой вся эта хрень относится. Также and'ы у нас перенесены, а не оставлены на строках выше, хотя красивее было бы их оставить на строках выше. Мы делаем не так, как красивее будет, а мы делаем так, как я выше написал (кто будет с этим работать дальше и что будет с этим работать дальше - вот они определяют то место, куда мы ставим and'ы). Если мы захотим добавить ещё одно условие к этим имеющимся, мы просто раздвинем две строки и вставим это условие туда. Две строки, которые мы раздвинули, остались неизменными, - это важный фактор. Система контроля версий, в которой хранится этот код, очень легко обустроит у себя в нутрях это добавление строки, так как существующие строки, которые в ней уже хранятся, не затронуты нашей этой вставкой, их содержание не изменилось ни на символ. При этом этот код может храниться в разных системах контроля версий как одновременно, так и в разные времена и даже в разные десятилетия (в разные эпохи, которые часто многие программы не переживают из-за своих ограничений каких-то). Но во всех них простая вставка строки между строками - это простая операция, которая как выполняется просто, так и отменяется просто. Вставленную легко строку так же легко и вырезать обратно. Ну, и к комментированию для её временного выключения она также предрасположена. Также обрати внимание на первую строку условия и последнюю строку условия. Мы их не можем быстро вырезать, быстро заменить и тому подобное. Ну, мы могли бы их так же поставить, чтобы они тоже были пригодны для этого. Но мы этого не делаем и просто для этих двух строк делаем исключение из правил. Если мы будем их менять, мы потрудимся и попереставляем эти двоеточия там and'ы и прочие вещи. Мы идём на это осознанно, на вот эти неудобности.
Это один маленький пример. Много там таких аспектов, почему вот это туда надо ставить, а почему вот это сюда надо ставить, по этим вопросам нужно читать книги. Читать книги, читать вот такие PEP'ы, эти PEP'ы есть в разных языках ещё, в каждом языке есть какие-то свои особенности и фишки, фигурные скобочки там где-нибудь и так далее со своими аспектами. Пока не знаешь, делай так, как советуют. Почему это надо делать так, разберёшься потом.
tags: code format