LINUX.ORG.RU

Питонячьи радости

 ,


0

4

Отступы, блин

Был у меня код вида:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # код
    else:
        # ещё код

Код скопипастил из одного места программы в другой. При этом не заметил как отступы нарушились. Ну вы поняли, да? Стало:

for blah-blah-blah :
    # какой-то код
    if что-то :
         # какой-то код
else:
      # ещё код

И вот это мне стоило довольно большого количества потеряного времени. Условие else: стало относиться не к if, а к циклу for. Учитывая, что тело цикла было достаточно длинным, как-то не бросалось в глаза, что else уехал не туда. Мать-перемать, но код после этого даже почти нормально работал.

Еще уже мелочь относительная, но все же, чего-то не подумав захотел поработать с гугл драйвом прямо из своего кода и недолго думая сделал pip install --upgrade google-api-python-client - и это разрушило всё. Благо, что от юзера, а не рута, вылечилось сносом .local и повторной накаткой некоторых модулей

★★★★★

Последнее исправление: anonymous_incognito (всего исправлений: 3)

Ответ на: комментарий от bread

Некорректное сравнение. «Кодерок из Бангладеш» встроен в гигантскую организацию, где куча стадий, на которых его могут поправить. А между водителем, его машиной и дорогой никаких посредников нет.

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

Автомобили конструируют не водители, а либо конструкторы-профессионалы на работе в корпорациях, либо конструкторы-любители у себя в мастерской.

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

low-code выбор мастеров.

Это когда пишешь на одном любимом ЯП типа VB.NET или C#, и используешь готовые либы из любого другого ЯП?

Кроме того есть возможность часть задач отдавать другим подчинённым кодерам :)

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

А так можно было?

Сам удивляюсь. Вроде писал коммерческий код на питоне (правда давно), а не знал о таком. Какой же питон крутой (нет).

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

Хочу вот dart попробовать для фронтенда

Это лет так несколько назад надо было пробовать, а сейчас вот есть Flet.

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

Идеальный ЯП, чтобы стрелять себе в ногу.

Всё-таки мелкую скриптоту лучше писать на Ruby, на JS или накрайняк на lua.

Кстати, у lua синтаксис весьма приятный. Если бы не сраная индексация массивов с единицы, вообще был бы прекрасен.

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

Всё-таки у всех лисперов есть какие-то зачатки технофашизма. Один говорит, онли лишп, другой более толерантный, указывает на безальтернативность имакса. А мы, все остальные, просто советуем быть внимательнее при копипасте.

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

IMHO если сравнивать по синтаксису, то PHP - просто божественный ЯП по сравнению с недоразумениями типа Python и Golang.

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

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

Да, но у нас есть и недостатки тоже.

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

Мелко мыслите.

Low-code is an application development method that elevates coding from textual to visual.

Rather than a technical coding environment, low-code operates in a model-driven, drag-and-drop interface. All development skill levels — professional developers, novice developers, subject matter experts, business stakeholders, and decision makers — can use low-code to build value-driven enterprise business applications.

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

Видел я такой ZennoPoster с блок-схемами.

Упоротые простыни на несколько страниц.

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

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

Как-то мне lua не зашло. Многословно получается, и есть прям совсем странности, как нумерация массивов или ~= От такого шаблоны трещат. Если уж делать не как все, то лучше сразу что-то инопланетное как лисп, а не почти такое как везде, но с подвывертом, чтобы спотыкаться там. Ещё global по дефолту как-то не радует.

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

Месье говноед

Нет! PHP это идеальный язык для быстрого написания масштабируемых, надежных и стабильных веб-приложений любой сложности. Четкий, прозрачный синтаксис, богатая и продуманная стандартная библиотека, беспрецендентно мощная поддержка ООП - все это оставляет конкурентов далеко позади, и делает PHP единственным истинно глоабльным и надежным решением.

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

На полной удалёнке из региона РФ?

Я так-то просто присматриваю JVM ЯП для автогенерации Hibernate DTO, чтобы прикрутить к CSLA.NET дата порталу :)

Но с другой стороны, хотелось бы, чтобы ЯП оказался полезным и для других use-cases.

Groovy какой-то слишком скриптовый, Java слишком устаревшая и многословная. И по идее надо бы выучить какой-нибудь ФП ЯП. Попробовал посмотреть в сторону F# - IMHO синтаксис ужасный :(

Сравнил со Scala, и о чудо, она мне понравилась! :) Делал сравнение в Claude.AI между C#, Groovy, F# и Scala. Вроде Scala ничего так.

Почитал: https://www.reddit.com/r/scala/comments/14mbfbp/is_scala_worth_learning_in_2023/

тоже прикольно.

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

Месье говноед,

А Golang-щики кто в твоей терминологии? Дегустаторы разлагающейся падали ? :)

https://www.reddit.com/r/PHP/comments/13xyfwb/php_worth_learning_2023/

 Things I like:

    Lots of packages available via Composer, and lots of extensions available via PECL. You can pretty much do anything web related you want. Symfony components are amazing.

    Good suite of developer tools available. I do PHP in VScode, with Intelephense, PHPstan, Xdebug, and php-cs-fixer. Using these tools I've been able to cut down on time spent debugging by a lot. A lot of people here also love PHPstorm.

    Nice syntax. Match statements, autoloading, constructor property promotion, traits, interfaces, enums. Lately I've been experimenting with Fibers for concurrent scripting, they are great.

