Питон и выравнивание...
От: кубик  
Дата: 20.11.20 05:43
Оценка: +3 -1 :))) :))) :))) :))) :)
Друзья,
Вы наверно слышите кругом всё говорят Питоон Питооон.
А вы знаете что если там какие то табы с пробелами не выровнены, но питон скрипт не запустится вообще?
Погуглите ошибку "TabError: inconsistent use of tabs and spaces in indentation"
Это аструеть ...
Re: Питон и выравнивание...
От: Homunculus Россия  
Дата: 20.11.20 05:55
Оценка: +3 :))
Здравствуйте, кубик, Вы писали:

Это отсеивает «непосвященных» от МАГИИ. Смотрит непосвященный на два одинаковых текста и не врубается, почему один запускается, а другой — нет. И тут в дело вступает МАГИЯ ПУСТОТЫ, ЭНЕРГИЯ ВАКУУМА, КОЛИЧЕСТВО ПРОБЕЛОВ.
Re: Питон и выравнивание...
От: cthsq  
Дата: 20.11.20 06:07
Оценка: +1
Здравствуйте, кубик, Вы писали:
Re: Питон и выравнивание...
От: fmiracle  
Дата: 20.11.20 06:17
Оценка:
Здравствуйте, кубик, Вы писали:

К>Это аструеть ...


Это дзен. Надо правильно увидеть и осмыслить пустоту...
Re: Питон и выравнивание...
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 20.11.20 06:34
Оценка: :))) :)
Здравствуйте, кубик, Вы писали:

К>Это аструеть ...


Жалеешь, что на нём не написать такое?
Re: Питон и выравнивание...
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.20 06:35
Оценка: +2
Здравствуйте, кубик, Вы писали:

К>Погуглите ошибку "TabError: inconsistent use of tabs and spaces in indentation"

К>Это аструеть ...

Ну, с пробуждением тебя!
Re[2]: Питон и выравнивание...
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.20 06:39
Оценка: :)
Здравствуйте, Homunculus, Вы писали:

H>Это отсеивает «непосвященных» от МАГИИ. Смотрит непосвященный на два одинаковых текста и не врубается, почему один запускается, а другой — нет. И тут в дело вступает МАГИЯ ПУСТОТЫ, ЭНЕРГИЯ ВАКУУМА, КОЛИЧЕСТВО ПРОБЕЛОВ.


qнεиж ʎmɐн ʚ ʁиεɐdƍоонεɐd ɯǝʁvʚɐƍоɓ ǝpoɔıun и ɐɓ
Re[3]: Питон и выравнивание...
От: Homunculus Россия  
Дата: 20.11.20 06:46
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>qнεиж ʎmɐн ʚ ʁиεɐdƍоонεɐd ɯǝʁvʚɐƍоɓ ǝpoɔıun и ɐɓ


Это фраза, читаемая на телефоне и нечитаемая (ну, или с некоторыми проблемами) на мониторе
Re: Питон и выравнивание...
От: Kolesiki  
Дата: 20.11.20 06:48
Оценка: +1 -1
Здравствуйте, кубик, Вы писали:

К>Это аструеть ...


Ну так а мы про что! Ещё с самой первой заметки про Пестон я был в таком же аструевшем состоянии Как можно в 21 веке делать синтаксис на отступах?! Это ж вам не 70-ые, когда безумные идеи воплощал каждый школотрон!
И "заимствование кода" (особенно из ЧАСТИЧНЫХ конструкций) — попробуй скопипасти пару кусков из браузера — сдохнешь восстанавливавши! Этот пестон — мракобесие и видимо, индикатор тех, кого пора лечить.
Re: Питон и выравнивание...
От: elmal  
Дата: 20.11.20 08:07
Оценка: +1 -4
Здравствуйте, кубик, Вы писали:

К>А вы знаете что если там какие то табы с пробелами не выровнены, но питон скрипт не запустится вообще?

И это, блин, супер. В результате в коде будет хотя бы нормальное форматирование гарантировано. А то в свое время был охрененный скандал, когда я взял, и отформатировал проект, в котором форматирования не было вообще. Вернее оно было, но неправильное. Что то вроде:
                                      for (i in 1..10)
       {
                    if (a>5)
       {
    printf("h")
            printf("e")
       printf("l")
printf("l")
             printf("o")
            }
              }


