LINUX.ORG.RU
Ответ на: комментарий от no-such-file

Вспомнилось вот.

Тётя Соня, не вертите задом,
Это не пропеллер, а вы не самолёт.
Две шаги налево, две шаги направо,
Шаг вперёд - наоборот.

Forum0888
()
Ответ на: комментарий от Kogrom

Если говорить по смыслу, то тогда надо приводить ссылку о том, что Гвидо был наркоманом

А, то есть ты так понял основной смысл высказывания? У тебя один из признаков шизофрении в таком случае.

no-such-file ★★★★★
()
Ответ на: комментарий от kardapoltsev

И да, ещё читать дифы на ревью очень очень тоже удобно

Обычно люди даже внутри скобочек выравнивают код, так что диффы смотреть везде трудно, даже умная подсветка «что изменилось» не всегда помогает

Помогает уменьшение вложенности при подобных правках

arcanis ★★★★
()

за отступы и отсутствие фигурных скобок

kott ★★★★★
()
Ответ на: комментарий от emorozov

Если мы хотим сделать копируемый блок частью другого блока, отступы у нас не совпадают, а редактор вдруг не смог понять, что мы хотим, и не выровнял блок автоматически (хотя такое бывает редко), то выделяем текст, и

…каким святым духом т/р поймёт, частью какого блока должен быть вставленный кусок? Вот у нас есть if в цикле, опосля блока if мы вставляем кусок, нам надо, чтобы этот кусок относился к блоку цикла, а не к блокам предыдущих if-ов, которых может быть не один.

Нет, понятно, что нам надо делать вставку на уровне вложенности цикла, ОТСЧИТАВ требуемое количество отступов, что легко делается сворачиванием всех предыдущих блоков в т/р. Но так ли это легко и быстро, если у вас нечто большее, нежели непрофильная по программированию курсовая?

И уже задававшийся вопрос: как «обрамить» «операторными скобками» уже имеющийся в программе код? Например, если его надо поместить в тело цикла? Опять копипастой?

mister_VA ★★
()
Ответ на: комментарий от mister_VA

На правах мимокрокодила.

понятно, что нам надо делать вставку на уровне вложенности цикла, ОТСЧИТАВ требуемое количество отступов

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

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

Но так ли это легко и быстро, если у вас нечто большее, нежели непрофильная по программированию курсовая?

Да, без разницы какого объёма проект, стиль вырабатывается такой, что блоки умещаются на одном экране. Нет как таковой проблемы с вставками кода.

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

Например, если его надо поместить в тело цикла? Опять копипастой?

Выделить блок и подвинуть целиком вправо-влево с шагом равным размеру отступа.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 3)
Ответ на: комментарий от vvn_black

Нет, это вставляется куда вставляется и потом целиковым блоком сдвигается на нужную позицию, если в этом есть необходимость.

Выделить блок и подвинуть целиком вправо-влево с шагом равным размеру отступа.

Что не отрицает (а) необходимость отсчитывать требуемую позицию, (б) использовать заточенный под питон-стиль редактор, поскольку я не понимаю, как в том же vim или kate ПОДВИНУТЬ выделенный блок. Если влево ещё как-то двигается,.. если есть пробелы перед, то вправо – никак. При этом при перетаскивании влево нарушается структура двигаемого.

Или вы имеете ввиду регуляркой в «Поиск и вставка» добавить пробелы вначале строки в выделенном блоке?!

mister_VA ★★
()
Ответ на: комментарий от mister_VA

…каким святым духом т/р поймёт, частью какого блока должен быть вставленный кусок? Вот у нас есть if в цикле, опосля блока if мы вставляем кусок, нам надо, чтобы этот кусок относился к блоку цикла, а не к блокам предыдущих if-ов, которых может быть не один.

В хорошем коде не должно быть больших вложенностей, и сотен строк внутри блока условия или цикла. Код с количеством уровней вложенности более 5, и с огромными блоками в if/for будет невозможно читать и модифицировать при любой организации исходника, даже с фигурными скобками.

Редакторы, минимально понимающие Python, при вставке выравнивают его под текущий блок. Если вставлять сразу за if или for, то автоматически сделают отступ вправо, чтобы он стал частью условия или цикла. В другом случае, я даже не помню точно, что происходит, потому что всё это вообще не требует сознательного вмешательства, но кажется, что вставляет с теми же отступами, откуда был скопирован блок. Если это не устраивает, то можно сразу же переместить блок вправо-влево.