Overall I think learning PHP was a good choice for my career. I work in IT and it helped me really stand out and get hired at a great new job recently. I'm able to automate and script things really fast and get rid of a lot of tedious busywork. I hope to go into software development in the future. While I do think the language has a little baggage, overall I think it's heading in the right direction. 
sanyo1234
()
Последнее исправление: sanyo1234 (всего исправлений: 1)
Ответ на: комментарий от bread

Нет! PHP это идеальный язык для быстрого написания масштабируемых, надежных и стабильных веб-приложений любой сложности. Четкий, прозрачный синтаксис, богатая и продуманная стандартная библиотека, беспрецендентно мощная поддержка ООП - все это оставляет конкурентов далеко позади, и делает PHP единственным истинно глоабльным и надежным решением.

Надеюсь, после компиляции PHP на .NET?

https://www.peachpie.io/

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

В каком радужном мире фантазий ты живешь, что у тебя такие аргументы? Мне даже высмеивать неохота человека, который в качестве подтверждения своих слов приводит ссылку на IMHO какого-то программиста. Блжад, это даже не твой личный опыт. Одно недоумение.

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

Блжад, это даже не твой личный опыт. Одно недоумение.

Личный опыт - чтение кода различных CMS-ок. Намного приятнее Golang, btw.

Сам кодить на PHP я бы конечно не стал, мне больше нравится .NET и вообще я не веб программист.

sanyo1234
()

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

James_Holden ★★★
()

Ну так. Не копипасти или следи что копипастишь. Подобная проблема может проявитья не только из-за отступов.

А pip install ты не в venv сделал? Малаца, бахнул себе в ногу.

anonymous-angler ★☆
()
Ответ на: комментарий от anonymous-angler

Подобная проблема может проявитья не только из-за отступов.

Отступы внезапно более прозрачные, чем скобочки и begin/end.

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

Пример сравнения синтаксиса C#, VB.NET, Scala, PHP, Python и Golang:

https://rentry.co/6bvdy

IMHO C# и VB.NET лучшие, потом Scala и PHP, и Python с Golang где-то совсем уж в районе хвоста.

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

Я вот как бы даже не скрываю - автоматизация ипотечного кредитования в США у меня была.

Так вот что за пидарасы виновны в кризисе 2008 года.

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

Loveson лично разбрасывал с вертолёта? Возвращаясь к твоей адекватности и умственной нормальности.

sanyo1234
()

ЛОЛ, ещё один всё понял. Я уже много лет тут про это рассказываю, но питономакакам всё божья роса.

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

Любишь много буков в стиле паскаля?)

  1. VS сама дописывает

  2. Код приятно читаемый без вывертов

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

что каждый указанный недостаток исправлен в одном из этих выпусков

Зачем? Там половина «проблем» на самом деле преимущества, а другая половина «не как в питоне». Учитывая что питон это говно говна, то последнее является комплиментом.

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

Напомнило мой пет-проект ЯП:

Bison/Flex?

Было бы прикольно немного переделать для себя VB.NET, наверно с помощью Roslyn.

Немного напрягает dim. Хотелось бы var как в C# :)

И точки с запятой в конце каждого оператора (вместо опционального двоеточия).

Наверно, это единственное, чего мне не хватает в VB.NET, чтобы он был для меня полноценным ЯП, которым в юности казался C++.

Ааа.. точно, ещё же надо нормальные комментарии как в плюсах и Bash на выбор. Кстати RemObjects вроде бы добавили комментарии в свой Mercury диалект VB.NET

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

Я вручную на регулярках делал только транслятор с ASP+VBScript в VB6, и то умаялся, но получилось вполне рабочее решение.

sanyo1234
()
Ответ на: комментарий от LINUX-ORG-RU

Наверняка кто-то уже сделал препроцессор для питона где границы блоков кода можно обрамлять явно {…} или then…end чё мучиться =)

здесь
cast @Virtuos86

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

У меня компиляция в FASM. С качеством кодогенерации где-то на уровне компиляторов 1-й половины/середины 90-х. Сейчас реализована напрямую из синтаксического дерева, что не позволяет выполнить полноценную оптимизацию с раскладыванием на элементарные блоки операций.

Пример кода для выражения:

	word v200_2 = 2 * v100 + v100 * 3 - (v5 + v3 + v2) * 10 - v200;
        mov     EAX,  dword [EBP-24]
        add     EAX,  EAX
        mov     EDX,  dword [EBP-24]
        lea     EDX,  [EDX*2+EDX]
        add     EAX,  EDX
        mov     EDX,  dword [EBP-20]
        add     EDX,  dword [EBP-16]
        add     EDX,  dword [EBP-12]
        lea     EDX,  [EDX*4+EDX]
        add     EDX,  EDX
        sub     EAX,  EDX
        sub     EAX,  dword [EBP-28]
        mov     dword [EBP-40], EAX
wandrien ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.