Очень хорошо, что есть хотя бы один язык, в котором ни одна сволочь физически не сможет вот такое сделать, и ни одна сволочь не сможет запретить такой капец исправлять!

PS еще б на уровне языка ограничить бы длину вложенности отступов хотя бы до 6 (а то некоторые таланты и 50 хреначат), а длину функции хотя бы 500 строчками (а то некоторые орлы все пишут в main на 20 000 строк и без форматирования), вообще бы цены такому языку не было. К сожалению python от такого не спасает.
Re[4]: Питон и выравнивание...
От: Pzz Россия https://github.com/alexpevzner
Дата: 20.11.20 08:13
Оценка: :)
Здравствуйте, Homunculus, Вы писали:

Pzz>>qнεиж ʎmɐн ʚ ʁиεɐdƍоонεɐd ɯǝʁvʚɐƍоɓ ǝpoɔıun и ɐɓ


H>Это фраза, читаемая на телефоне и нечитаемая (ну, или с некоторыми проблемами) на мониторе


Можно голову крутить, а не монитор. Это даже полезно для шеи.
Re[2]: Питон и выравнивание...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 08:16
Оценка: +2
Здравствуйте, Pzz, Вы писали:

К>>Погуглите ошибку "TabError: inconsistent use of tabs and spaces in indentation"

К>>Это аструеть ...

Pzz>Ну, с пробуждением тебя!


Скорее с разморозкой. Это ж сколько надо было спать, и не заметить ещё десяток языков с похожими свойствами...
The God is real, unless declared integer.
Re: Питон и выравнивание...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 08:20
Оценка:
Здравствуйте, кубик, Вы писали:

К>Друзья,

К>Вы наверно слышите кругом всё говорят Питоон Питооон.
К>А вы знаете что если там какие то табы с пробелами не выровнены, но питон скрипт не запустится вообще?
К>Погуглите ошибку "TabError: inconsistent use of tabs and spaces in indentation"
К>Это аструеть ...

А ещё есть Haskell, представляешь, в нём то же самое. И ещё десяток похожих языков. А ещё есть YAML.
А ещё есть, о ужас, email, HTTP, SIP, в которых продолжение поля заголовка требует пробелов отступа.
А ещё всякие Markdown (ты документацию к коду совсем не пишешь?)

Мы не виноваты, что ты уснул где-то в 1997-м и только сейчас проснулся, но зачем всех остальных пугать своими личными привидениями?

(Кстати, ты явно уснул не раньше. Потому что есть классический Fortran.)
The God is real, unless declared integer.
Re[3]: Питон и выравнивание...
От: Michael7 Россия  
Дата: 20.11.20 08:25
Оценка: +1
Здравствуйте, netch80, Вы писали:


N>Скорее с разморозкой. Это ж сколько надо было спать, и не заметить ещё десяток языков с похожими свойствами...


Из широко распространенных кроме питона даже не припомню еще. Не считать же за такие свойства старый перфокарточный Фортран.
Re[2]: Питон и выравнивание...
От: Michael7 Россия  
Дата: 20.11.20 08:26
Оценка:
Здравствуйте, elmal, Вы писали:

E>Очень хорошо, что есть хотя бы один язык, в котором ни одна сволочь физически не сможет вот такое сделать, и ни одна сволочь не сможет запретить такой капец исправлять!


Да ладно, не сможет. Препроцессор что ли долго соорудить?

E>PS еще б на уровне языка ограничить бы длину вложенности отступов хотя бы до 6 (а то некоторые таланты и 50 хреначат), а длину функции хотя бы 500 строчками (а то некоторые орлы все пишут в main на 20 000 строк и без форматирования), вообще бы цены такому языку не было. К сожалению python от такого не спасает.


Иногда такие вещи результат автоматической генерации.
Re: Питон и выравнивание...
От: Firstborn Латвия  
Дата: 20.11.20 08:28
Оценка:
Здравствуйте, кубик, Вы писали:

К>А вы знаете что если там какие то табы с пробелами не выровнены, но питон скрипт не запустится вообще?


Да.
Re[4]: Питон и выравнивание...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 08:29
Оценка:
Здравствуйте, Michael7, Вы писали:

N>>Скорее с разморозкой. Это ж сколько надо было спать, и не заметить ещё десяток языков с похожими свойствами...


M>Из широко распространенных кроме питона даже не припомню еще. Не считать же за такие свойства старый перфокарточный Фортран.


Фортран я уже упомянул рядом, да. Ну ещё есть пачка форматов данных (как заголовок HTTP).
Хотя там проще — там требуется (или запрещается) минимум один пробел или табуляция, а не точный их набор.
The God is real, unless declared integer.
Re[5]: Питон и выравнивание...
От: Michael7 Россия  
Дата: 20.11.20 08:35
Оценка:
Здравствуйте, netch80, Вы писали:


N>Фортран я уже упомянул рядом, да. Ну ещё есть пачка форматов данных (как заголовок HTTP).

N>Хотя там проще — там требуется (или запрещается) минимум один пробел или табуляция, а не точный их набор.

Ты еще в другом сообщении напомнил про Haskell, я о нем как-то не вспомнил, когда писал. Правда можно ли его считать широко распространенным — вопрос. Но в нем емнип и не так все же жестко как в питоне.
Отредактировано 20.11.2020 8:36 Michael7 . Предыдущая версия .
Re[2]: Питон и выравнивание...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.11.20 08:37
Оценка: +1
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, кубик, Вы писали:


К>>А вы знаете что если там какие то табы с пробелами не выровнены, но питон скрипт не запустится вообще?

E>И это, блин, супер. В результате в коде будет хотя бы нормальное форматирование гарантировано. А то в свое время был охрененный скандал, когда я взял, и отформатировал проект, в котором форматирования не было вообще. Вернее оно было, но неправильное. Что то вроде:

Я на самом деле после вот уже 16 лет почти непрерывной работы с Питоном не уверен, что это так уж хорошо, но не из-за выравнивания как такового, а из-за того, что сложно отловить по точке закрытия нескольких блоков сразу — где они начинаются.
В случае {} или begin end перейти на противоположную легко в нормальном редакторе (vim — %, Jetbrains IDE — Ctrl+Shift+M, и так далее). А тут сразу начинается выбор, куда переходить — а подсказок не дают (пожаловаться что ли в Jetbrains?)

И когда код вида

    if x:
        while y:
            for z in zzz:
                if abc123 + zyx456 < qwer789:
                    ... что-то происходит ...
    else:


тут (перед else в примере) ты не знаешь, что было, как и почему — может, ты досматривал, что было в for z?
Против этого два средства:
1. Не создавать код размером больше экрана. Часто действует, но не всегда — у меня есть такие случаи, когда если по всем правилам Мартина сделать, то будет замедление в 10-100 раз, не могу себе позволить. Неизбежно получаются монстры на пятьсот строк.
2. В конце каждого такого блока писать свои пометки, типа:

    if x:
        while y:
            for z in zzz:
                if abc123 + zyx456 < qwer789:
                    ... что-то происходит ...
                #end if
            #end for
        #end while
    else:


но их ещё расставить надо и согласовать с командой. Ну и какое-то средство для быстрого перехода (в vim есть indentwise, очень вкусно).

E>PS еще б на уровне языка ограничить бы длину вложенности отступов хотя бы до 6 (а то некоторые таланты и 50 хреначат), а длину функции хотя бы 500 строчками (а то некоторые орлы все пишут в main на 20 000 строк и без форматирования), вообще бы цены такому языку не было. К сожалению python от такого не спасает.


Тут интересен подход Go — общий стиль форматирования не обязателен, но наличие одной универсальной тулзы в коробке и одного стиля на неё нормирует хотя бы публичный код (а не 100500 стилей, как в C).
The God is real, unless declared integer.
Re[3]: Питон и выравнивание...
От: elmal  
Дата: 20.11.20 08:45
Оценка:
Здравствуйте, netch80, Вы писали:

N>В случае {} или begin end перейти на противоположную легко в нормальном редакторе (vim — %, Jetbrains IDE — Ctrl+Shift+M, и так далее). А тут сразу начинается выбор, куда переходить — а подсказок не дают (пожаловаться что ли в Jetbrains?)

Пожалуйся, кстати, точнее заведи feature request. Я как то захотел одну фичу, сообщил разработчикам — очень оперативно сделали.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.