Я даже не могу это описать не попробовав, потому что все эти действия и редактора и рук, совершаются полностью автоматически, причём с первого дня, когда я начал писать на Python. Использовал самые разные редакторы для этого: emacs, joe, kate, vim, PyCharm, VS Code - нигде даже не требуется задумываться.

поскольку я не понимаю, как в том же vim или kate ПОДВИНУТЬ выделенный блок. Если влево ещё как-то двигается,.. если есть пробелы перед, то вправо – никак. При этом при перетаскивании влево нарушается структура двигаемого.

Вы реально пробовали двигать блоки кода в vim? Что там нарушается? Нажимаешь Shift-V, выделяешь блок перемещением курсора, или любым другим способом, затем нажимаешь </>. Ничего не ломается, и как оно сломается? Если доходишь до нулевой колонки, то дальше текст просто не двигается. Вправо его можно двигать сколько угодно, тоже непонятно, что там от этого сломается.

emorozov
()

Недостатки Питона — продолжение его достоинств.

При этом, если бы Питон чётко позиционировался как скриптуха для задач посложнее баша — он бы, вероятно, был идеальным языком в этой сфере. Но на нём начинают писать сложные многомодульные проекты, включая сложную математику. И тут эта халява с типами и отступы вместо скобок начинают конкретно выбешивать.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от mister_VA

как в том же vim или kate ПОДВИНУТЬ выделенный блок

Как в недоблокнотах, не знаю, а в нормальном редакторе C-x Tab + стрелки.

Nervous ★★★★★
()
Ответ на: комментарий от hobbit

И тут эта халява с типами и отступы вместо скобок начинают конкретно выбешивать.

А как же всё-таки пишут «сложные многомодульные проекты, включая сложную математику»? Через кровь из глаз, вопреки, а не благодаря?

vvn_black ★★★★★
()
Ответ на: комментарий от vvn_black

Так спроси у тех, кто её на Питоне пишет. Видимо, привыкли, считают, что это нормально.
Низкий порог вхождения — коварная штука.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от mister_VA

Или вы имеете ввиду регуляркой в «Поиск и вставка» добавить пробелы вначале строки в выделенном блоке?!

Нет, конечно. Тут уже вариантов накидали про комбинации клавшиш, вот ещё:

  • PyCharm - выделение, Tab - вправо, Shift+Tab - влево
  • VSCode и Sublime - выделение, Ctrl+] - вправо, Ctrl+[ - влево
vvn_black ★★★★★
()
Ответ на: комментарий от intelfx

Столько, сколько перед курсором в момент вставки

А где должен быть курсор в момент вставки, если у тебя перед этим 2 экрана вложенных 3 раза цикла и if/else? Предлагаешь перед вставной отмотать в начало, поставить в нужный столбец и снова отмотать в конец? Да ну нахер такие приседания.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

если у тебя перед этим 2 экрана вложенных 3 раза цикла и if/else

То следует перестать заниматься программированием.

intelfx ★★★★★
()
Ответ на: комментарий от emorozov

все эти действия и редактора и рук, совершаются полностью автоматически

ЛОЛ, это рассуждения из области «я катаюсь на механике и мне норм». Ну да, всё на рефлексах. Только от этого усталости меньше не становится, любой профессиональный водитель тебе скажет, что он в гробу видал эту мешалку, автомат лучше.

Причём если применительно к автомобилям ручная коробка ещё может как-то оправдываться тем, что «зато полный контроль» и можно делать то, что на автомате нельзя, то в питоне эта ручная работа не оправдана вообще ничем. Наоборот именно питон более ограничен, так что это даже повлияло на возможности языка (привет лямбдам). Нужно быть в хламину упоротым чтобы оправдывать этого говно.

no-such-file ★★★★★
()
Ответ на: комментарий от Forum0888

За строгую динамическую типизацию, за поддержку объектно-ориентированной и функциональной парадигм, за то, что он есть везде, ну и конечно за оформление блоков кода отступами.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)

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

nionio35
()
Ответ на: комментарий от untitl3d

Уже выяснили что у всех все работает, кроме нейроразнообразных вроде Вас. Но виноваты конечно питон/несимметричные булевы операции/ретроградный меркурий!

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от hobbit

