Есть ли способ обойти кодирование в Python без критериев табуляции, отступа и пробела? - PullRequest
7 голосов
/ 15 сентября 2008

Я хочу начать использовать Python для небольших проектов, но тот факт, что неправильно расположенная вкладка или отступ может вызвать ошибку компиляции, действительно действует мне на нервы. Есть какие-то настройки, чтобы отключить это?

В настоящее время я использую NotePad ++. Может быть, есть IDE, которая позаботится о вкладках и отступах?

Ответы [ 29 ]

0 голосов
/ 16 сентября 2008

Странно - никто не упомянул GEdit (Gnome) или OpenKomodo (Windows, Mac, GNU / Linux ...). Они оба великолепны!

OpenKomodo особенно хорошо работает с табуляцией и пробелами. И - это бесплатно. Whee! Когда мне нужно что-то более легкое, я просто использую GEdit.

Скачать OpenKomodo здесь - http://www.openkomodo.com/

0 голосов
/ 16 сентября 2008

Проверьте параметры вашего редактора или найдите редактор / IDE, который позволяет преобразовывать табуляции в пробелы. Я обычно устанавливаю параметры моего редактора, чтобы заменить символ табуляции четырьмя пробелами, и у меня никогда не возникало никаких проблем.

0 голосов
/ 15 сентября 2008

Я немного не хотел изучать Python из-за табуляции. Однако я почти не заметил этого, когда использовал Vim.

0 голосов
/ 23 ноября 2009

Просто используйте Ruby, это намного лучше, чем Python.

http://www.ruby -lang.org

0 голосов
/ 15 сентября 2008

Реальный ответ на ваш вопрос заключается в том, что если вы собираетесь использовать язык, вам необходимо изучить его синтаксис. Подобно тому, как ошибка в отступе Python может привести к ошибке компилятора, так и ошибка при использовании фигурных скобок в других языках также может привести к ошибке компилятора.

Еще хуже, что компилятор может молча интерпретировать что-то не так. Это особенно опасно, когда отступ не соответствует желаемому значению. То есть на многих других языках:

If(first condition)
   if (second condition)
      do something interesting;
else
  do something different;

Приведет к неприятным сюрпризам.

Python заставляет вас писать код, который выглядит как то, что он делает. Это хорошо для других программистов, которым приходится читать ваш код, или для вас, когда вы пытаетесь прочитать свой собственный код примерно через месяц.

0 голосов
/ 15 сентября 2008

В Python отступ является семантическим элементом, а также обеспечивает визуальную группировку для удобства чтения.

Пробел и табуляция могут указывать отступ. Это прискорбно, потому что:

  • Интерпретация (ы) вкладки варьируется среди редакторов и IDE и часто настраивается (и часто настраивается).

  • OTOH, некоторые редакторы не настраивается, но применять свои собственные правила для отступа.

  • Различные последовательности пробелы и табуляции могут быть визуально неразличимы.

  • Вырезать и вставить можно изменить пробел.

Таким образом, если вы не знаете, что данный фрагмент кода будет изменен только вами одним инструментом и неизменной конфигурацией, вы должны избегать вкладок для отступа (настройте IDE) и убедитесь, что вас предупреждают, если они введено (поиск вкладок в начальных пробелах).

И вы все еще можете ожидать укуса время от времени, если к управляющим символам применяется произвольная семантика.

0 голосов
/ 15 сентября 2008

Многие Python IDE и общедоступные текстовые / исходные редакторы могут обрабатывать пробелы для вас.

Тем не менее, лучше всего просто «отпустить» и пользоваться правилами пробелов в Python. С некоторой практикой они вообще не будут мешать вам, и вы обнаружите, что у них много достоинств, наиболее важными из которых являются:

  1. Из-за вынужденного пробела код на Python проще для понимания. Вы обнаружите, что когда вы читаете код, написанный другими, проще взяться за код, чем, скажем, на Perl или PHP.
  2. Пробелы сохраняют довольно много нажатий клавиш управления, таких как {и}, которые засоряют код, написанный на C-подобных языках. Меньше {s и} s означает, среди прочего, меньше RSI и боль в запястье. Это не вопрос, чтобы принять слегка.
0 голосов
/ 23 апреля 2010

Любой приличный редактор программ уменьшит это раздражение до нуля. Я вижу, что в Notepad ++ есть подсветка синтаксиса, вероятно, вам просто нужно правильно настроить параметры для автоматического отступа и т. Д.

0 голосов
/ 15 сентября 2008

Нет. Как бы Python проанализировал ваш скрипт, если бы был способ отключить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...