Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>2800766 На js делают из-за того что интерфейсы на реакте можно клепать, в итоге одна макака клепает и фронт и мобилку. В чем профит это делать на питоне если тоже самое можно сделать нативно на свифте и котлине?
Всем привет! Решил я попробовать поучиться языку программирования просто ради фана. Взор мой упал на пйтон,т.к. сейчас на волне хайпа, но в прошлом треде все его хейти. Помогите, гуру программирования, с выбором нужно стека, чтобы не зашкварно было и интересно
>>2800678 (OP) Раньше спокойно юзал одну и ту же сессию алхимии в конкурентных запросах через asyncio.gather, теперь похоже что в алхимии 2.0 такую возможность убрали, падает ошибка IllegalStateChangeError Петуши утверждают что надо использовать по 1 сессии / коннекшну на 1 процесс или тред: https://docs.sqlalchemy.org/en/20/orm/session_basics.html#session-faq-threadsafe Втф? Нахера они мне сломали код?
>>2800969 по фану я написал, потому что нет еще точной поставленной цели. Естественно, если мне зайдет, то конечная цель будет - сменить сферу деятельности. На данный момент хочется что то попробовать как хобби, но т.к. базы и опыта нет - пишу сюда
>>2800989 >нет еще точной поставленной цели Малыш, когда научишься целеполаганию, тогда о чем-то и можно будет разговаривать. Ты как пацан, который вечно не знает чего он хочет и желает чтоб остальные указали ему путь.
>>2800992 >Ты как пацан, который вечно не знает чего он хочет и желает чтоб остальные указали ему путь. - Чел, я первый раз зашел узнать что то про айти, решил сразу спросить "знающих людей" а ты как стремный прищавый айтишник, которых показывают в фильмах. Токсичный лошок, который сидит дома и пытается самоутвердиться в анонимном чатике) В чем была проблема перечислить название пару языков, как прошлый двачер?
>>2801007 Потому что никто не знает что конкретно тебе нужно. Что тебе понравилось в кодинге, куда ты метишь, зачем и почему - для разных целей разные инструменты.
Представь, ты написал: "хочу попробовать вкатиться в ремонт, посоветуйте с чего начать, отвёртки или молотка?"
>>2801007 >перечислить название пару языков первый и главный это английский. Второй по обстоятельствам, сербо-хорватский, греческий, армянский, грузинский и другие варианты встречаются
>>2800989 >хочется что то попробовать как хобби кого ты обманываешь, других или себя? Найди другое хобби. Французский-испанский языки, например.
>>2801031 я не знал что это так всё выглядит сложно, спасибо за аналогию с ремонтом, буду разбираться) >>2801042 иди пообщайся с обезьяной, который выше токсичил >>2801044 спасибо)
Господа зелёные, чё вы мозг ебёте?.. Пусть учит паттерны программирования. Примеров для них на любом языке куча. Если нет абстрактного мышления, чел просто это закроет для себя и всё. Перейдёт к другим темам.
>>2800678 (OP) >Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), На сколько актуальна информация из шапки?
>>2801007 Я же отослал пикрил, вот примерно как правый челик и выгляжу. Скорее даже вот так. На самом деле мне даже нравятся такие непоседливые мальчишки как ты, если ты сейчас в Батуми, мог бы одновременно жестко и нежно прочистить твой дымоход. Конечно я знаю свою дело и резко ничего делать не буду, смазки будет вдоволь, думаю ты очень скоро войдешь во вкус.
Традиционно напоминаю, что Питон - ненастоящий язык, который годится только для небольших скриптов и математических научных дрочилен. Питон используют опытные погромисты как вспомогательный язык, поэтому если вы думаете, что можете вкатиться в айти, зная питон - вы глубоко ошибаетесь.
>>2801205 Я уже давно вкатился, на питоне не пишу, но краем глаза вижу что джангу постигает участь рельс. Вот и интересуюсь на сколько это актуально у вас
>>2801717 Смекаю, но это никак не опровергает >Питон - ненастоящий язык, который годится только для небольших скриптов и математических научных дрочилен. Но опровергает >если вы думаете, что можете вкатиться в айти, зная питон - вы глубоко ошибаетесь Может это и ненастоящее айти, но никого настоящесть ебать особо не должна кроме владельцев продуктов.
>>2801733 У владельца есть вопрос на повестке дня "насколько много времени нужно на языке икс, насколько легко поддерживать, сколько стоит час программиста", поэтому выбор языка играет роль. А программисту похуй, если ему скажут "сделай задачу на языке, неподходящем для неё", он просто ответит что это займёт дохуя времени, но если платите то сделаю.
>>2801734 > "насколько много времени нужно на языке икс, насколько легко поддерживать, сколько стоит час программиста" Во всё это замечательно вписываются не-тру бидон и пыха, что же это делается?
>>2800959 >попробовать поучиться языку программирования просто ради фана >ради фана О каком фане идет речь? Если ты гик, который может буквально без преувеличений, забывая про сон и еду, десятками часов ковыряться в простынке кода. то да такой фан в избытке, если тебе такое нравится. Другого фана у нас для вас нет.
>>2800989 > если мне зайдет А, вот оно что. Если ты наслушался сказок про легкий вкат и 300кк в наносекунду и это твой мотив, то лучше сразу закрывай терд и забудь про всё это говно, время и силы сэкономишь. Просто если тебя от природы, так сказать, не тянет погромировать, то выше кодомакаки формошлепа ты своими силами не поднимешься, а с таким уровнем найти работу нереально - потому что сейчас рынок труда перенасыщен аутистами, многие из которых в отличие от тебя страстно увлекаются погромированием.
>>2802377 > потому что сейчас рынок труда перенасыщен аутистами, многие из которых в отличие от тебя страстно увлекаются погромированием Так это они тут бегают и рассказывают, что питон ненастоящий язык. Только хачкель с вставками ассемблера и лиспа.
>>2802399 Да не, это шизы бегают. Чтобы бегать и рассказывать, какой питон недоязык из-за динамической типизации особо программировать не нужно уметь. Мне кажется в основном этим занимаются те, у кого очень так себе уровень в "их" языках в том числе, они ни питоном не владеют, ни "настоящими" языками
ёбаная сукасуэль. Эта падла 10 мин считает каунт(*). И эти тормозилы алхеми и прочая онлайн-параша ещё будет считать, что делают всё правильно. Я ебал что эта недо-дб както вообще работает... Ещё и учатся на ней )))))) Ох мая мама....
Уже 14 день пишу памятку как распознать вкатунца (ссылки на законы, где проверить выписку, что и как фиксируется в ИП, где можно пробивать вкатунца (чаты), примеры резюме-обманок, примеры накрутки опыта, примеры пет-проектов самозванцев и многое другое)
Уже 14 день пишу памятку как распознать вкатунца (ссылки на законы, где проверить выписку, что и как фиксируется в ИП, где можно пробивать вкатунца (чаты), примеры резюме-обманок, примеры накрутки опыта, примеры пет-проектов самозванцев и многое другое)
>>2803726 Нет, питон лучше джавы, потому что не компилируется в коробке в контейнерный ассемблер, чтобы из этой коробки перекомпилироваться в системный ассемблер.
>>2803468 Я думаю простоту кода и наличие большого количества библиотек достаточно. Хотя.. У всего есть минусы. Питон медленный, да, однако есть многие JIT`овские компилы, да? Правильно. ..
>>2800678 (OP) Как думаете нормальная идея сначала вкатиться джава разрабом, а потом уже внутри конторы перейти на питон? Просто почему-то 80% стажировок только для джавистов.
>>2804813 Двач, я не писать на джаве. Я хочу разрабатывать на питоне, двач. Я хочу, чтобы вокруг меня копошились маленькие кодеры на джанго и фласке а я учил их мудрости жизни, накручивая бороду на палец. И анон, я понял как миновать отвратительный период работы на джаве и сразу перейти к питону! Надо стать питонистом-приживалой.
Для этого надо действовать хитро и осторожно: прокрасться в состоявшуюся компанию со стеком на джаве (и желательно, мертвым тимлидом) и мимикрировать под стажера-джависта, повторяя все его повадки. Команда (если она состоит не из самых умных людей), возможно и не обнаружит подвоха, и тем самым успешный питонист-приживала получит профит в виде будущего переката на питон!
>>2803196 >>2803284 да не. я может хреново написал. Сама майсукл долго считает. индексы есть везде. обычная табличка 4-5Гб примерно. Ну как так делается-то разрабами???? Они похоже сразу весь файл в озу гонят, потом его разбирают на поля (х2 затраты озу, диска и времени), потом выдают запрос. Ну неужели нет индексов в самом файле, хотябы б-дерево чтоли??? Писец. Гавно а не драйвер баз.
>>2804998 count обычно дорогая операция, он быстр только на простых запросах в MyISAM, а в других базах и ImmoDB от MySQL это уже дорого. Кроме того ещё условия запроса надо смотреть. Реально тебе скорее всего надо выполнить весь запрос, чтобы получить результат. Кстати там ещё нюансы есть, что нужно count(1) делать, например, какая-то магия вокруг этого есть в алхимии.
Тебе надо посмотреть, какие запросы под капотом в итоге.
>ёбаная сукасуэль. Эта падла 10 мин считает каунт(*) Так может у тебя там усливия в каунте ёбнутые и неоптимальные, или может там подзапрос на каждой записи делается, или может там в каунте такое условие что индексы с ними не помогают (не дают нужной информации для сужениея области поиска) и приходится фулл-тейбл скан делать
>индексы есть везде А они там нужны прям везде?
>Ну как так делается-то разрабами???? Да-да, это всё разрабы mysql, ты-то точно нигде не обосрался
>Они похоже сразу весь файл в озу гонят, потом его разбирают на поля (х2 затраты озу, диска и времени), потом выдают запрос. Да, всё именно так
>Гавно а не драйвер баз. А драйвер тут уже каким боком?
>>2804998 > я может хреново написал Это факт, запрос у тебя 100% говно > Сама майсукл долго считает Ну потому что запрос хуйня, да > индексы есть везде. обычная табличка 4-5Гб примерно С хуевым запросом и небольшая данная будет 10 минут запрос делать > Писец. Гавно а не драйвер баз. Какой же ты дегенерат, пиздец. При чем тут драйвер? Драйвер просто твой запрос в бд отправляет, это буквально тоже самое, что зайти в консоль, открыть мускуль и там ввести запрос
>>2805200 >>2805146 >>2804998 Что надо знать про count(). Эта хрень работает почти везде долго. Даже запрос вида select count() from my_big_table; Это быстро работает только в MySQL, когда ты используешь тип таблицы MyISAM, потому что там специальный счётчик для этого есть. Если ты используешь тип таблицы InnoDB, а это как бы страндарт сейчас, чтобы транзакции были и всё такое, даже этот запрос будет работать медленно.
Вообще запрос count(*) не быстрее других запросов, тебе точно так же надо сканировать все таблицы, участвующие в запросе. Разве что данные готовить под вывод не нужно, если у тебя очень тяжёлые строки тогда это может чего-то занимать.
Увы, но способов мало решать эти проблемы не нарушая нормализацию, не создавая своих счётчиков специальных.
>>2805283 >Эта хрень работает почти везде долго Дефайн "долго". Одно дело всю таблицу сканировать, другое дело если есть условие по индексируемому полю, тогда перебирать на несколько порядков меньше записей
>>2805341 >Дефайн "долго". Одно дело всю таблицу сканировать, Долго это значит примерно эквивалентно как сделать select id с тем же условием вместо count(). Причём даже в тех случаях, когда вроде бы можно было бы число записей посчитать быстро.
>>2805393 Уиии! Няшка, если хочешь сделать текст по-центру в wxPython на Винде, я расскажу тебе как! (^◡^)♪ https://goonlinetools.com/snapshot/code/#5ru63m3dvnx1928d5nerjz Смотри, какие миленькие символики! (◕‿◕✿) Этот кодик сделает твой текстик кавайно по-центру. Важно не забыть юзать wx.ALIGN_CENTER, чтобы текст был как надо выровнен! Если что, я тут всегда, готова помочь! (。♥‿♥。) 💕
>>2805818 Ты путаешь теплое-мягкое Хорошесть не определяется тем, какую доходность оно приносит. Это в принципе разные категории, а ещё бывает так "что так принято", когда посредственность давит что-то хорошее. Потому что посредственность распространена и никуда ты её не сдвинешь.
>>2806175 То есть, "хорошее" определяешь лично ты в треде на дваче? Это твой полыхающий тред висит про питон? Тебя выебал питонист и теперь в тебя психическая травма?
>>2805341 select count(*) from tablica_traxal_razrabov; я много прошу?? хотя бы 10-20 сек. Но нет, млять, мускл 10мин делает ответ. А заранее считать строки разрабы не учили его? Ну не смешите мои яйца.
пысы. Перешёл на постгри. Та же хуйня. Немного быстрее. 1-2 мин. Это же наипростейший запрос без условий. Уже в служебных таблицах строки не могут посчитать??? Ёбаные разрабы, ваших мамок и то быстрее трахать.
>>2807571 >>2802868 >ёбаная сукасуэль. Эта падла 10 мин считает каунт(). А ты не думал, что существуют другие базы данных? Можно взять nosql или графовую базу данных или olap базу данных или специализированную базу для временных рядов. Не обязательно везде пихать реляционную бд. Люди её пихают туда, где она вообще работать не должна, в интернет вещей, в системы рекомендаций, ещё куда-то.
То что у тебя по 10 минут выполняется это признак того что ты выбрал неверную базу данных. И надо было ставить что-то другое под твою задачу. Какую-нибудь кассандру/neo4j/clickhouse/influxdb или что-то ещё.
Нет плохих баз данных. Они могут подходить или не подходить под конкретно твою задачу.
>>2807591 не, ты не "мимо" )) Спасибо за указание. Рел.база для данных по клиентам налоговой (ИП, ООО и прочих. Там более 100 полей если всё распарсить. Мне их в Nodb хранить по ключам???? Это вообще пиздец будет по производительности..
SELECT row___id, count(*) AS total, sum(case when kind = 1 then 1 else 0 end) AS ip, sum(case when kind = 2 then 1 else 0 end) AS ooo, sum(case when kind = 3 then 1 else 0 end) AS kfh, sum(case when kind = 0 then 1 else 0 end) AS fl FROM fnsclients GROUP BY row___id
>>2807604 Тем более. Если у тебя 100 полей, я даже не представляю как ты этим управляешь. Тебе нужно объявлять схему при создании, а потом тебе начальник говорит "добавь ещё 10 полей" и ты делаешь миграцию ALTER TABLE. А потом ты решаешь изменить размер столбца CHAR или VARCHAR2. Снова ALTER TABLE.
В NoSQL мне похуй абсолютно - мне хоть тысяча полей прилетит, я ничего не объявляю. Просто сразу пишу в базу данных и всё. Она быстрая, может масштабироваться хоть до луны. Но минус NoSQL в том, что она подходит под ограниченное количество уже известных запросов. Если ты мутишь аналитику, вариант с монгой сразу отпадает.
Если у тебя много аналитики, анализа по тратам, надо было смотреть в сторону olap и кликхауса.
Короче я бы наверно смотрел в сторону clickhouse, либо cassandra + solr. Естественно, я не в курсе всех деталей твоего проекта.
Привет. Как csv файл циклом пройти? Суть в том, чтобы сравнить строки (после разделителя) с одной колонкой, и если есть совпадения добавить в первую строки из третьей.
>>2807632 падажжи. Сейчас пока пет-проект. В налоговой много записей, я сразу в БД перегоняю, чтобы проще sql-запросы делать. Ну вот нафиг мне на данном этапе олапы и прочее??? У меня програ питон-типа-скрипт-консоль, вроде рабочего места говно-мастера по кассам. Нужно некоторые данные дёргать, ТО-клиенты и прочее. Зачем мне анализ БД, прочие монго??? Нужно нормальная не тупая работа с БД, майскл тупит сильно на 5гб файле. Постгрес - намного быстрее, коунт до 0,5мин-1мин. Ну сделаю я ноу-дб, а выигрышь???? На вспомогательных запросах не потеряю? И на рукожопости моей
>>2807649 Ты сам себе противоречишь. Жалуешься что mysql слишком медленный, при этом использовать кассандру у которой ответ где-то 10-20 миллисекунд, ты отказываешься. Сложность запроса MySQL с join'ами всегда была O(log(n)), кассандра читает со скоростью O(1). Поэтому она может масштабироваться хоть до луны, не важно хоть 5 гигабайт данных, хоть 55 терабайт данных. Твоя же mysql соснёт, у неё чем больше данных, тем она медленнее работает. Будет 10 гигабайт, она будет 20 минут запрашивать. Будет 20 гигабайт данных, запрос будет длиться 40 минут. Ты в mysql выигрываешь только в гибкости запросов/присутствии join'ов. Но это как я выше говорил, фикситься solr'ом.
Я не понял, а чего вы Mojo не обсуждаете? Скоро будем компилировать Python и скорость будет на уровне С. Вроде там даже замахнулись на безопасную работу с памятью как в Rust.
>>2807672 кассандра это sql-система, для аналитических запросов, а не для хранения данных
Ну а вообще так, у тебя тормозит система, тормозят запросы. Значит надо разбираться, почему они тормозят
ХЗ, может ты год назад вкатился, конечно - тогда знай, что в этом твоя работа заключается, разбираться и придумывать решение. И так изо для в день, последующие 30 лет. Привыкай.
>>2802962 сделай лучше памятку как оптимизировать поиск достойных джунов без опыта, это будет гораздо полезнее) или тебя терзают мучения, что кто то вкатился быстрее тебя?
>>2808443 Хотя, тут даже открываются новые области применения для Python. Где раньше было использование Python нежелательным, теперь будут открыты все двери! И переучиваться почти не придётся.
>>2809045 Сижу на платном пайчарме. Полет нормальный, но разрабы дебилы ебучие. Некоторые моменты норм, а некоторые ебаный колхоз. Сразу чуствуется рука джава дебилов. >>ой кек пук я не запускаюсь просто потому что я не могу, нате вам стактрейс и ебитесь как хотите. когда же этих дебилов научат обрабатывать нормально ошибки чтобы можно было отдебажить хули оно не стартует.
>>2810153 Потому что он самый популярный, и для Питона - объективно лучшая IDE на данный момент, а для настоящих пацанов, как известно, легкие пути - это зашквар. Вот на конфиг (Neo)Vim или Emacs тратить недели человеко-часов, вместо того, чтобы чем-то продуктивным заниматься - это да, во дворе все уважать будут. А за Sublime, Spyder или Notepad++ батя скажет - малаца.
>>2810515 Самый просто и удобный это пайчарм. Зачем тебе писать что либо в нотпаде++ это ни себя ни уважать, ни своих родных. Особенно после того как у мейнтейнера главного крыша на политике поехала и он начал в релизы сувать полит наративы.
>>2810723 Пайчарм это стандартная жавапараша от ЖидБрейнс со всеми вытекающими, но в первую очередь у них тулинг для Питона просто уступает мелкомягковскому. Один только Pyright чего стоит, Пайчарм работает с тайп хинтами как земля в сравнении. Плюс в VS Code лучшая реализация работы в контейнерах/WSL/через SSH.
>>2810723 >Особенно после того как у мейнтейнера главного крыша на политике поехала и он начал в релизы сувать полит наративы. Можно поподробнее? Для меня все аргументы инвалид, кроме таких залетов.
>>2811193 Ну а кто будет софт поддерживать бесплатно? Либо на зарплате от спонсоров, либо вот такие вот шизы, хз чего у тебя пригорает позавчера БЛМ, вчера уйгуры, сегодня хохлы, завтра еще кого нибудь будет спасать лол А по делу нотепад говнище, пережиток прошлого
Можете объяснить почему ф4 не останавливает цикл? То что затемнил на скрине к делу не относится, чтоб на него не отвлекаться. Ф2 всё верно запускает, а вот на ф4 никакой реакции.
Вот этот же код: running_event = asyncio.Event()
async def process_clipboard(): global running_event while True: if running_event.is_set(): clipboard_text = re.search(r'https?://[^&\s]+youtube[^&\s]+', pyperclip.waitForNewPaste()) await asyncio.sleep(0.1) if clipboard_text: print(clipboard_text.group()) with open(os.path.join(os.path.dirname(__file__), "results.txt"), "a") as f: f.write("\n" + clipboard_text.group())
>>2811531 >keyboard.add_hotkey('F2', lambda: (running_event.set(), asyncio.run(process_clipboard()))) Нихрена не понял, как ты asyncio цикл запускаешь.
Я не очень понимаю, как работать с твоим keyboard, по какому принципу он вообще работает.
В теории так, ты должен запустить asyncio loop, и в нём уже обрабатывать события. Я бы предположил, что сначала ты делаешь asyncio.run(process_clipboard()) а внутри этой функции уже регистрируешь обработчики клавишь, перед запуском while-цикла.
Это не точно, надо что-то знать про твой обработчик клавиш, как он работает
>>2811554 Дополнение. Там какой-то keyboard.wait(). Вероятно это что-то блокирующее, и вообще видимо keyboard блокирует свой поток. Либо в отдельном потоке запускается.
На самом деле асинкио нужно уметь дружить с подобными обработчиками, или с ГУИ, и другим. Для этого надо немного уметь во многопоточное программирование.
Тогда идея такая, что в одном потоке ты запускаешь асинкио и всю связанную с ним логику, а в другом потоке свой обработчик клавиатуры, либо ГУИ, либо ещё чего-нибудь.
В тот момент, когда ты словил какой-то эвент от клавиатуры или он ГУИ, ты формируешь сообщение специальное в асинкио.
При этом надо использовать потоко-безопасные возможности, это делается через https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_soon_threadsafe Как вариант, таким образом ты вызываешь функцию, которая кладёт сообщение о том, что был эвент клавиатуры-ГУИ в asyncio.Queue а уже внутри асинкио ты слушаешь эту очередь и обрабатываешь полеченные оттуда сообщения. Ну или можно asyncio.Event выставлять, это уже под твои задачи
>>2811554 >>2811556 Спасибо за развернутый ответ. С асинхронностью в питоне я плаваю, я понимаю как она работает в JS и зачем нужна при загрузке страниц, ну и здесь как-то по аналогии. По сути и пытаюсь с ней разобраться. Был бы какой-то правильный пример как обрабатывать клавиатуру.
Вот так вот кстати работает и ф2 и ф4, но мне не нравится вот этот loop.run_forever(), хотелось бы по одной кнопке и прерывать эти бесконечные циклы и запускать, а так получается он всё время в ожидании находится. Хотя keyboard.wait() то же ожидание, но он оправдан тем что еще есть набор кнопок, а не только ф2 ф4, да и жрёт ресурсов минимум. loop = asyncio.get_event_loop() loop.create_task(process_clipboard()) keyboard.add_hotkey('F2', lambda: running_event.set()) keyboard.add_hotkey('F4', lambda: running_event.clear()) loop.run_forever()
>>2811629 The scripts are installed in 'C:\Users\Username\AppData\Roaming\Python\Python310\Scripts' which is not on PATH. Add this directory to PATH. Retard.
Что-то я сообразить не могу ка объявить глобальную константу для всех модулей. Вот есть у меня програ, которая вначале спрашивает у пользователя некоторые начальные данные, которые будут глобальными константами в течение всей работы проги. Дальше загружаюются модули с кучей классов и функций, которые в тех или иных методах/функциях юзают эту глоабльную константу. Ну например, в игре спрашивают сколько игроков и уровень сложности. Модуль "враги" считает хп и кол-во врагов в зависимости от сложности и игроков. Так вот, как модуль "враги" узнает про количество игроков и уровень сложности? Если импортировать основной модуль в модуль "враги", то будет перекрестный импорт или зацикливание основной проги. Можно было бы на лету создавать файл с константами, но это очень нежелательный вариант.
>>2812823 С вероятностью 99% у тебя должен быть главный файл программы (обычно его называют main.py или ProgramName.py), в который ты уже будешь импортировать все свои модули и затем создавать начальное состояние программы. Выполни пикрелейтед книжку или какой-нибудь туториал про игру или GUI.
>>2813391 Тебе в соседний тред там по хардкору уже пояснили что питон говно без задач, скриптовый язык уровня autohotkey для школьников, что js в 4 раза лучше а сишарп в 7 раз. Работы на питоне нет, потому что вкатуны с курсов всё засрали и обвалили рынок труда нахуй. Всё это не иронично правда. Иди своей дорогой.
>>2813393 >>2813508 А кстати реально кроме ML и всякго мелкого скриптования сейчас что-то пишут на питоне? Раньше на нем делали все и по чуть-чуть, сейчас как-то меньше в инфополе попадает. Вкатуны один хуй его продолжают учить лол Мимо
>>2813892 Ну, джангой неплохо получается делать "хуяк хуяк и в продакшен по фасту" так что хз что тут упоротого, скорость разработки это тоже бузинесс валуе так сказать
>>2813942 >джангой неплохо получается делать "хуяк хуяк и в продакшен Спорное утверждение, тот же ларавел не такой многословный, а если нужно только json выплюнуть, то есть еще проще инструменты
>>2813961 >Хз, что это за контора таким занимается, «хуяк и в продакшен» >Рога и копыта мб какие Иногда бывает надо какие нибудь лендосы с промоакцией или какой-нибудь еще хуетой, которым жить максимум месяц. Вот их как раз и надо хуяк-хуяк и забыть о нем
Не мог бы уважаемый анон пояснить, почему хуй не стоит не работает скрипт, для дальнейшего обращения в другую базу данных постгреса, те же данные все, всё локально. Юзер тот же.
-- делаю в базе-откуда-хочу обратиться:
create extension postgres_fdw;
create server fnsserver foreign data wrapper postgres_fdw options (dbname 'fnsdb', host '127.0.0.1', port '5432');
create user mapping for postgres server fnsserver options(user 'postgres', password 'postgres');
import foreign schema public from server fnsserver into public;
>>2813391 скриптовая ебень. для прототипирования задачи, как раньше бэйсик язык был... один хер переписывать на с++ приходиться, ибо всё тормозит сильно.
>>2814565 уже решил вопрос. даже с нестоячей пипеткой. Надеюсь питон сдохнет как и хoхлы со временем. И мы все вернёмся в счастливое время к бэйсику, паскалю и Си, ассемблеру и форту. Прочь от жабы и интерпретируемого говна.
Аноны, сломался линтер в ебучем вскоде. Просто нихуя не происходит, flake8 ошибок не пишет, pylance тоже как будто не работает. Переустанавливал экстеншоны - не помогает. Ошибок никаких не пишет. Как понять что с этим говном не так?
Сделал воркеры на базе трединг.Тхреад, чтобы запустить много блокирующего говна - стало ещё медленнее. Потом я узнал про GIL. Потом запустил своё говно с одним воркером в два инстанса - производительность ожидаемо удвоилась.
Я правильно понимаю, что мне надо вместо тредов сделать воркеры из форков? Там воркеры лопатят однотипную не кооперативную хуйню - ждать друг друга им не надо - но есть одно важное но: у каждого из них сейчас есть поле, которое может перезаписываться как самим воркером, так и главным потоком, а трединг.Лок заботится о рэйс кондишонах и вот этом всём. Как сделать то же самое или похожее с форками? Или я вообще всё не так понял и есть какое-то более элегантное решение проблемы параллельного запуска блокирующего кода?
>>2816247 Можешь назвать не self, а по-другому. Но вообще это наследие перла, который питухон пытался скопировать под соусом перла для даунов, не осиливающих перл оригинальный из-за сложных закорючек.
>>2816259 >>2816265 это не отвечает на мой вопрос, я же не сказал self совсем выкидывать, он понятно нужен для обращения я спросил зачем его пихать в методы обязательно. Единственный вариант как я вижу, что если в питоне создаются зачем-то в классе просто функции, в которых self не пишется
>>2816307 Если метод вызывается на инстансе, сам инстанс попадает в него первым аргументом. Если метод вызывается на самом классе, как статический, то этого не происходит.
В пехопе или на чём ты там кодишь, this внутри метода просто есть. В питухоне же пошли перловым путём - вероятно, потому, что ЖАБОСКРИП и ПЕХОПЕ в далёкие года зарождения питухона популярностью, по понятным причинам, не пользовались, и больше копировать было нечего; а вероятно специально, чтобы дауны, которые уже потратили время на изучение перла, но так и не смогли его осилить ввиду умственной отсталости, быстрее и проще вкатились в питухон и сформировали фанбойское КОМЬЮНИТИ на радость фашисту, этот питухон породившему. А скорее всего и то и другое.
sup, помогите бедолаге с aoigram. Не смог нагуглить решение пик рил - мой код. Короче ботик, который через функцию берет текст из дб на sql. Как сделать так, чтобы текст был спойлером?
>>2816422 так можно же было просто использовать ключевое слово self, которое бы и определяло, что метод внутри класса обращается к своему экземпляру, чтобы не вынуждать каждый раз прописывать self в объявлении метода, если он там так и так есть
Бля люди как работу найти если только математику на уровне 1 курса знаешь, программирование на минимальном уровне: алгосы на питоне и немного на с++, джанго, немного html и css, ну и с компом умею вроде работать, везде в вакансиях требуют навыки будто от бога, на собесах которые в ютубе тоже много разных вопросов, не знаю мб в data science лучше пойдет, но там я вобще ниче не знаю(не знаю можно ли матешу считать сюда)
>>2817525 А так я в вузе учусь, на 2 курс перехожу, уже думаю начать на пол ставки работать где-нибудь именно прогером, но где хз. То что я даже не джун, это да, но бля, хочется уже работу потестить, а тратить на обучение полгода или год, живя в общаге на 3 с половиной рубля в месяц питаясь гречкой, ну не совсем хочется... но видимо придется, ладно. мб вообще пока что забить на это.. кстати а ты работаешь кем-нибудь? просто интересно, расскажешь как устраивался мб?
>>2817510 Какая математика? Ты про чё гонишь? Питон - это язык общего назначения. А что будет когда ты возьмёшь специализированный язык, а-ля джулия? https://julialang.org/ Или матлаб/maple? Бушь орать, памагите убивают!! Спасити пиздец научный, ничё не панимаю!!!
>>2817510 >как работу найти Сейчас такое время что даже лучшим оч тяжело вкатиться, мб и не в тебе дело. А так то не стесняйся, самовыражайся саморазвивайся
>везде в вакансиях требуют навыки будто от бога Эээ, например? Если в какой-то вакухе список требований на 20 скилов то это значит что они просто то что "будет плюсом" тода докинули
>>2817557 Питон не является каким-то задроченным языком под матан. Это обычный зумерский язык. Он не супер оптимизированный под численные вычисления как тот же фортран. Тебе не на что жаловаться, ты не видел там где действительно "нужно знать математику и алгосы". Открой те же репозитории R, там просто пизда. Фармокинетика, биостатистика, взрыв мозга. То что ты изучаешь, это даже ебать не алгоритмы. Алгоритмы это "параметрическая оценка теории ответов на задания, с оценкой латентного распределения" https://github.com/SeewooLi/IRTest ВОТ ЭТО ЕБАТЬ АЛГОРИТМЫ.
>>2817603 >не писал, что хочу задрачивать матан Ну? Тогда какая разница кто что требует? Ты учи то, что тебе действительно НУЖНО. Мало ли кто что ТРЕБУЕТ. На параше у себя будут требовать.
>>2817652 Да нечего особо рассказывать. Я в этой отрасли варюсь наверно с 2000х годов. Был всем - от сисадмина до программиста роутеров на с++. Всякое дерьмо повидал и теперь делаю сайты. Раза 3 вылетал из универа, бестолковый университет с бестолтоковыми предметами. Научился всему сам по курсам.
>>2817541 дружище чтоб тебя взяли даже за еду ты либо должен что-то уметь либо у тебя крутой вуз хотя даже там надо что-то уметь так что сиди учись а так я в бэке на пхп похуй
>>2817663 Даааа я вечно, то тут то там. Куда предлагали мне, туда я и устраивался. Друг предложил - у нас тут нужен программист на завод. Я такой - ну завод так завод. Потом работал дизайнером на армянина. Пришёл, он говорит "садись". Умеешь в фотошопе работать? Да. Всё, приходи завтра не опаздывай. Давал мне даже станками рулить лол. Возможностей выбора здесь не так много. Я одно время затеял проект, но этот проект затянулся года на 2. С деньгами стало напряжно, я вспомнил что у меня на фрилансерском сайте есть аккаунт. Думаю дай попробую. Попался чернокожий американец, ему за $50 надо было исправить косяк на сайте с собачками. Я исправил часа за 1,5 и подумал ого нихуясе. На этом можно деньги зарабатывать. Ну и после этого у меня попёрло на фрилансе. Я получал в долларах, шёл менял на рубли и уходил с пачкой денег. Никогда особо не задумывался чтобы вернуться в офис. Денег на всё хватало. Вкусная еда, развлечения. Тогда я понял, что сайты это моё. Не тянет ни к микроконтроллерам, ни к аналитике, ни к чему-то ещё. Те домохозяйки, которые заставляю себя готовить, у них хавка невкусная. А я могу часами сидеть и пилить проект просто так, потому что мне нравится. Конечно, СВО и ковид немного подосрали, остался без работы, но я надеюсь снова вернуться во фриланс. Вот и всё.
сап аноны, 20 минут как осваиваю мойти пайтона, зацените код хе-хе, ну я чего пишу то, нейросетки не погребут NLP и LLMs и Ml, кодеров? Хочу в обработку "языка" и текстовой информации как токовой войти. Вроде как наоброт, должно быть более востребовано, кто ети нейросекти учить то будет, кодить там, болтать с ними (другие нейросетки разве что, по этому и вопрос возник). Но в любом случае, буду дальше, оказалось ето угарно и круто, а я думал что там ток циферки дрочить можно. Всем добра.
>>2800678 (OP) Господа, что происходит когда я на бекенде (питоновский asyncpg + sqlalchemy) в рамках 1 открытой сессии пуляю асинхронно несколько select запросов к базе постгреса и запускаю их всех разом через asyncio.gather ? У меня реально параллельно они отрабатывают или один хер последовательно т.к. я использую 1 сессию?
Прохожу после гречневой работы уроки Python, в школе хеллоуворлдил на JS и C#. Мечтаю вкатиться. Нет каких-нибудь идей, как найти подработку на выходные в около айти, но чтобы капали какие-то реальные деньги, пусть хоть 20 рублей в час?
>>2819707 Вкатывайся в верстку или пхп, там реально на фрилансе мелкими заказами руку набивать. На счёт питона сомнительно, и конкуренция дичайшая. Ты если поспрашиваешь свою гречу на работе, удивишься, что даже из них каждый третий уже питон знает.
Привет Аноны, нужен совет не кидайтесь сразу говном. Хочу выучить питон, для вката нормальным сис админом, в дальнейшем в Девопсы планирую. И вот сейчас в моей голове стоит делема либо оплатить курс за 100к (На Яндекс Практикуме)по питону в веб разработке, так как там по мимо Джанго ещё немного затрагиваются другие вещи. Либо же вооружиться книгами и самостоятельно все изучить?
>>2820675 >Либо же вооружиться книгами и самостоятельно все изучить? Я зделол это за полгода. Имея разные базовые знания (и всякие сисадминские тоже). И на Степике бесплатные курсы проходил, ища, где побольше практических заданий. Потом пробовал на гикбрейнс/скиллбокс какие-то курсы — гавнище полное. Посмотри отзывы — там даже на платные ругаются люди.
Ну, на Яндексе, может, получше, но конторка — кал. И люди там чванливые пидоры с бесконечным самопиаром. Суть платных курсов — не обучить тебя, а заработать на тебе деньги максимально дешёвым для себя способом, с низкой себестоимостью.
Господа, предстоит работа с картами. Из халявных нашел только OpenStreetMap. Задача: получать со страницы с картой координаты, которые тыкнул пользователь. Вопросы: Кто с ней работал? Какие актуальные библиотеки есть? Или можно безболезненно работать с голым АПИ?
Если запускаешь код например lol.py в винде открывается сонсоль, так вот можно поменять её иконку внизу в панели задач со стандартной питоновской на свою?
Кто работал с телеграмм ботами и отправкой крупных файлов через них. Как вы обходили ограничение BOT Telegram API ? А те кто не работали подкиньте идеи
Ребята, котята, зверята, а подскажите, пожалуйста, может кто симпатичный материал по пандас имеет? В интернете, конечно, жопой жуй и все гуглится, но вдруг кто каждый день кончает только на какой-нибудь курс по этой библиотечке и обязан ей самыми крутыми отчетиками? Заранее спасибо.
>>2800678 (OP) Замечали что на всяких мертвых языках типо ГО или Раби охуенные зп (400к и выше не редкость). На питоне большинство вакансий это 70-100к Что за хуйня?
Как миксовать обучение джанго+sql+разметку? Сейчас курю курс джанго, т.к. захотелось сделать какой-нибудь сайтик с простой бд и современным оформлением, но как только каждый час джанго у меня появляется больше вопросов к sql и разметке. Копипастить чужие проекты это конечно круто, но я тут пришёл своими лапками всё делать
>>2823699 Как бы банально не звучало - запили пет какой-нибудь. Вопросы по ходу дела выясняй. Мб предварительно глянь какой-нить небольшой курс по SQL и разметке если прям первый раз видишь это дело
алсо, >джанго+sql В джанге так-то орм есть, голый sql в джанге использовать это странно как-то (зачем тебе джанга тогда собственно?)
>>2823714 Говоря про бд я имел ввиду впиндюрить postgresql, а там уже посмотрим. > запили пет какой-нибудь Считай сайт без задач это и есть пет. Меня больше смущает порядок просмотра и чтений доков. Понятное дело, что всё сразу не заучу и по ходу дела будут сотни гуглов, но не могу понять две вещи: порядок и конечность (?). В каком порядке это всё потреблять и до каких тем мне штрудировать базы+верстка.
Аноны, мне нужно чтобы __init__ сразу возвращал значение в переменную. Варианты с __str__ возвращает только строку, __int__ возвращает только число, __new__ возвращает переменные класса, а мне нужно переменную объекта. Как быть?
>>2821123 Смешались в кучу кони, люди. Причём тут питон? Координату точки на которую пользователь тыкнул ты джиэсом получишь. Есть библиотеки типа leaflet для такого. OpenStreetMap это просто подложка будет. Аpi их чтобы получить координату тебе не нужен будет.
>>2800678 (OP) По работе пришлось кое что делать в этом вашем питоне. Так как я вообще не программист, то конечно же стал гуглить что да как. Офигел с того, сколько материала на нем. Дофигища статей, форумов, видео и все что только можно придумать. И у всего этого десятки и сотни тысяч просмотров. В каждом первом видео на ютубе на любую тематику реклама говнокурсов именно питона и дата хуянтисов. В связи с этим я хочу спросить чисто из интереса. Почему эта хуйня так популярна? Почему рекламируют именно курсы дата сосайнтис? По ощущениям это довольно нишевая хрень, где не нужно десятков тысяч человек. Это какая то наебка на шекели как я понимаю?
>>2824031 >>2823946 >>2823841 >>2823830 К чему эта тряска? На курсах от скилбокса научили что класс может только свой экземпляр возвращать, а по-другому не бывает, нельзя, запрещено?
>>2824279 __Нью__ выполняется до инициализации обьекта. А мне нужент типо такой синглтон но как обьект. Короче, если упростить задачу, то вот __str__ возвращает строковое представление объекта, мне нужно то же самое, но чтобы в этом представлении можно было передать всё что угодно кроме строки - число, список и т.д.
class Nariman: ....def __str__(self): ........return str(self.age) #вот чтобы тут можно было и int и лист и всё что кгодно ....def __init__(self): ........self.age = self.set_age() ....def set_age(self): ........return 35 data = Nariman() print(data)
Алсо, ты бы попустился с такими заходами - >На курсах от скилбокса научили что класс может только свой экземпляр возвращать, а по-другому не бывает, нельзя, запрещено? , если сам выдаёшь перлы а-ля >А мне нужент типо такой синглтон но как обьект. >__new__ возвращает переменные класса, а мне нужно переменную объекта
>На курсах от скилбокса научили что класс может только свой экземпляр возвращать, а по-другому не бывает, нельзя, запрещено? >__new__ возвращает переменные класса, а мне нужно переменную объекта
Короче вопрос, кто-нибудь здесь хостил ТГ ботов? Я вот написал своего, но с хостингом пока вообще не разобрался. Попробовал залить на pythonanywhere, но там версия 3.10, а я писал на 3.11 - в итоге чет там не взлетело, вылезли ошибки синтаксиса и импортов из-за разницы версий.
Никогда не понимал зачем люди щитпостят. Один вопрос, пусть даже нубский и ему в ответ боевые картинки, гринтексты, "зачем тебе это?!", "зачем?!", "ты дурак", и ни слова по теме вопроса. Как в /б/ зашел, это школьники перед днем знаний набижали?
Сука, чем дальше погружаюсь в питон, тем отвратительнее он выглядит.
Дублирующие друг друга типы данных, половина из которых есть по дефолту, а вторую надо импортировать; у разных типов данных разный синтаксис для одних и тех же задач; куча уже ненужных модулей и типов данных, которые оставили ради обратной совместимости; не влияющие на код аннотации; ебанистические дандерс методы.
Свитчиться на другой язык C# или везде будет такая же свалка говна и костылей?
Или может быть всё это по факту нахуй не нужно знать и можно уже просто начать дрочить джангу без задней мысли?
>>2825018 Например в той или иной степени дублируют dict: Counter - почему нельзя было сделать метод для словарей, который выполнял бы ту же функцию, а не ебашить отдельный тип данных? ChainMap - хуй знает вообще в каких ситуациях эта ебанина может пригодиться OrderedDict - легаси хуйня defaultdict - аналогично предыдущему namedtuple - какой-то бесполезный франкенштейн
>>2825012 >Значение которое получилось в результате выполнения кода класса. >Это троллинг тупостью уже в ход пошел? подожди то есть из класса нужно сделать функцию?
>>2825124 >Например в той или иной степени дублируют dict: >Counter - почему нельзя было сделать метод для словарей, который выполнял бы ту же функцию, а не ебашить отдельный тип данных? чтобы не тащить лишний метод, который будет медленно работать на дефолтном словаре, либо использовать дополнительную память >ChainMap - хуй знает вообще в каких ситуациях эта ебанина может пригодиться когда есть несколько словарей, и нужно искать в них всех с учетом приоритета >OrderedDict - легаси хуйня очевидно неоходима, когда важен порядок элементов словаря >defaultdict - аналогично предыдущему удобно, когда нужно инициализировать ключи, опять же дефолтный dict незачем перегружать этой фичей >namedtuple это вообще другой тип данных
>>2825124 >Counter - почему нельзя было сделать метод для словарей, который выполнял бы ту же функцию, а не ебашить отдельный тип данных? Потому что это оптимизированная надстройка над словарем, в обычном словаре подсчет количества одинаковых значений оверкил тратящий время на сравнение.
>ChainMap - хуй знает вообще в каких ситуациях эта ебанина может пригодиться Тебе прям в доке несколько примеров приводится, очевидно, что ты пока недостаточно опытен и тебе такой кейс не встречался
>OrderedDict - легаси хуйня Порядок добавления не является частью стандартных диктов, в следующий версии придумают еще что-нибудь и уберут это. А OrderedDict 100% будет гарантировать на протяжении всех версий.
>defaultdict - аналогично предыдущему Примеры в доке, опять же, ты просто не встречал кейса когда это необходимо
>namedtuple - какой-то бесполезный франкенштейн Опять же примеры в доке, но это и не дикт
for n in filter(lambda x: x in _dct, _lst): ....do_some(n)
Аноны вот filter кончено плохой и медленный по сравнению с генератором, но всё же он красиво выглядит, он встроенный и читаемый. Вот пример выше, с которым каждый день все сталкиваются - нужно обрабатывать только те элементы которые есть и в _dct и в _lst, фильтр только их и передает в цикл. Как именно вот эту конструкцию выше можно ещё больше оптимизировать вот именно с filter ?
>>2826086 Конечно, давайте поговорим об этом. Python — это один из наиболее популярных языков программирования, и у него есть множество преимуществ:
Читаемость: Синтаксис Python разработан таким образом, чтобы быть чистым и легко читаемым. Это делает код более понятным и облегчает сотрудничество.
Библиотеки и фреймворки: Python имеет огромное количество библиотек и инструментов для различных задач: от анализа данных до веб-разработки.
Многозадачность: Python идеально подходит для быстрой разработки и прототипирования.
Сообщество: Огромное сообщество разработчиков готово помочь с вопросами, проблемами или дать совет.
Всесторонность: Python используется в веб-разработке, научных исследованиях, обработке данных, искусственном интеллекте и многих других областях.
Обучение: Python часто рекомендуют новичкам из-за его простоты и читаемости.
Конечно, у каждого языка программирования есть свои недостатки и области, где он может не быть наилучшим выбором. Но назвать Python "хуйней" было бы несправедливо. Если у вас есть конкретные претензии или вопросы к языку, дайте знать, и я буду рад обсудить их!
>>2826107 Возьми вот такой компрехенсор [l for l in _dct if l in _lst] и сравни с фильтром - он в разы быстрее, делает то же самое занимает даже места в строке меньше занимает. Фильтр по всем пунктам хуже а ещё в него лямбду надо сувать, но выглядит он лучше и читаемей.
Аноны, есть на питоне библиотека для синтаксического\лексического анализа русского языка. Есть вот например модуль pymorphy2, который полностью закрывает морфологический разбор отдельного слова, может менять его форму род и так далее. А что нибудь для разбора предложения грубо говоря по частям речи есть?
"столкнулся с шестом" "снял с шеста" Как видим тут форма слова "шест" зависит не только от его роли в предложении и не только от предлогов которые его окружают, но и от слов которые создают с ним зависимость. Неужели тут без нейросети не разобраться?
Есть вообще какие-то решения для таких задач на питоне? Модули, библиотеки вот это всё?
>>2826559 Так ты итерируешься по списку и проверяешь вхождение его елементов в ключи словаря или наоборот - итерируешься по ключам словаря и проверяешь их вхождение в список?
А то у тебя здесь >>2826018 > filter(lambda x: x in _dct, _lst)
А здесь >>2826559 > [l for l in _dct if l in _lst]
>Возьми вот такой компрехенсор [l for l in _dct if l in _lst] и сравни с фильтром - он в разы быстрее Окей, быстрее. Но не видно чтоб прям в "разы", так что хз стоит ли этот профит читаемости если ты считаешь filter более читаемым
>>2826145 Спасибо за подробный обзор преимуществ Python и вашу готовность обсудить язык программирования. Действительно, Python имеет много положительных характеристик, которые делают его популярным и широко используемым языком. Однако, как и у любого инструмента, у него также есть свои недостатки и ограничения. Важно быть объективным при обсуждении языков программирования и учитывать разные сценарии использования.
Некоторые из недостатков Python могут включать в себя:
Производительность: Python является интерпретируемым языком, что означает, что он может быть менее эффективным в выполнении некоторых вычислительно интенсивных задач по сравнению с компилируемыми языками.
GIL (Global Interpreter Lock): GIL ограничивает многозадачность в Python и может привести к недостаточной эффективности в многопоточных приложениях, требующих многозадачности.
Ограничения в некоторых областях: В некоторых областях, таких как разработка игр с высокой производительностью или системное программирование, Python может не быть наилучшим выбором.
Python 2 vs. Python 3: На момент завершения моего обучения (сентябрь 2021 года) миграция с Python 2 на Python 3 была актуальной проблемой, и некоторые библиотеки и проекты все еще использовали устаревшую версию.
Не всегда подходит для мобильных приложений: Python не является первым выбором для разработки мобильных приложений, хотя существуют фреймворки, такие как Kivy, которые позволяют создавать мобильные приложения на Python.
Важно помнить, что выбор языка программирования зависит от конкретных требований проекта и задач, которые вы планируете решать. Python может быть отличным выбором во многих случаях, но не всегда.
Анонче, посоветуй каналы на ютабе, где есть примеры кодинга с комментариями. Я заметил, что мне намного проще впитывать материал, когда все проговаривают. Заранее спасибо!
Помогите с использованием Nim внутри питона: используя nimport я могу добиться трушного параллелельного выполнения функций на Питоне?
Есть на руках код графического приложения на Python где реальный параллелизм был бы очень кстати, но не знаю реально ли это реализовать с nimport, в инете мало информации о интегрировании Nim и питона
>>2826746 >Python 2 vs. Python 3: На момент завершения моего обучения (сентябрь 2021 года) миграция с Python 2 на Python 3 была актуальной проблемой гонишь Уже году к 2018 совсем перестало быть актуальным. Вот в 2014 ещё было актуально, хотя 3 до 2010 года появился
>>2825153 >Порядок добавления не является частью стандартных диктов, в следующий версии придумают еще что-нибудь и уберут это. А OrderedDict 100% будет гарантировать на протяжении всех версий.
>>2825124 >Counter - почему нельзя было сделать метод для словарей, который выполнял бы ту же функцию, а не ебашить отдельный тип данных? Counter не универсален, он вообще про другое
>ChainMap - хуй знает вообще в каких ситуациях эта ебанина может пригодиться Довольно разумная вещь. И в любом случае, это дополнительная возможность из библиотеки, а не стандартный тип данных. Само собой не всем возможности нужны.
Конкретно ChainMap я даже использовал в реальности. Смысл, когда у тебя несколько слоёв конфигов, например. Дефолт-конфиг, подгружаемый из файла и динамически меняемый в рантайм.
>OrderedDict - легаси хуйня всё верно
>defaultdict - аналогично предыдущему альтернативы? Гипотетически полезная вещь. Но реально мне кажется чаще используют метод get() для этого. Просто понятнее, что в коде происходит при таком подходе.
>namedtuple - какой-то бесполезный франкенштейн может быть, но это нестандартных тип данных, а дополнительная возможность. Можно ей не пользоваться.
Прохожу вот этот курс на степике: https://stepik.org/course/67/promo#toc В нем чет дохуя матеши. Это так необходимо? Насколько актуален данный курс? кто его прошел? оказался полезным? Поглядывая кодинг в том же ютабе, я не вижу задач у ребят, типа расчитайте мне площадь прямоугольника или напишите программу, которая высчитывает в какое нужно время вставать.
Так же, смотрю курс Udemy с Богданом. Мне кажется, что там овердохуя воды, к примеру, челик 10 минут вещал об отступах в функциях. И да, в конце курса кодят шутанчик простой, там тоже я не наблюдая какой-то огалтелой математики.
Отсюда вопрос, стоит ли тратить время на такие курсы? Худо-бедно они ж полезны? Может в сети появился адекватный курс для нуба-питониста?
>>2828006 Курс не проходил, но судя по тому что там в конце обсуждаются NumPy и Matplotlib то можно предположить что курс с уклоном в анализ данных, а у АНАЛитиков без математики никуда. Я в веб-макакинге с математикой не сталкивался.
>>2828026 С картинки крикнул. Я вот не хочу к дата-сатанистам! >Я в веб-макакинге с математикой не сталкивался Это уже интересно! Мне в принципе нравится кодинг, а какие задачи? Я пока не определился. Может ты раскидаешь по этому вопросу? :3 Свой опыт, например. Может какой-то курс.
>>2828035 Я когда решил вкатываться тупо нашел себе на профи.ру чувака молодого репетитора который меня вкатил во всю базу питона начиная от самого начала и заканчивая ООП. Дальше уже учил всякие базы данных, гит, джанго и прочее по видосам на ютубе, по джанго брал курс на Udemy. В принципе база питухона (типы данных, функции, циклы и вот это все) она и есть база, одинаковая будь ты хоть аналитик хоть бэкэндер хоть тестировщик, просто после ее изучения ты уже выбираешь какими ты будешь библами и фреймворками пользоваться в своей специализации.
Есть экспортированный чат в формате списка из словарей. Есть id сообщения и id сообщения, на которое отвечаем. Какой самый оптимальный способ получить список всех возможных веток диалогов?
Например, вот список:
[{text:”Привет, я Дима”, "id":1, "replying_to_id":None}, {text:”Привет, Дима! Я Андрей”, "id":2, "replying_to_id":1}, {text:”Привет, Дима. Я Настя”, "id":3, "replying_to_id":1}, {text:”Приятно познакомиться, Андрей. Из какого ты города?”, "id":4, "replying_to_id":2}, {text:”Привет, Настя! Ты откуда?", "id":5, "replying_to_id":3}, {text:”Привет, ребята! Я Сергей!”, "id":6, "replying_to_id":None}, {text:”Я из Москвы. А ты?”, "id":7, "replying_to_id":4}, {text:”Здарова, Сергей”, "id":8, "replying_to_id":6}, {text:”Круто, я из Челябинска”, "id":9, "replying_to_id":7}]
И вот что я хочу получить:
[ ["Привет, я Дима", "Привет, Дима! Я Андрей", "Приятно познакомиться, Андрей. Из какого ты города?", "Я из Москвы. А ты?", "Круто, я из Челябинска"],
["Привет, я Дима", "Привет, Дима. Я Настя", "Привет, Настя! Ты откуда?"],
["Привет, ребята! Я Сергей!", "Здарова, Сергей"] ]
>В принципе база питухона (типы данных, функции, циклы и вот это все) Вот это как раз сейчас и изучаю :3 >просто после ее изучения ты уже выбираешь какими ты будешь Вот об этом я как-то не задумывался!
Я вот тоже думаю, что я пока пройду два скаченных курса, впитаю всё, что можно впитать, а дальше уже решу: или репетитор, или какие-то курсы, или дальше в одно жало осваивать, благо инфы много в сети.
а собственно какие изменения будут в 3.12 и стоит ли на него переходить сука, это столько совместимости кода проебали 3.12 совместим с всем все не совместимы с 3.12 ужас блять оно того не стоит
>>2829058 я вкатун, поэтому не могу быть уверенным, что они не нужны в принципе. Может быть и нужны. Но если я во что-то не врубаюсь, то как баран начинаю задрачивать одну тему, даже в ущерб другим, проябывая уйму времени и нервов. Прожгло анус после десятка заданий с литкода.
>>2800678 (OP) Блин, напомните пожалуйста, пайтоны. Видел как-то классную книжку - довольно объёмный справочник - по всяким хитрым триксам питона, включая обзор библиотек, потом проебал её где-то в недрах другого ноута а название забыл. Может встречал кто? Не Python Tricks Дэна Бэйдера!
Анонче, не сильно страшно учиться питону по версии 3.7? Нашел очень годный канал на ютабе, я там с ходу понял функции (def), например. Но у человечка egoroff_channel оч старые видосы.
>>2830526 > ну типизацию Какая типизация довен, это тайпинг > дженерики добавили иче А ещё новый оператор и несколько кейвордов >>2829479 > Анонче, не сильно страшно учиться питону по версии 3.7? Не сильно, но лучше взять поновее, так как вместе с 3.7 питоном ты будешь ещё и наворачивать старые либы. Советую 3.10 брать и выше, 11 версия совсем минорной была
>>2830547 > Да да, я понимаю, что лучше актуальную версию изучать Если ты совсем зелёный вкатун и базовый синтаксис изучаешь, то версия совсем не важна, можно хоть 3.4 брать. Но с каждым шагом это становится все важнее и важнее, как только начнёшь внешние либы использовать, то нужно 100% на актуальную версию переписываться > но парнишка очень годно раскидывает! Старайся как можно быстрее отказаться от видео и перейти к текстовому формату. Видеоформат абсолютно не подходит для изучения программирования
>>2830555 >Старайся как можно быстрее отказаться от видео и перейти к текстовому формату. Видеоформат абсолютно не подходит для изучения программирования База, вообще не выкупаю, как зумерки по видосам учатся.
Аноны как запустить питухон скрипт с Arduino Leonardo? Скрипт кликер записывающий и потворяющий движения, надо чтобы ардуина вела себя как мышка которые эти клики выполняет, просто с пеки запустить нельзя ибо защита от эмулированных кликов.
добрый день, подскажите, пожалуйста, кто использовал библиотеку googletrans которая использует Google Translate API, есть ли у нее какие-то ограничения? возможно ли её использовать в высоконагруженном проекте, условно с 1000 пользователей?
Есть у меня желание поставить вот такую штуковину. Я ее в последний раз устанавливал на предыдущую систему триста лет назад, помню, что встречался с проблемами, пробла решилась даунгрейдом до более старой версии петухона и еще каким-то шаманством. Ну я тогда о питоне, pip и пр. не знал вообще нихуя.
Пытаюсь выполнить команду "pip install -r requirements_win.txt" и получаю ошибку "Could not find a version that satisfies the requirement tensorflow==2.11.1 (from versions: 2.12.0rc0, 2.12.0rc1, 2.12.0, 2.12.1, 2.13.0rc0, 2.13.0rc1, 2.13.0rc2, 2.13.0, 2.14.0rc0, 2.14.0rc1) ERROR: No matching distribution found for tensorflow==2.11.1"
Я могу руками поправить в requirements_win.txt версию tensorflow 2.11.1 на 2.12.0? Или советуете руками установить более старую версию? А если так, то как это сделать?
Еще один даунский вопрос: как мне следить за всеми библиотеками на моей пеке и за их состоянием? Я с чатгопотой пишу скрипты, учусь, балуюсь, придумываю себе простенькие задачки и их решаю, в процессе накаливаются библиотеки вроде pandas, json, в общем, их уже около десятка. Тут я еще навалил с десяток библиотек на свою пеку. Я не вижу казуальных менеджеров библиотек с GUI и автоотладкой ;_ ;
Питоню в ВСкоде, пиздец неудобно работать с фрейморками/модулями -вручную всё импортируешь. Урезанный pycharm тоже мимо - постоянно переключаться между идехами такое се. Есть нормальная универсальная идеха, чтобы все классы индексировала, нормально подсказывала и пр. и пр. В принципе Вим и Емакс готов напердолить, лишь бы по итогу удобно было (подразумеваю в ответе наличие плагинов/ссылок на гайд по пердлолингу).
>>2833561 Я хз что у тебя за проблемы, вскод охуенно работает с питоном. Авто импортит, авто удаляет неиспользуемые переменные, авто переименовывает все, когда файл из папки в папку перекидываю. Юзаю ruff экстеншен. Красота.
>>2830555 >Если ты совсем зелёный вкатун и базовый синтаксис изучаешь This. Пишу "проги" в духе посчитать площадь прямоугольника или сделать проверку на логин и пароль. >то нужно 100% на актуальную версию переписываться Принято! >Старайся как можно быстрее отказаться от видео и перейти к текстовому формату. Ты что, у меня открыт пейчарм, всё что я вижу на экране я повторяю в нем. Если какие-то простые вещи, то я использую гит баш. Купил вот себе книгу Мэтиза, чтобы иметь перед глазами справочник, веду заметки и т.п. Я плюс-минус понимаю, что обучение это комплексный подход, требующий не только запомнить, но и понять, потом применить. Мне как раз наоборот нравится долбить по клавишам, набивая код, поэтому и вкатываюсь!
Так, алгоритмисто-питонисты, нужна помощь зала. Делаю аналог-велосипед Trie для решения одной задачи. Проблема в чём: текущий узел ищет своих соседей, потом в ходе цикла каждого из соседей проверяет на соответствие какому-то значению, если сосед этому значению удовлетворяет, то рекурсивно опять происходит поиск соседей и так до победного конца. Проблема в том, что соседей может и не быть, тогда цикл будет итерировать по пустому списку соседей, что ломает всю логику, ведь находясь в цикло-рекурсии, ты можешь просто написать continue и проверять дальше. А если проверку на пустоту списка вынести за цикл, то хер пойми, как оно работает. Вводить отдельную переменную, хранящую предпоследний узел и список оставшихся соседей?
>>2833897 А чё мне при прописывании класса из встроенных/установленных/пользовательских модулей нихуя не предлагает? В пичарме чуть что сразу тебе подсказка с автоимпортом.
>>2835917 Не понимаю твою проблему. Пишешь рекурсивную функцию что то типа fun(node, stroka), в цикле по соседям делаешь проверку на stroka[0], вызываешь fun(current_node, stroka[1:]) если совпало. Когда в строке ничего не осталось, значит слово нашлось. Если соседей на какой-то итерации нет, то и вызывать ничего не надо.
>>2832506 >добрый день, подскажите, пожалуйста, Это рофл такой? Или ты первый день на двач с пикабу пришел?
>googletrans >использовать в высоконагруженном проекте Лол нет конечно. Постоянно эту библиотеку использую в своих автопереводчиках, там ограничений полно, могут тебя на сутки забанить вообще после 100 запросов, а могут не банить и после нескольких тысяч. Не говоры уже о том, что эта либра постоянна отваливается и надо ждать пока автор репы её поправит. Он вообще там сам советует использовать некий официальный апи гугла. Не знаю о чем речь, особо не вникал.
Лол, обычно в языковых тредах помогают, а эстетствующие пидарасы кучкуются в /b или /ga. В питоначе, смотрю, все наоборот: обсуждают хуйню и самоутверждаются перед одноклассниками. Мимошел
>>2836910 Твой велосипед слишком навороченый и переусложненный. Твоя задача решается простым bfs/dfs с запоминанием пройденного пути, чтобы не уходить в тайм лимит на циклах. В принципе ты тут dfs через рекурсию и пытаешься реализовать, но делаешь это с кучей ненужных дополнительных переменных. Почитай про реализацию bfs/dfs, посмотри простые примеры, поймешь как написать короче и понятнее.
>>2831766 Аккаунт регать надо. А уже потом заходишь в Bot Father и создаешь в нем бота, ключ которого будет использоваться в коде твоего приложения. Ботов можно кучу с одного акка создать
Питончики, есть ли книги, сайты, ресурсы с упором не само программирование как таковое, а больше для задач которые выполняются devops, mlops и прочие ops направления
Не знаю где спросить, напишу сюда. Я хотел скачать с сайта Fantia автора чтобы полностью заархивировать его творчество нашёл программу FantiaDL на github от автора bitbybyte. Скрипт написанный на питоне. И я тут скачал но он создаёт папки с цифрами и получается какая то каша и ничего не разобрать. Например папка 1812669, а в этой папке название поста лол. Слишком утомительно это всё разгребать. На сайте под каждым постом ставится дата. Вот у меня и вопрос, можно ли сделать чтобы ставилась дата и после даты было название поста и не было вот этих папок с цифрами. Сложно ли это сделать, а то сам я в этом ничего не понимаю
>>2838531 >Сложно ли это сделать Если знаешь питон то можно разобраться, если не знаешь то вряд ли сможешь. Если тебе кучу папок нужно переименовать по заранее известному алгоритму то как вариант можно не менять код этого скрипта а сделать новый который пройдётся по этим твоим нагенерированным папкам и переименует их как тебе нужно
>Например папка 1812669, а в этой папке название поста лол. Если просто нужно прочитать название поста внутри каждой папки и добавить это название в имя папки то это строк в 20 кода влезет. Я бы так делал вместо того чтобы ковыряться в поделке какого-то челикса с гитхаба
А какой сейчас самый модный и/или удобный способ хэндлить зависимости и подготовки веб-приложения для дистрибуции? Раньше был setup.py, requirements.txt. Слышал про какой-то tox. Как щас тру питонисты организуют всё это?
Такая задачка. Есть список с датами, но относительными, т.е. sec ago, min ago, hours ago, days ago. Я хочу получать реальные даты. С секундами всё очевидно, на остальном теряется точность уже. Проверяется неравномерно, так что всё не поймается на уровне секунд. По-идее, можно хранить промежуточные состояния и уточнять, когда они увеличиваются (1 day -> 2 days). Вроде всё просто, но чет хз как к этом подступиться.
>>2839085 Событые показывается в виде 10 min ago, потом на следующей проверке 1 hour ago, потом ещё что-то. Я хочу по суме этих косвенных данных и времени их получения вычислить реальную дату.
>>2838781 Всё почти разобрался, у меня бажок был, сейчас только модули локального окружения не предлагает импортить. Но как я понял такой фичи уже нету
>>2839086 ну ты блин. Эту задачу даже в IP4/6 не решили. Как ты точно узнаешь событие по 2-м случайным событиям которые позжее произошли??? 1) ты родился 2) писька поднялась 3) ты бабу завёл. Теперь вопрос - ты когда родился, если верен п.2 и п.3 (а такого нет) ?
>>2839300 Храни для каждого события дельту (погрешность типа) и поправляй её при нахождении новых данных. Распарси всё чё есть один раз и всё Ну например. У тебя два события, 10 min ago и 1 hour ago Значит ты точно знаешь, что событие было минимум 10 минут назад и максимум 60 минут назад. Допустим, сейчас в юникстайме время n. Событие значит было n - 10 - дельта назад. Где дельта это число от 0 до 50 (храни макс, т.е. 50). Ну и таким макаром по каждому событию их дрочишь и приближаешь там приближаешь. Лучше уже не будет чем получится после 1 прохода. Ну я бы так сделал. Только я бы наверное хуй забил и ничего не делал
>>2839610 Более того, в вскоде все настолько удобно, что жидбрейновские поделки нахуй не нужны. Под любой язык есть экстеншен. Все в одном инструменте. Мне не надо 10 иде ставить: пайчарм + хуйчарм + идеа + хуйлайон, за которые еще бабки жидам надо отваливать.
А есть тут энтузиасты жесткого тайпхинтинга? Ну, очевидно что типы 100% надо указывать в аргументах функции и и на ее return. Но если везде их указывать, то получится бред а-ля url: str = 'https://www.google.com/', хотя объявить массив как ids: list[str] = [] выглядит все равно полезно для наглядности и автозаполнения IDE. Может, под это есть какие-то гайдлайны или линтер, или тут чисто по наитию надо?
У тайпчекеров есть настройки строгости, которыми ты контролируешь как сильно они будут тебя ебать. Для начала опредались насколько строгий тайпчекинг ты хочешь и выкрути конфиг тайпчекера соответствующим образом. Далее просто добавляй тайпхинты пока полностью не удовлетворишь тайпчекер.
>>2843842 Паскаль, бейск, фортран, ассемблер. Да блядь, куча языков без скобок жила и жила заебись.
А си как язык стал популярен потому что на нем в вузах США учили. Реально каких-то преимуществ Си перед остальными не было. Работал и работает он не быстрее. Многие вещи на нем сделать сложнее. Когда он вышел в широкое применение - он уже был морально устаревшим на фоне того же паскаля последних версий.
Блин. Вот как же хуево, что паскаль из-за независящих от него причин - ушел совсем в нишевость. Как язык - топовый. Производительность - охуенная. Фич - до жопы.
Как избавиться от двойных бэкслешей в пути? Изучать язык не хочу, хочу просто по быстрому "с наскока" набросать скрипт. Собственно, скрипт работает, но я не могу вызвать в нём ffmpeg из-за того что пупон упорно срёт в аргумент функции subprocess.run() строкой, в которой слэши двойные, из-за чего ffmpeg меня посылает с invalid argument.
>>2844086 схуяли попрощался с пасквилем-то? Дохрена всяких реализаций, лазарусы всякие, RAD Studio, да хоть тот же борланд-турбо пасквиль. Для каждой кофеварки - 100 реализаций. Даже студенческие типа "разработки".
>>2844578 Вот эти самые raw strings не помогают, ffmpeg'у уходит строка вида "C:\\Windows\\System32\\delete_windows.exe, на что он пишет "invalid argument".
>>2844592 Теперь видишь, в чём проблема? Несмотря на то, что print выводит изначальный текст, как только начинаются логические операции со строкой, то в них эта строка участвует уже с двумя бэкслэшами, а не с одним. И именно версия с двумя бэкслэшами скармливается ffmpeg.
>>2844601 Нет, ты не понимаешь, что происходит. В интерактивном режиме строки тебе показываются в виде repr, это те самые двойные слеши, передаются нормальные строки. Мой пример с echo вполне это демонстрирует.
>>2844632 Это тоже repr. Думаю, у тебя распидарашивает из-за спейсов в имени. Нужно завернуть в "" в команде. subprocess.run(f'ffmpeg "{var}" "{var}.puk"') ну или subprocess.run(f"ffmpeg \"{var}\" \"{var}.puk\"")
>>2844654 Проблема должна была быть в спейсах. Насчет сабпроцессов я помню ещё вариант, что там надо было запускать с параметром в виде списка с каждым куском вместо одной строки. Возможно, это оно. Типа run(['echo', 'str1', 'str2'])
Документация в питоне дерьмо каловое. Что написано: f.read() считывает указанный размер информации и возвращает его На самом деле: f.read() считывает указанный размер информации и возвращает его И УВЕЛИЧИВАЕТ УКАЗАТЕЛЬ ФАЙЛА НА 1, ТЕМ САМЫМ ПЕРЕХОДЯ НА СЛЕДУЮЩИЙ СИМВОЛ ДЛЯ СЧИТЫВАНИЯ
Спасибо всем, кто вчера помогал. Проблема сорт оф решилась, как оказалось ffmpeg спокойно пережёвывает обычный слэш в том числе. Так что я просто использовал слэш в строке с именем файла.
Петухонил вчера в своем петухоне с божественным mypy в strict режиме наперевес и вдруг споткнулся о баг в программе, написанной на джаве. Как оказалось, жаба жидко обосралась, столкнувшись с непроверенным нулевым указателем. Пришлось скачать прогу с гитхаба и перекомпилировать самому, добавив проверку на нулл пойнтер. И тут меня осенило, почему джава -- говно. Даже в Петухоне, над которым все смеялись, как над игрушечным языком, нет нулл референсов. Да, есть None, но это именно что объект с соответствующим специальным типом и id. Если ты не учтешь что что-то у тебя выкидывает None, то mypy постучит тебе резиновым хуем по голове и заставит исправлять. А вот нулевые указатели будут торчать как уши C до самой смерти жабы, компилятор тебе нихуя не скажет. Отака хуйня малята, выходит что жаба -- это игрушка для умственно отсталых детей, вместо серьезного языка, а не Петухон.
>>2800678 (OP) Пацаны, как правильно на pytest подгружать фикстуры для базы? Вот у меня куча фикстур, каждая подгружает данные для определенной таблицы, как их правильно хранить и как в этом говне не запутаться? Их же дохера, conftest.py уже ломится от них
Есть массив неопределенной длины Есть кортеж, обозначающий границы части массива в процентах То есть (0, 1) - весь массив, (0, 0.5) - от начала до половины, (0.1, 0.2) - с 10% по 20% длины Как наиболее красиво перевести проценты в индексы?
можете подсказать: Есть кусок кода, который формирует словарь {'type': 'name'} есть какой-то лайфхак, чтоб он делал словарь {'type': ['name']} ? saved = { file['type']: file['name'] for file in await get_files() } или это придется расписывать на несколько строчек?
Поясните за глобальные переменные, я блядь совсем запутался и гугл и чатгпт внятного ответа не дают. Если я оперирую глобальной переменной в рамках одного файла, то все просто, я объявляю ее наверху до всех функций, внутри функции, прежде, чем обратиться к ней, я пишу ключевое слово global. Если же у меня два файла, например в file1.py я объявил глобальную переменную perem, а из файла file2.py я хочу к ней обратиться и изменить, то я импортирую файл1, а затем без всяких global просто file1.perem ее и читаю и изменяю. Верно?
>>2850376 >>2850373 Мутируемые глобальные переменные это всегда проблема для программы, ее так намного сложнее отлаживать, тестировать и возрастает вероятность неочевидных косяков По этой же причине решили больше не писать с goto на высокоуровневых языках
Но если ты захотел тебе никто не вправе запрещать, хуярь как хочешь
>>2837642 Это дебаг через jupyter notebook. Проблемы? >>2837981 Спасибо, анон, но код не совершенен. В частности, при board = [["a","b"],["a","a"]] words = ["aba","baa","bab","aaab","aaa","aaaa","aaba"] Он выдаёт ["aba","baa","aaab","aaa"], а должен ["aba","aaa","aaab","baa","aaba"] Вот, смотри, в данном конкретном случае, он же в качестве начала слова берет только первый элемент словаря? Но ведь остальные буквы "a" в приведенной выше таблице board, тоже могут быть началом слова.
Алсо, смотри, какая хуйня: элементы [0][0], [0][1], [1][0], [1][1] у тебя становятся просто 0, 1, 2, 3 в словаре. Так вот, результирующий список для "aaba" меняется вот так: [0] [0, 2] [0, 2] [0, 3] [0, 3, 1] [0, 2, 3]
Мало того, что он прочие начальные позиции не рассматривает, так он ещё и по диагонали [0,3] соединяет буквы в матрице. А можно только по вертикали или горизонтали.
>>2800678 (OP) Аноны, а подскажите, возможно ли совместить автоматизацию BS4 и селениума? Мне нужна штука, которая автоматизирует действия на сайте но сайт крайне ебанутый и изменчивый, где-то я точно знаю что лучше кликнуть в 1 место чем каждый раз фиксить код