Да тут уже высказалась куча народу кто на питоне такое пишет - нормально нам пишется. Вообще не помню что бы у меня были проблемы с копипастой своего кода в питоне. За 20 лет три раза ловил траблы с копипастой чужого кода (табы/пробелы).

Но пара человек, которые НЕ пишут, седьмую страницу пытаются убедить пишущих что это адЬ, напрочь игнорируя все аргументы.

Мне даже интересно стало, что это с точки зрения психологии?

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от hobbit

халява с типами и отступы вместо скобок начинают конкретно выбешивать

Халява с типами для больших проектов это имно основная проблема. В последних питона есть аннотирование типов, хз насколько помогает.

Что касается отступов, то это смешная претензия. Если это так мешает, ну введите свои скобки и препроцессор, делается на коленке за час максимум - и будет как в плюсах. Но никто не сделал же –> это НЕ является проблемой на решение которой надо тратить хоть какие то ресурсы. Зато отличный повод для флейма:-)

AntonI ★★★★★
()
Ответ на: комментарий от Forum0888

Если бы… это тёрка между теми кто ест яйца, и веганами которые сами яйца не едят, но учат с какого конца яйца надо чистить.

AntonI ★★★★★
()
Ответ на: комментарий от Forum0888

Если Вы про тутошний кордебалет с обсуждением питона, то нифига не похоже.

AntonI ★★★★★
()

Вообще, конечно, очень странное поведение защитников Питона. У языка есть очевидные недостатки:

  1. Форматирование отступами. Лично я тут преимуществ не вижу никаких. Выделение скобками блоков более наглядно, в Питоне они всегда висят как будто в воздухе. Кроме того это делает невозможным некоторые конструкции (лямбды). Если форматирование сбилось, его невозможно восстановить автоматически вообще никак, код просто становится нерабочим.

  2. Питон очень медленный.

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

Зачем с этим спорить, если это все на поверхности? Перевешивают ли достоинства Питона его недостатки? Ну очевидно, что да, иначе бы он не занял то место, которое занял. Сейчас это очень мощный инструмент, незнанием которого ты ограничиваешь сам себя.

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

делает невозможным некоторые конструкции (лямбды)

Уточнение, многострочные лямбды. Ну да, неудобно, ну да, дело привычки, но где же тут невозможность?

очень странное поведение защитников Питона

Странное поведение - это требовать от инструмента, чтобы он подходил под конкретные руки. Нормальное - если тебе инструмент нужен, то ты приспосабливаешься под него.

Если форматирование сбилось, его невозможно восстановить автоматически вообще никак, код просто становится нерабочим

Так, оно же не сбивается, это форматирование, с чего ему сбиваться?

п. 2 - несомненно, это недостаток вытекающий из модели самого языка. Перерастает ли этот недостаток в проблему? Далеко не всегда.

п. 3. Да, динамическая, но ведь сильная же. Недостаток, перерастающий в проблему? Скорее повод для поспорить.

vvn_black ★★★★★
()
Ответ на: комментарий от AntonI

Если людям приходится идти на вот такие извращения — это таки является проблемой. Причём предложенный им хак с continue даже можно назвать изящным, а вот решение для if уже явно нет. И это, заметьте, написал для себя человек, который проблему осознаёт, а я вот представляю себе ситуацию, когда придётся копаться в чужом неочевидном коде и думать: то ли это отступ слетел, то ли действительно так надо…

введите свои скобки и препроцессор, делается на коленке за час максимум - и будет как в плюсах

Это будет нестандартным решением.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Если людям приходится идти на вот такие извращения

Когда то давным давно, я сделал перегрузку функций (ее в питоне очевидно нет, ну или на тот момент в py2 не было - сейчас может завезли какой декоратор). И ни разу потом не использовал. То что я ее сделал не значит, что ее отсутствие является проблемой (хотя на самом деле это проблема куда большая чем отступы) - я просто это сделал джаст-фор-фан. Тоже было извращение.

Это будет нестандартным решением.

Это будет удобно для любого проекта где отступы вызывают сложности, мб и станет стандартом.

Вона кто то в плюсовых либах для работы с путями перегружает оператор / как переход вниз по директории;-)

AntonI ★★★★★
()
Ответ на: комментарий от vvn_black

Так, оно же не сбивается, это форматирование, с чего ему сбиваться?

Надеяться только на идеальные условия – это очень плохая стратегия. Работает только у теоретических физиков.

Я вот почему-то уверен, что если бы завтра в Питон добавили ПЕП со скобками или еще какими-нибудь нормальными блоками, то все защитники отступов радостно начали бы их использовать, а через год в Питон-комьюнити новый код без скобок считался тем же, чем сейчас считается JS вместо Typescript.

Для того, чтобы принудить разработчиков к единообразному форматированию, нужно было сразу выпускать форматтер, можно даже было бы не допускать к исполнению код, который через него не прошел :)

А-то придумали костылей с отступами, и все равно некоторые особо одаренные используют табы вместо пробелов :)

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

Тред не читай, сразу отвечай! Еще раз:

  1. Ни у кого из тех кто действительно много пишет на питоне отступы не являются проблемой. Это факт. В этом треде те кто рассказывают о чудовищных проблемах отступов по их же собственному признанию на питоне толком не писали, т.е. делятся своими фантазиями.

  2. Питон создавался для задач, где важна скорость разработки а не скорость выполнения. Все равно что высказывать претензии к трактору - дескать трактор медленный а вот болид формулы 1 огогого!

  3. Динамическая типизация ускоряет скорость разработки маленьких проектов и создает проблемы в больших проектах. Изначально питон не был предназначен для больших проектов.

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

AntonI ★★★★★
()
Последнее исправление: AntonI (всего исправлений: 1)
Ответ на: комментарий от AntonI

пытаются пихать туда где ему не место

Какая разница для чего он создавался и для чего предназначен, если такова реальность?

Вот Django – это для больших проектов или нет? Правильно там используется Питон или нет? А если на нем написан Инстаграм? Можно ли использовать Python для написание вебсайтов? Подходит он для этого? А если сайт превратился в Youtube?

MoldAndLimeHoney
()
Ответ на: комментарий от MoldAndLimeHoney

Вряд ли, в тех языках, в которых есть скобки, ВНЕЗАПНО, отступами тоже вложенные блоки форматируются форматтерами, как миленькие, так что убрать скобки из ЯП это звучит логично, раз человеческому глазу отступы приятнее для обзора СТРУКТУРЫ. Лучше отступов пока ничего не придумали.

mydibyje ★★★★
()
Ответ на: комментарий от AntonI

Если это так мешает, ну введите свои скобки и препроцессор, делается на коленке за час максимум - и будет как в плюсах

Апологеты питона имеют, по всей видимости, костыльный образ мышления.

Но никто не сделал же –> это НЕ является проблемой на решение которой надо тратить хоть какие то ресурсы.

Пипец логика. Для тех, у кого это проблема, свалили с питона. У них там весь институт такой что ли?

Раз за разом демонстрировать ошибку выжившего, это какое же нейроразнообразие в голове.

Psilocybe ★★★★
()

Ублюдочный синтаксис с отступами и однострочными лямбдами (но хотя бы лямбды есть). Изменение уровня иерархии блока может незаметно сломать код с последующим мучительным поиском ошибки.

Ублюдочная типизация и полиморфизм - из коробки одни массивы, в numpy другие, работающие как изкоробочные, но нифига не так.

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

Ублюдочный PyQT, который зависит от QT5.2.3.1-21/1 и никак иначе.

Выдохнул.

Puzan ★★★★★
()
Ответ на: комментарий от Forum0888

Можно и так сказать.

А ещё, как следствие ублюдочных зависимостей, разработчики прог на питоне часто рекомендуют ставить их в докере. Потому что только разработчики знают особую магию собирания зависимостей в одну работающую кучу. Более того, я подозреваю, что они сами не знают этой магии - один раз получилось, засунули в докер и не дай бог это ковырнуть палкой!

Puzan ★★★★★
()
Ответ на: комментарий от Forum0888

Конечно есть - это scheme r7rs. Лучше пока не придумали 🥰

Puzan ★★★★★
()
Ответ на: комментарий от intelfx

Ути-пути, ещё один диванный теоретик из мира розовых пони. Где и отступы никогда не ломаются, и код сразу пишется красивый как стихи.

Треугольник быстро-качественно-дёшево ещё никто не отменял, дядя.

no-such-file ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)