Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. исходник: https://dumpz.org/bASGKD8cCFDf
Бля ребята, я уже 4 день с мокрыми глазами хуярю ссаный код, не связывайтесь с тиктоком, если кто-то предложит, это такая помойка закрытая, что просто пиздец. Когда просто смотришь на 5-8 разных хостов для их апи уже глаза кровью обливаются, там по 4 уровня доменов, десятки параметров и заголовков, которые рандомно появляются и исчезают, половина параметров идентичны для всех запросов в принципе, кароче жопа у меня горит очень сильно
>>1931880 Я не особо много работал с вк, телегой, хх, яндексом и пр., но там такого ужаса не было, уж точно не приходилось лазить по китайским форумам, чтобы алгоритмы подписей искать
Посоветуйте intermediate книжку, сконцентрированную на прикладных знаниях. Типа второй книги Лутца (Programming Python), но не такую древнюю, желательно на английском.
Откуда брать идеи и практику в написании программ? Я уже заебался читать одну книгу и выполнять какой-то конченый практикум аля "замените символы в строке". Когда думаю что написать, то в голову приходит только что-то простенькое типа программы для вычисления дискримината. Где брать задания?
>>1932578 Есть смысл его читать после первого Лутца? Я так подумал, что уж лучше наверну книги Стива Лотта (Functional Python Programming, Functional Python Programming), пусть они и не совсем application-ориентированные, но хоть intermediate.
>>1932601 Ну некоторая часть перекрывается, но в целом там достаточно много практической инфы. У Лутца, я так понял, намеренно многое упускается, потому что это для второй части. Лотт крутой тип, да. Тоже облизываюсь на эти книги, но пока руки не дошли.
>>1932644 Есть большие (Лутц по 1500 страниц каждая книга), есть маленькие, страниц по 300. Я-то не программист, а научный работник, мне некуда спешить, весь код впечатываю для практики, трачу где-то по 2 часа в день, 30-40 страниц.
>>1932669 Да, Лутц большой и, как многие считают, излишний. Но так как мне некуда спешить, я решил разобраться в структуре языка поэтому и проходил потихоньку. Но вторую книгу (тоже на 1500 страниц) желания проходить нет. >>1932672 А хочу запилить прогу по computer vision по распознаванию микроструктуры шлифов, но уже с каким-то интерфейсом, чтобы легче было с ней работать. И была идея запилить интерфейс для OpenCalphad (это межинститутская оупен-сорс прога для расчета фазовых диаграмм, последний раз, когда я с ней работал, интерфейса там не было).
>>1932682 Да я много чего учу, тот же немецкий, например. Но это все для научной работы, как и книжки, которые я читаю (сейчас, например, читаю "Теорию упругости" Лурье, попробуй осилить). Но зарплаты в пост-совкой науке небольшие, если, конечно ты не у корыта, и в конечном итоге путь один - съебывать.
>>1932716 за шпалы 266 баксов платят.Это средняя по области у нас ЗП так что у вас выходит огромные зарплаты? а в науке у нас помню требовался лаборант, там 150 долларов вроде было указано.
>>1932722 >так что у вас выходит огромные зарплаты? Это со стипендией от академии наук, которая через год закончится. Короче, это меряние нищетой, по-моему, бессмысленно.
>>1932791 >зачем ты учишь немецкий, например? Немецкий - второй по значимости язык для физиков и инженеров после английского, например, есть много вещей, которых нет на английском. К тому же, в сети он представлен прекрасным техническим издательством Springer, книги которого можно качать и читать. Ну и германский мир мне нравится больше английского, может туда и съебу (хотя я знаю еще один северноевропейский язык, и может съебу именно туда, но это все не точно, не хочу загадывать).
>>1932806 >А что насчет китайского? А что на счет его? Китайцы - отличные копировальщики, но по сути у них только 3 нобелевки по физике и одна премия Филдса, и то у ученых, которые работают в других странах. Да и китайская культура мне совершенно не близка, нет персонального интереса, а это важно в изучении второго иностранного после английского. >>1932806 >алсо немецкий сложный или хуйня на палочке? Сложнее английского раза в полтора-два. Есть три грамматических гендера (с каждым существительным ты должен еще и учить при один из артиклей + окончание, которые тоже разные) и 4 падежа вместо 2 у английского. Немного иной порядок слов, чем в английском или русском (то есть в простых предложениях второй глагол ставится в конце предложения, типа "Я могу сегодня утром в ресторане булочку покушать") + английский прост тем, что там много международных или сленговых слов, которыми ты пользуешься на русском, в немецком неизвестных и диких слов больше, к тому же они любят объединять несколько слов в одно со сложным комплексным значением.
Прерву локальный fl вопросом об питоне. Есть функция, в которой импут.сплит. Хочу написать исключение, но не совсем понимаю, как сделать, чтобы при возникновении ошибки эта же функция заново вызывалась. Так сказать, зациклить, пока не будут введены данные, без ошибки.
>>1933204 def input_validator(a): if a=='': raise ValueError("Input is empty")
Тебе все равно придется логику проверки значения выносить. Потом цикл while True: try: a = input() input_validator(a) except ValueError: continue
Continue не даёт выйти из цикла. Но я бы взял tenacity и сделал бы обёртку. Пока результат будет пустой строкой повторяй a = input(), как оказалось библиотека хуево описана, но большинство задач таких решает
Привет, анон. Решил вкатиться в питон с нуля. Всегда нравилось программировать, в школе всё свободное время на паскаль тратил, потому что интересно было, сайты вручную делал и бла бла бла. Сейчас 26, нихуя не помню и не умею. Так вот, сколько примерно нужно учиться по времени, чтобы устроиться куда-нибудь самым днище-джуниором? Я сейчас официантом работаю за 35к, заебало, сил нет. Хочу освоить азы, устроиться в какую-нибудь днищенскую контору и уже серьёзно этим заниматься. Что посоветуете?
>>1933387 не вкатывайся в пистон. Вакансии процентов 90 на ml инженеров, где выпускники матфаков только котируются. А на бекендеров-джангистов приходится 10 проц вакансий с ебейшей конкуренцией. На твоем месте я бы вкатывался либо во фронт( да да, конкуренция не ниже, но вакансий ГОРАЗДО больше) либо в автоматизацию тестирования( тут кстати пистон неплохо распространен), что по сути тоже программирование но немного утилитарное, а не креативное. я скозал.
>>1933453 Пиздец кстати, неужели так много программистов вкатывальщиков? или мало работы? Судя по питону да и прочим видимо языкам - вкатится в эту хуйню сложнее,чем в любую другую профессию,потому что как минимум нужно сидеть и учить, пытаться, пробовать, кодить. А в любую другую профессию с работой руками например вкатиться намного проще, там тебя на работе будут обучать что и как делать, начиная от стройки и заканчивая автосервисом такая хуйня, там нельзя самому научиться и никто не ждет что ты прям с нуля будешь все делать. а в программировании никто не будет тебя обучать, им надо чтобы ты сразу уже мог делать что нужно работодателю. Проще говоря - в других работах если ты умеешь уже делать многое то ты ПРОФИ ПО УМОЛЧАНИЮ, который может требовать себе привилегии. в кодинге по дефолту ты должен уметь делать многое, это стартовый этап.
>>1933469 Таких как ты каждый день по вагону здесь. А представь, что творится в целом, если в каждой второй ссаной видяшке на ютубе рекламируют инфоцыганские курсы по вкату вайти.
>>1933545 Хуй знает, я пока не решил. Алсо допустим курсы рекламируют дохуя, но так же ведь дохуя рекламируют биржи в смартфоне или азино 777. Неужели много людей на такое ведется?
>>1933555 То есть тру по сути не несет смысла, если условие фолс не применяется никогда? Почему в языке не реализовали бы так, чтобы условие тру не обязательно было писать?
>>1933560 >То есть тру по сути не несет смысла Нет, оно несёт смысл константного условия, что цикл будет выполняться всегда, пока внутри него не выполнится условие для break.
>>1933560 Тру несет смысл. Вайл работает проверяя условие, ты можешь этим управлять. Когда тебе нужен бесконечный цикл, ты обеспечиваешь всегда истинное условие тру.
>>1933561 ну еще бы там не было профита, там суммы пиздец по сто тыщ за интернет обучение. затрат мизер, профита вагоны. даже если будет учиться 5 человек то уже дохуя профита. >>1933563 а почему например не пишется в условии вместо тру например вайл а !="?
>>1933564 То есть при значении тру цикл остановится только после брейка? Значит любое условие по умолчанию будет верным, кроме отдельно указанного неверного?
>>1933571 >вместо тру например вайл а !=" Если у тебя в коде есть переменная a и она никак не изменяется внутри цикла, то ты можешь написать while a, и это будет тоже самое, что while True.
>>1933573 Цикл проверяет свое условие на каждом витке. Бесконечный цикл это всего лишь отдельный паттерн, использующий это свойство, нет никакого смысла его как-то выделять средствами языка.
>>1931851 (OP) Несколько странный вопрос: как добавить свой оператор в Питон? Хочу поиграть с сурс-кодом и запилить свой оператор в Пистон, с чего начать?
>>1933558 >Неужели много людей на такое ведется? Все хотят иметь высокооплачиваемую работу, где надо работать головой, да ещё такую, с которой "весь мир открыт". Нынче кризис и дальше будет только хуже, прочие специальности сокращаются. А там, где надо работать руками, не престижно, типа "для васянов".
Вторая известная приманка - это фондовый рынок, где ажиотаж среди вкатывальщиков-инвесторов огромный, все хотят "работать на бирже", покупать-продавать разные лоты и на этом зарабатывать. И реально на это многие покупаются.
>>1933469 Ты на редкость адекватен в своём понимании, таких как ты редкое меньшинство
>а в программировании никто не будет тебя обучать, им надо чтобы ты сразу уже мог делать что нужно работодателю. Чему-то всё-таки обучают или дают время обучиться. В вакансиях эти вещи перечисляют в разделе "желательно".
>>1933775 ну допустим чтобы ебаться на бирже не нужно нихуя кроме денег стартовых. а чтобы вкатываться в программы надо же реально это задрачивать. Мало у кого хватит на это желания и терпения. К тому же ок, пусть они там хотят за 300к/сек работать, я считаю что норм зарплата для программиста и 40-50к. Один хуй это больше чем на мухосранском заводе за 20к мерзнуть в цеху
>>1933007 >Нет, славянские языки сложнее германских. Преувеличено даже в этой картинке. В славянский языка сложные формы слова, а германских очень сложные комбинации слов.
В славянских времена образуются добавлением суффиксов-окончаний, а в германских вспомогательными глаголами и артиклями. Комбинация дополнительных предлогов, глаголов, отделяемых приставок может очень сильно менять смысл.
Вот тупо выпиши все времена глагола run в английском.
А потом добавь местоимения и специфичные модальные глаголы run away run for run up run over run on run off run out run with
Комбинации индивидуальны для каждого глагола. Понимать смысл очень-очень тяжело.
Главная проблема при изучении германских языков.
Грамматика относительно проста, но мнемоника очень сложна, на порядок сложнее и выразительнее, чем в русском языке.
>>1933777 > а чтобы вкатываться в программы надо же реально это задрачивать. Вот это не все в состоянии осознать. Считают, что программирование это примерно как бухгалтерия, потратят сколько-то времени и разберутся.
А тут полностью мозги надо менять. И огромный объем сопутствующих знаний нужен.
>>1933775 У меня в it уже 7ой год стажа пошёл, и последние 1.5 года стагнация в развитии, а по отношению к рынку так полная деградация. И я понимаю, что лучше бы пошёл сейчас работать руками, потому что it меня заебало, мне уже почти 30, и мозги у меня медленные. И если бы меня сейчас взяли на позицию суши/пицца/бургеродела за ту же зп, что в it, либо даже на меньшую, но с гарантией, что через пол года я буду получать столько же, то не думая бы свалил.
>>1933558 Пайтон сойдёт для начала. С одним языком ты всё равно нахуй никому не нужен, но с его знанием ты сможешь выучить другие. Смотри: у языка есть библиотеки и фреймворки (в зависимости от отрасли тебе нужно уметь в разные), параллельно с языком нужно знать абстрактные от языка вещи вроде (алгоритмы, базы данных, сеть, структуры данных, принципы архитектуры программ более-менее переносятся из языка в язык). Освоить на 80% сложный фреймворк - ну, не знаю, для меня (а я вкатывался с нуля) это было сложнее, чем освоить на 80% основной язык.
Соответственно, если ты освоил просто пуйтон и ВДРУГ решил уйти в джаваскрипт/руби/сишарп/лисп, твоя трата времени на пуйтон не была впустую, так как ты не инвестировал пятнадцать лет жизни в тамошнюю атмосферу и много общего узнал параллельно. С нуля за месяц научился клепать жирных телеграм-ботов на пайтоне? Тогда для того, чтобы делать таких же ботов на руби, тебе понадобится уже неделя - и так далее.
>>1933777 >чтобы вкатываться в программы надо же реально это задрачивать. Надо сидеть за пекой и много задрачивать. У какого-нибудь условного официанта который привык на ногах работать организм будет в ахуе от того что приходится целый день сычевать за пека. Причем и на уровне психики и физиологии. Все эти васяны которые покупают курсы и пытаются вкатится никогда не станут програмиздами и айтишниками просто потому что не привыкли сычевать за пекой с детства. Именно по этой причине большинствой ойтишников это задроты с самого детства, которые сычевали со школы если не с садика.
>>1933780 >А потом добавь местоимения и специфичные модальные глаголы On, off, out и т.д. - это не местоимения и не специфичные модальные глаголы, а предлоги. У меня они никогда не вызывали проблем в сочетании с глаголами (разве что в самом начале изучения языка), всегда их интуитивно понимал.
>>1933975 В германских языках предлог может полностью менять смысл глагола, чего не бывает в русском.
Сравни глаголы run vs run out не говоря уже про вырожденные случаи вроде глагола take
Интуитивно фразеологические глаголы понять невозможно, пока ты много лет на язык не потратил, не наработав какую-то интуицию на огромном объёме текстов.
Пример из словаря: > Can you run off 200 copies of this notice? — Можете сделать 200 копий этого объявления?
>>1933834 >Есть что почитать про принципы архитектуры программ? Мой код выглядит как говно и макароны. Эти два предложения никак не связаны. Книжки по архитектурам есть. Но на качество твоего кода они никак не повлияют.
Намного полезнее читать разные стандарты оформления кода. Обычно там приведены примеры как делать, как не делать, и даже обосновывается почему.
>>1933807 ну я примерно так и понял, когда начал знакомиться с программированием. Это типа как тачками, если ты например не умеешь нихуя и не знаешь как работает двигатель и остальное то это жопа. Но если ты например разобрался с механикой рено то чтобы разобраться скажем с фордом тебе потребуется намного меньше времени, чем если бы делал это с нуля. Принципы работы общие, отличия в конструкции. >>1933782 ну это пиздец, да. думаю такие отвалятся сразу же как поймут что нужно потратить на это прилично времени и никто за это время не будет платить. >>1933786 Это же вроде классическое наебалово, не так ли? >>1933789 в работах руками очень четкий потолок зарплаты, и он довольно низкий. Больше можно заработать если самому открывать бизнес хуизнес, что то мутить, тут наебать, там кабанчиком метнутся, и это уже совсем не то, чего ты хотел изначально.
>>1933890 ну да, от склада ума и характера тут вообще дохуя зависит. Дохуя людей просто не любят думать, например. Многие не любят получать новые знания. Я всегда охуевал с того что есть люди, которые при пользовании компом или даже смартфоном не пытаются понять как работает то, чем они пользуются, а просто механически запоминают что нажимать. Это приводит к ебейшим ситуациям когда в другой проге такой человек видит что кнопки расположены иначе, какие то кнопульки "исчезли" и начинается ПАНИКА, что за хрень, где тут нажать??
>>1934064 Это просто наипиздецкий пиздец, есть у меня много историй из жизни не связанных с компами. Например из недавних что сложного в том чтобы кабель для телевизора положить в плинтус или собрать комод, тут даже мозгов не надо много для таких целей, но я помог проложить в плинтусе кабель, а мебельщик прилет на следующей неделе собирать комод за пару тысяч, хотя там делов на полчаса-час, но я не стал уже лишнего им говорить, а перешел на пиво. А еще многие охуевают что я сам собрал кухню, вот так вот взял купил в леруа, мне грузчики затащили и я за вечер большую часть собрал, на следуюущий день с перфоратором и уровнем все повесил и сэкономил десятку, под трубы только чуток криво столешницу вырезал. Тут даже мозгов не нужно взял шурик, засунул туда биту h4 и крути себе параллелепипеды из заранее нарезанных и размеченных деталей, как в детстве конструктор. Большинство боятся даже этого, где особо думать не надо, а ты про компы и программы где нужно хоть чуть чуть иметь мозг. С возрастом начинаю относится к этому как к явлению природы это как снег идет, как трава зеленая, как небо голубое, так же и люди не умеют пользоваться мозгом в большинстве своем.
>>1934050 >в работах руками очень четкий потолок зарплаты, и он довольно низкий. Не скажи. Низкий он, когда ты по найму на ставке работаешь. Да и то условно маленький, свыше 100 в месяц может быть. Если же ты на себя работаешь, в принципе это как бизнес, но не в том смысле, что ты людей нанимаешь и ими руководишь, то там иногда и сильно больше зарабатывают.
Сейчас для тех, кто работает руками и делает что-то квалифицированное условия довольно хорошие.
>>1934088 >а мебельщик прилет на следующей неделе собирать комод за пару тысяч, хотя там делов на полчаса-час, но я не стал уже лишнего им говорить, а перешел на пиво. А сколько должна стоить работа на час + дорога + переговоры с заказчиком, планирование времени и т.п.? Ну молодец, бесплатно для знакомых поработал.
>>1934096 >Если же ты на себя работаешь Я про это и написал >что то мутить, тут наебать, там кабанчиком метнутся Это основное что ты будешь делать, работая на себя. Сама работа там отходит на второй план
>>1934088 БЛЯ, ТЫ НАПОМНИЛ! Пиздец я с этой хуйни в шоке когда слышу такие истории типа за 5 тыщ кран поменяли или там масло сменили в машине. На таких чуваках греются все подряд, а потом идут базары что кругом наебалово. Потому что реально часто наебалова вагоны. Люди не хотят думать - их наебывают. От установки виндовс за 10 тыщ, тут по тредам ходит квиток в качестве мема, до охуительных историй из сервисов когда меняют несуществующие детали. а самый ТОП ЖИР навара это ПЕРЕКУПИКИ, когда у честного деда покупается машина за 500к, полируется на мойке и на следующий день продается за 700к.
>>1934117 >Сама работа там отходит на второй план Ну это ты зря, как раз нет. У тебя просто работа и прайслист со сметами. Причём в случае работы руками всё намного прозрачней и понятней, чем когда "умственный" труд, потому что результат твоей работы материальный.
За материальное легче платят, чем за нематериальное.
>>1934064 >ну да, от склада ума и характера тут вообще дохуя зависит. Так это все детерминировано генетикой и воспитанием, о том и речь. Надо просто родиться в семье программистов/математиков/ученых и с большой вероятностью сам будешь программистом. >Дохуя людей просто не любят думать, например. Думать тяжело и "дорого", позвать славика проще. >>1934126 >ПЕРЕКУПИКИ Непонятно чему ты удивляешься, делать меньше и получать больше это самое изи. >>1934128 Это так, да там 2 строчки добавить че ты там пишешь 2 недели. Вон Ванька то работает сантехником, вчера смеситель установил и 3 тыщи сразу в карман положил.
>>1934128 >За материальное легче платят, чем за нематериальное. Вот нихуя. Там срабатывает ДА ЧЕ ТАМ ДЕЛАТЬ Я ЩАС САМ ЗА 5 МИНУТ. Ряяя а че меня током бьет, а чего меня говном залило. >>1933932 Устарело, есть пепа8.
>>1934136 >Вот нихуя. Там срабатывает ДА ЧЕ ТАМ ДЕЛАТЬ Я ЩАС САМ ЗА 5 МИНУТ. Это как раз про умственный труд. Или про бытовую работу руками, типа шкаф собрать.
Как только что-то сложное, так всё как раз очевидно. Никто не скажет, да я сейчас сам за пять минут под аргоном эту нержавейку сварю. Тупо нет ни техники, ни умений. Человек сам интуитивно понимает, что вот это он сделать не сможет. Может только ему интуитивно неприятно платить много денег за "работу для быдла".
А вот с IT другая история. Конфиг поменять или несколько строчек написать, почему это должно стоить дорого?
Вот профессиональная версия винды стоит 300 долларов, официально от Майкрософт. Ты пишешь программу, которая по сложности и возможностям намного примитивнее, а по сервису слабее. Разумно, что и стоить она должна существенно меньше.
Другая интуитивная модель. Ремонт квартиры или машины стоит меньше, чем квартира-машина. Почему обслуживание компьютерной техники, программы для неё, должны стоить больше, чем техника? Вот менталитет не готов это принять. А техника сейчас стоит немного.
>>1934152 >Как только что-то сложное, так всё как раз очевидно. Нихуя подобного. Когда сервисменствовал мне регулярно говорили ДА ЧЕ ТУТ 2 ДЕТАЛИ ПРИПАЯТЬ ЖАЛЬ У МЕНЯ ПАЯЛЬНИКА НЕТ ЗАШО ТУТ 5 ТЫЩ? КАКАЯ ЗАМЕНА ЧИПА? >А техника сейчас стоит немного. Ну иди посмотри сколько стоит 3080, или пс5.
>>1934128 самое основное там поиск клиентов и работа с ними. Согласование сроков. оплаты, материалов и т.п. документы это мелочи, тем более большинство вчерную работают без всяких бумажек
>>1934158 замену чипа разве делают сейчас? Это тупо невыгодно и не стоит того. реболлят просто по фану в основном, как и ремонт блоков питания и т.п. - дешевле и проще купить новый.
>>1934175 Другой не-сервис анон. Часто нужны какие-нибудь замены разъёмов. И вот там вопросы возникаю, почему 15 минут работы по перепайке копеечного разъёма, при том что ты девайс сам в сервис привозишь и паяют тогда, когда им удобно, стоит как пол дня дорогой работы.
Плюс всё ещё окружено примитивным разводиловом откровенно на лохов, когда даже за быструю примитивную работу, не требующую особого опыта или инструментов просят неадекватно много.
>>1934186 Это реальный жесткач, алсо как тебе жесткое наебалово с настройкой телефона за пару тыщ в салоне связи? типа - вам настроить телефон? тыща за настройку, тыща за установку приложений.
>>1934206 Негуманно когда бабасрака бесплатно мозги ебет. Если сама не хочет делать, если ей родня не хочет делать то пусть платит. Аве капитализм. Вообще обьяснять тем кто не желает учиться что либо это наблагодарный труд который должен хорошо оплачиваться. Именно поэтому когда вижу что какой-нибудь мастер взял с бабысраки 30к рублей за настройку шинды мне нисколько не жаль бабусраку. Вероятнее всего она мразь которая изьебала мозги родне, думала что самая умная, за что и поплатилась.
>>1934201 >В чем проблема взять с бабысраки 2к рублей Отравление рынка. Мошенники и разводилы отравляют рынок, о рынке формируется мнение, что там постоянно наёбывают, клиенты противятся этому и ищут желание себя наебать во всём.
При этом бьют с двух сторон, одни разводят на ерунде, формируя этим отношение к тем, кто услуги оказывает, другие халтуру предлагают за копейки, хотя не в состоянии сделать нормально, либо рассчитывают заработать на разводках. Но при этом формируют какое-то мнение у клиентов о стоимости услуг.
>>1934254 Рыночек это не всегда честная конкуренция. Посмотри на крупные компании, мелкософт спонсирует опенсорс чтобы давить мелочь, нинтенда судится со всеми без разбора. Так что все норм. К таким мастерам все ровно идут только бабысраки.
Антоши, вкатываюсь в скриптики на питоне, возник вопрос с хранением кред. Допустим, я общаюсь с неким API и все запросы (которые отправляются питоновскими скриптами) отправляю с одной учетки. И у меня есть набор таких скриптов с разными запросами.
1. Хочу, чтобы не светился пароль в скрипте - сейчас у меня тупо строка вида api = apisdk.Client("serverip", "user123", "password123") 2. Не хочу вбивать пароль каждый раз, когда запускаю скрипты
Нагуглил keyring, установил. Запустил консольку питона и руками сделал import keyring keyring.set_password("API","user123","pass123")
Окей, креда завелась в виндовом кейринге. Теперь я могу дергать её внутри скрипта через keyring.get_password("API","user") Но как долго она там хранится?
>>1934589 Ну смотри, ебло которое не умеет задавать вопросы. У тебя твой говноскрипт лежит в гите и ты не хочешь палить свой обоссаный логин и пароль? Так? Тогда импорти модуль который не будет индексироваться гитом. Просто я хз как понимать твое >>1934526 >Хочу, чтобы не светился пароль в скрипте - Или поясняй что ты имел ввиду, тут телепатов нет.
>>1934589 Сам код их берет из переменных, дотенв загружает из файла в твоей среде. В разных средах оно использует свои переменные без всяких изменений.
>>1934598 Окей, под "Хочу, чтобы не светился пароль в скрипте" я имел в виду "Хочу, чтобы не светился пароль в открытом виде где бы то ни было" Т.е. вариант хранить его в соседнем файле не подходит.
>>1934616 Всё верно >Не хочу хранить в открытом виде >Не хочу вводить каждый раз при запуске скрипта Ты просто не знаешь, сколько креда в кейринге живет, ведь так?
>>1934620 Прост не представляю как ты себе это представляешь. Это как посрать не снимая штанов и не измазавшись говном. >>1934619 Пишешь модуль где константами твои данные, дальше его импортишь и ок.
>>1934626 так подожжи я сделал файл hui, куда вбил пару переменных (у меня не креды если что) потом сделал в новом файле import hui и тут есть код с вызовом этих переменных но если я выполняю второй файл, он ругаетсо на "переменная is not defined"
>>1934636 ага понятно, при обращении к переменной надо перед точкой название модуля указывать а можно изменить это поведение, чтобы по дефолту все переменные искались в определенном модуле?
двачик, памаги. Есть список [(4, 'a'), (4,'b'), (3, 'a'), (1,'a'), (1, 'b'), (1,'c')] итд.
Если сделать sorted(список, reverse=True), то все сортируется по убыванию первого элемента. Как сделать так, чтобы сортировка учитывала первый элемент и второй, чтобы была сортировка и по числу и по алфавиту?
>>1934655 В общем, есть у меня такая структура /script1.py /script2.py /script3.py /src/mod1.py Все три скрипта включают import mod1 По понятным причинам (модуль лежит не на одном уровне со скриптами) появляется ModuleNotFoundError Пробовал добавить /src/ в переменную PATH, но не помогло Как заставить питон искать модули в /src/?
Я добавил этот тред в избранное. Теперь я вкачусь? Думаю начать с документации питона и книг лутца, параллельно переписывая свои шелл-скрипты на питон и решая задачки на литкоде с кодварсами. Подводные?
>>1934701 Сортированный список по числу и по алфавиту. Чтобы было 4,а 4,б 3,в 3,г Сейчас сортировка только по числу, а если числа одинаковые, то по алфавиту нет
>>1934727 Фешенебельно. Как это работает? Лямбда выдает Х, равный паре элементов, и эта пара сравнивается с элементами изначального списка попарно? Почему знак минус у первого элемента в лямбда-функции?
>>1935028 Лямбда выдает пары и эти пары сравниваются с другими такими парами, определяя место изначальных элементов. Минус потому что числа сортируем по убыванию.
Аноны, как поступают в случаях, когда нужно выполнять запрос по разным URL, c разными параметрами, но с одним общим ключевым словом? Бля, объясняю как мудак походу) Мой случай такой: есть 4 онлайн-магазина, я хочу искать один и тот же товар среди них, получать от каждого ответ и находить самый дешевый. В каждый из магазинов надо передавать разные куки, поисковая строка тоже у всех разная, но товар один. Парсеры я уже написал, теперь думаю как можно грамотно организовать доставку сырого HTML. Any advices?
>>1935096 не, requests я знаю. запросы я сделал через aiohttp.ClientSession(). получилось 4 функции, выполняющих запросы и отдающих HTML, но чувствую, что это нихрена не питонвей.
>>1935094 Ну так напиши мап-функцию, которая в зависимости от типа магазина на твои входные данные (товар) будет выдавать свои куки (словарь с ключами-магазинами и значениями-куками).
>>1935104 Сделай класс на каждый сайт, там хранишь сессию и функцию для формирования урла. Потом заводишь списочек с этими объектами и гоняешь через него.
>>1935094 >Any advices? Класс под запрос. Дальше классы под сайты. Например класс Yobashopreauest и наследующие BolshoyYoba, SredniyYoba, MaliyYoba со статическими методами. Чисто не глядя четам у тебя за данные и тд. Тут же можешь методы написать чтобы инфа на выходе была более-менее одинаковая. Дальше обработчик ну и дальше сам докумекаешь.
>>1935033 ИМХО, но это отвратительно. Лучше почитать статьи (от разрабов)/документации/кукбуки ну или глянуть видео от непоредственных юзеров/разработчиков технологий.
Есть список уровня ['po', 'b', 'pr', 'a', 'b', 'news', 'po']. Мне нужно вычислитьиндекс заданного элемента, например 'b' мне бы выдало [1, 4]. Простой метод .index не подходит он только первый индекс дает, а повторы игнорит. Есть какой-нибудь простой способ эти индексы получить? в индексе можно конечно пердеть со старт стоп, но это сложно будет
Помогите я распылился пиздец, изучаю пистон, до этого баловался с крестами и явой, калькуляторы, списки, коллекции, обо всем посмотрел. Но в требованиях на том же хх, просят различные фрейворки и технологии, но как их освоить? Какой пет-проджект (не обязательно на пайтоне, ибо сейчас все три языка у меня на одной уровне примерно) можно написать, чтобы хотя б на учебном проекте осознанно подергать рычажки? понятие опен сорс знаю, но абслютно не знаю, что там делать.
>>1935964 С++ тут HFT или микроконтроллеры Java - Spring/Spring Boot очередной веб сервис Python - Django/FastAPI веб сервис или сразу в Data Science по курсам/книгам. Java сейчас очень актуальна, но и вкат дольше. Python для обработки данных охуеть как актуален. Там и задачи интереснее, чем просто CRUD писать, но и требования могут быть другие. Кроме языков тебе SQL и NoSQL надо освоить. С++ как и MycroPython актуальны для IoT, кресты конечно же в почете, так как и ресурсы другие. Вот и выбирай. ESP32 стоит 900 рублей, покупай и делай вебкамеры личные или JetsonNano за 12 тысяч для проекта ML на Python.
Салам двач. Помогите нубу плз. Осваиваю flask, столкнулся с проблемой: На локалхосте форма отправляется нормально кнопкой submit с отображением другого шаблона после validate_on_submit, а на pythonanywhere проверка не проходится и отображается первый шаблон. Чудес же не бывает?
Есть форма с рекапчей, но с какой-то лоховской настройкой - не дает задачек даже без аккаунта гугла. И вот я думаю как бы её исполнять, чтобы без целого браузера, может какой-то нодой?
Двочане, повился вопрос, который не могу загуглить, нужно узнать использует ли тикток mysql, нужно для обработки ошибки 2013, алсо может кто знет что еще может генерить эту ошибку, какие программы, скрипты и прочее, ну и вопрос как в принципе узнавать на каком стеке написаны приложения?
Расширил я, значит, по вчерашнему совету дефолтную модель юзера. "Расширил" через OneToOneField - у меня теперь для всего этого есть класс Employee.
Как мне в админке для Employee выводить его имя и фамилию? В самом Employee у меня только ссылки на юзера и на роль, и админка только два этих поля отображает
>>1937631 Не совсем. Хуево спросил просто, хотелось бы при переходе в конкретного сотрудника иметь возможность менять имя и фамилию, объявленную в дефолтном юзере. Это мне сам шаблон менять надо?
Всем здрасти, я новичок и мне хочется в бэкенд, но в моем городе нет вакансий на ноду (есть js и питон). Пока учусь переехать не могу. Так вот, в ноду лучше из питона приходить или из фронта на жс?
Бля, почему Джанго проекты так долго копируются куда-либо, хотя там 30 мегабайт? Из-за того, что там дохуища файлов? Хочу работать над одним проектом дома и на работе. Но на работе вроде нельзя ничего поставить, я скачал портативную версию редактора и норм. А ещё и все порты под флешки заняты, только на соседнем компьютере есть. Приходится копировать на сетевой диск, а с него скачивать на свой пека. Охуеть вообще. А потом обратно все также. Я вот думаю мб чего придумать. Гит какой-нибудь освоить может. Но я же не смогу обратно в гитхаб залить файлы, не установив какую-нибудь программу?
пацаны перекатываюсь к вам из байтоебли - надоело получать копье за ебучую тонну требований скажите, что должен знать питон разраб? (не дата сайнтист - не прет математика на таком уровне. Либо бэк либо мл инженер) спасибо)
>>1937995 а вообще, чел, раз уж ты мне отвечаешь скажи плез, насколько вообще работа интересная? Я просто в бекенде ничего не смыслю и что ребята пилят на нем тоже не особо то и знаю, тк лет 5 пилил ПО для датчиков всяких почему питонистов называют макаками? реально что ли по клавишам просто так тыкать? Я из уважения к коллегам по цеху не очень верю, что работа в ИТ может быть макакишной для меня просто большое удовольствие вызывает решение сложных задач, чтоб прям посидеть, во внутренности системы, в которой работаешь, повтыкать это все есть в мире бэка?
>>1938004 Тебе какой бэк подавай? Если очередной REST это даже Java макаки, потому что там все с фреймворком. Недавно писал сервис эмуляции протокола Штриха на питухоне. Для байтоебства есть еще micropython для ESP32 и Pi. Хочешь и там задрачивай микроконтроллеры и прочую ебалу. Правда я думаю придется на C++ или Rust с ESP32 переходить, пока еще не пришла из Китая.
Бэк в основном хуйня полная, если не сам архитектуру пилишь.
>>1938047 В основном хуйня так как пилишь REST API CRUD с OpenAPI. В основном архитектуру пилят те кто умеет, а разрабы уже чисто по стеку и реализации. Я в одно рыло такие костыли лепил, что удивляюсь как все работало. Шина данных держалась на одном RabbitMQ, лол. Зато все сам, да. Отец, системный архитектор, говорил что я дебил (ну он вообще любитель Java) и в нормальную галеру меня не возьмут за такие проделки.
>>1938047 А ну и проекты госовские часто на SOA (какие нахуй микросервисы) монолитах с XML и WSDL на борту. И конечно же на божественной(нет) Java. Смузихлебы с Python нужны только коммерсам и то не всегда. Куча легаси на Ruby и PHP. Скорее на NodeJS перейдут чем на Python.
>>1938092 насколько я понимаю, он в принципе в бэк не советует вкатываться тем, кто ждет каких-то дико охуевших задач либо from supermodule import your_task либо архитектор ( от себя хочу добавить, шо хуй станешь вторым без работы первым) мимо
>>1938093 Дак а чем плох import supermodule, это же значит что сидишь кайфуешь лепишь круды и чинишь если сломаются, будто на фронте свободы больше? Дизайн за тебя уже придумали, библиотеки тоже
>>1938098 да ничем, в целом-то, и не плох главное, чтобы работа по кайфу была кому-то в кайф круды лепить - в чем проблема? ни в чем кому-то хочется поебаться прям - ну тоже ок наверное вторым просто не нужно идти в бэк на питоне - либо кресты, либо еще что-то
>>1938102 Слышал что бек на питоне хуйня, что он не заточен под бек и основная его роль в дата сисенсе. Что можешь рассказать об этом, брешут? Или как жить, на что глядеть
>>1938106 я крестовик, соре опыт в питоне на бэке только в унике со стороны кажется, что да - чисто для бизнес логики но для написание безнес логики особо то ничего и не нужно знать, кроме как БИЗНЕС в котором эта логика будет если устраивает - вперед
>>1938109 >БИЗНЕС логика Именно, а учитывая, что если монолит - Java, а если монолит Java, то фронт обязательно сука злоебучий AngularJS, то питону некуда примкнуть тут. Монолит на питоне? Ну нахуй. Такая ебака грозная получается, еще и вручную контроллить по сути, JVM же нет, а если микросервисы, то уже ближе к смузихлебству. Но просто REST на питоне? Ну хуй знает, даже Хуяндекс пилит микросервисы Python/Go судя по их хабру. Но там просто так уже не выпилить Я.Такси и не запилить на каком-нибудь чистом Go, не окупится, еще и новое спагетти появится.
>>1938106 Он не то чтобы не заточен. Микрофреймворков с асинхронкой (забудь ссаную Джангу) уже дофига и на любой вкус, проблема с WSGI:ASGI, хотя и тут уже есть интеграция с nginx. Просто как бы помягче сказать, ну не сдался он никому, если только не пилишь соло или весь проект не строится на ML (ну с натягом можно туда вебсервис впихнуть, хотя он особую роль там не играет)
Я написал калькулятор для курсача и суть в том, что для некст лвл у калькулятора должно быть инженерный режим. Я не придумал ничего круче, чем создать второй вид калькулятора и сохранить ui файликом.
Алгоритм такой: Метод инит конструирует все и выводит первый ui обычного режима пик1, все классно работает. Нажатие кнопки '///' делает что-то self.ui = uic.loadUi('calulate_engineering.ui') и тогда старый пик исчезает и появляется новый интерфейс. Там как бы во втором ui все остается прежним, просто добавляется пара полей, но ничего не работает, типа жмякую кнопки, а не пашет, просто болванка. Подозреваю из-за того, что метод init заново не вызвал. Как можно реализовать такую дичь?
Аноны, кто работал с pyqt? Когда запрос на oauth делаешь, то открывается страница с кодом. Его никак не получить в ответе что ли? Пользователь сам должен ввести его?
Аноны, подскажите. вот есть код https://www.codepile.net/pile/5R0dKWRO что надо поправить чтобы в результате сложения экземпляров класса File генерировалось уникальное имя файла для создаваемого объекта класса File?
парняги есть ли какой-нибудь способ остановить безопасно бесконечный while цикл во время выполнения? юзаю пайчарм, в цикле идет обработка риалтайм данных с камеры. Если нажимаю стоп в ide, то весь процесс стопится и до строчек, где я закрываю камеру просто не доходит ну типа
while True: ___do_smth() camera.stop() # до сюда вот не доходит при остановке процесса
>>1931851 (OP) Пизда рулю. При попытке юзания pip из виртуальной среды выпадают максимально странные ошибки (пикрил). Причем если запускать приложение (из докера) то все пашет, втф?
>>1938511 Пушто ты еблан и запускаешь не из под виртуальной среды? Сначала activate -> переход в venv и потому уже python3 *.py. Или настраивай PYTHONPATH=${PYTHONPATH}:/home/nick/tele2/webim
>>1938537 Какой еще уебанский? Если ты сервис запускаешь через systemd, то как ты еще graceful shutdown сделаешь без обработки signal? Самая мякотка, когда в Process вложен Asyncio Loop и надо прям аккуратно все завершить и при этом загасить, так чтобы никто не думал kill -9 послать, ибо долго блять.
>>1938543 У тебя запуск идёт из системных каталогов, а не из под среды. Смотри сам, что тебе интерпретатор пишет. Там должны быть пути вроде /home/vasya/virtualenvs/porevo/bin/...
Попробуй запускать интерпретатор не через activate, а напрямую как /home/vasya/virtualenvs/porevo/bin/python my_script.py
Пайтаны выручайте заебало Есть Лист классов и есть обычный лист Как блять сделать дубликаты объектов в листе классов в соответсвии с кол-вом повторений в обычном листе? Сделал ка кна скрине и оно висит нахуй Дубликаты я посчитал удобно а дальше хз заебало уже аутировать даже Пикрил
>>1938805 >1. Лист классов? Чего блять? Питоновский list содержащий объекты класса Test >2. Повторения считаются с помощью collections.Counter, "дубликаты" убираются с помощью set Убирать повторения не нужно нигде, наоборот в листе классов должныбыть повторения как в обычном листе на основе сравнения строк листа и полей name Объекта класса Функция upd пытается это сделать на скрине
>>1938911 Ну если ты хочешь что-то менять, то надо в цикл оборачивать, а так можно и генераторным объектом обойтись, например. https://ideone.com/wAJ2Sb
Двачик родной, подскажи как вкатиться в ООП? Я понимаю что такое классы и зачем они нужны, хочу как-то освоить вот эти ваши всякие паттерны и бест практисы. Есть что почитать/посмотреть толковое с примерами на пистоне? Заранее спасибо?
>>1938939 Какая же ты скотина. Твой высер ничего общего с решением не имеет.
Теперь по сабжу. ОП. Тебе надо вывести отдельную функцию, а не определять все в инит и создать какую-то переменную типа self.status и с помощью этой переменной по нажатию кнопки подгружать новый шаблон в созданную функцию и просто вызывать ее по нажатию кнопки.
>>1939036 Ну типа ты запечатываешь хуйню всякую чтобы она не протекала везде. Типа методы класса сразу пишешь чтобы не искать функцию хуй пойми где в программе и думать как блять это работает и как это нахуй отлаживать. А так у тебя сразу в классе его методы, понятней. >>1939039 Ну эт наследование когда ты можешь методы одного класса использовать в другом. Допустим ты созда класс овощи. А потом создал класс картошка, и класс морковка, и в них используешь тот же метод что в овощах.
Тебе надо читать про солид и паттерны, читать код нормальных проектов, читать нормальные формулировки всех определений и еще посравнивать разные языки, потому что например какой-нибудь ISP из SOLID сильно проявляется в джаве, шарпе и пхп, так как прямо пишутся интерфейсы, но в других языках без интерфейсов выдумываются какие-то свои пути его соблюдения, инкапсуляция тоже не про модификаторы доступа на самом деле и т.д.
Каноничный ООП сейчас это джава и те языки которые с нее все украли
>>1939048 >Каноничный ООП сейчас это джава и те языки которые с нее все украли Ой блять, иди нахуй, душный легасипидор. Джава у него. Ебать ты дед вылез тут нахуй, джава сиплюсплюс. Хуй тебе в рот.
Ладно, я понял что с ооп сложно. Может подскажете тогда, что глянуть просто по бест практисам питона каким-то? Мне скорей для общего развития надо, т.к. больше наукой занимаюсь...
>>1938987 На питоне ООП во всей красе не прочувствовать по причине отсутствия модификаторов доступа, интерфейсов и абстрактных классов. Так что такие вещи как инкапсуляция и полиморфизм тут забзать не получится. Если хочется прям ООПшного ООП, то советую попробовать Java, C# или на худой конец php.
Пагни, как запилить простейший ПАТЧ реквест в джанге? Имеется уже ПОСт, можно ли пол как-то модифицировать чтобы был патч? Я в этом не особо шарю, менеджер спрашивает. Спасибо
Короче ты хуйню сморозил. Если есть необходимость применять такой подход, то пожалуйста, чаще всего нахуй не надо, а та же Жаба заставляет тебя это делать.
Антоны, как работает современный фронт, может кто подсказать как бэку начинающему, про шаблоны в джанге и как вебсервер документы отдает я понимаю, а вот зачем нужны фреймворки для фронта я хз. Я вот так представляю что на js подгружается вся динамика через апи и часть еще через ajax, я прав?
>>1939218 >>1939220 Я с вами абсолютно согласен, однако один наш клиент лично попросил менеджера, что они хотят патч фичу от нас. Попробовал я модернизировать пост, так не работает. Кину сам кол чуть позже, если кто-то сможет подсказать.
Аноны, подскажите. вот есть код https://www.codepile.net/pile/5R0dKWRO что надо поправить чтобы в результате сложения экземпляров класса File генерировалось уникальное имя файла для создаваемого объекта класса File?
>>1939217 Ajax как раз дёргает твой АПИ Бэка, получает новые данные и производит мутацию объектов на фронте. Шаблонизатор уже устарел, так как обработка идёт на стороне сервера, что добавляет нагрузки. Можно и VueJS рендерить на сервере и отдавать готовый DOM, но не советуют.
>>1931851 (OP) Старая добрая задачка с двоичными числами. Даны 2 десятичных числа. Надо перевести их двоичную форму так, чтобы в обоих было одинаковое число знаков Ну ебана, вот о чем я: даны 1 и 4; 1 -> 001; 4 -> 100
Вот код на скрине, вроде работает, но меня не покидает чувство что написал его по-уебански, как лучше?
Собрался я значит сделать так, чтобы после успешной регистрации аккаунта, автоматом логинилось и редиректилось на стену этого самого пользователя. Но редиректится почему-то на адрес в начале которого подставлено /registration/.
Есть ли готовые решения для сохранения результатов вычислений на диск, чтобы повторно из не пересчитывать при перезапуске? joblib.Memory не завелся как я понял из-за того, что я либо на винде, либо аргументы функций не могут быть функциями, либо работаю в жопитер блокноте. Так что навелосипедил свой вариант для сохранения в csv. Можно тут что-то улучшить или заменить готовым?
>>1939495 Можно сериализовать в текст в формате json, или yml, или xml, или еще в каком-нибудь формате соответствующих библиотек море, в питоне есть встроенный модуль pickle для бинарной сериализации питоновских объектов. Полученные значения можно просто в файлы записывать, можно в базу данных, а можно сразу данные писать в базу данных, в sqllite какой-нибудь.
>>1939514 Я и взял pandas именно из-за встроенной сериализации в csv. >>1939513 Там не настолько большой объем данных, но вычисляется он очень долго. После каждого перезапуска жопитера их вычислять не охота.
>>1939527 Нет, не по одному, для каждого вызова функции с каждым набором аргументов. Но все равно объем небольшой получается. В данном случае чтение и запись на диск гораздо дешевле.
>>1939048 >>1939036 Не своетую читать шизика Мартина (или, по крайней мере, воспринимать его шизу всерьез). Инкапсуляция - это то, как ООПшники называют information hiding (https://en.wikipedia.org/wiki/Information_hiding) - это один из основных инженерных принципов вообще. Можешь начать с этой статьи.
Анон будь няшей подскажи как: 1) Есть aiohttp веб сервис, иногда на него прилетают тяжелые запросы которые обрабатываются 100мс (вероятно это не предел) в синхронной части кода (какая-то обработка данных на pandas написаная не мной, я делаю http обертку). Как бы мне из обработчика запроса спавнить подпроцесс и выполнять синхронный код в нем и await'ить до его выполнения передавая тем самым управление эвент лупу? (чтобы синхронный код не тормозил другие запросы). Я думал заюзать multiprocessing, но ведь он синхронный, т.е. запустить то в процессе что-то можно, a await'ить это никак. Может быть более правильно будет просто в основной цикл вычислений синхронного кода добавить переодический вызов await asycio.sleep(0), что бы дать возможность переключения на другие асинхронные таски? И сразу запускать скрипт с нескольких инстанциях. 2) Можно ли вывести как-то информацию, сколько примерно простаивает event loop (т.е. ему нечему передавать управление), чтобы на основе этого понимать сколько инстанциий скрипта необходимо для корректной работы (а может в будующем и автоскейлер накрутить). Понимаю что можно косвено судить по количеству асинхронных тасков или времени выполнения запроса, но хотелось бы явно.
>>1940462 Не совсем понял твою задачу. Ты можешь поднять микросервис через Process и кидать туда задачи через Pipe, тогда у тебя 1 процесс это вебсервис, а второй это для расчётов. Или же как вариант выделить просто отдельно сервис расчетов в микросервис и кидать туда по REST задачи. Третий вариант Celery с Redis или RabbitMQ, но нахуй надо.
>>1940462 >Может быть более правильно будет просто в основной цикл вычислений синхронного кода добавить переодический вызов await asycio.sleep(0), что бы дать возможность переключения на другие асинхронные таски? Про run_in_executor тебе уже ответили.
А вот по этой части грабли есть: asyncio.sleep(0) не переключит таску. Тебе надо делать asyncio.sleep(0.0000001), например, чтобы переключение было.
>>1940462 >2) Можно ли вывести как-то информацию, сколько примерно простаивает event loop (т.е. ему нечему передавать управление), чтобы на основе этого понимать сколько инстанциий скрипта необходимо для корректной работы (а может в будующем и автоскейлер накрутить). Понимаю что можно косвено судить по количеству асинхронных тасков или времени выполнения запроса, но хотелось бы явно. Про asyncio прямо так не смотрю, надо в исходники лезть, но по-моему он никак не считает, сколько времени он простаивает.
Косвенный метод в том, чтобы взять time.process_time() (количество секунд работы процесса) и сравнить с time.monotonic() то есть ты каждую секунду, например, считаешь разницу в monotonic времени (должна быть примерно секунда) и в process_time, по чему делаешь вывод, насколько сильно у тебя процессор загружен.
По-моему там есть даже более специальные инструменты для подобного мониторинга и более точные, но я на память не помню, где они закопаны, искать надо.
>>1940988 У тебя всё что сложнее одного выражения это "как в перле"? Иди посмотри современный жс, там вообще какая-то инопланетная хуйня и никто не пиздит.
>>1940998 >какая-то инопланетная хуйня Это ты автор вот этого говна >>1927282 → ? В жс есть свои конвенции и парадигмы, хоть они и малость уебанские порой но смысл в них есть. За то говно что написал ты, в любой компании будешь сразу уволен нахер. Тут не в питоне как таковом дело а в том что это максимально неподдерживаемый и лапшеобразный код
Я сегодня узнал что мой код используют уже 3 месяца, как я счастлив аноны, в октябре еще нашел заказ на фрилансе, нужно было разработать бота, который бы писал рейтинг игроков для мода халфлайфа, мы нашли решение, я написал бэк и самого бота, который полил обновления и писал в дискорд о результатах матча и лидерборду. А сегодня я выяснил его оказывается подключили как доделали мод и там уже целый сезон прошел и все работает и как же я кайфанул от этого, моим кодом пользуются! Решил поделится с двачиком с которым начинал изучать питон
Пацаны, написал охуенный скрипт, полезный. Решил его собрать через pyinstaller, чтобы не ебаться с установкой питончика на других компах, а просто запускать exe файл. Залил на гитхаб, на другой тачке скачиваю ехе файл, а встроенный в дрисятку антивирус орет, что это очень страшный троян и удаляет его. Файл можно добавить в разрешённые в защитнике виндовс, тогда всё ок. Но как сделать чтобы антивирус не ругался? Я гуглил везде предлагают подписывать ехе файл. Короче, знающий анон помоги.
>>1941478 что ты УЖЕ знаешь? от этого зависит все остальное. На самом деле не понятно чего вы туда лезете. Думаешь, зарплата говна просто не прогулявшего матстат должна быть выше джуна-программиста?
>>1941493 >Думаешь, зарплата говна просто не прогулявшего матстат должна быть выше джуна-программиста? Мне на зарплату поебать. Могу за еду хуячить, при условии, что в итоге смогу подняться. Меня математика привлекает, хоть я ее и не очень знаю. Во фронтенд не очень хочется, слишком много вкатовальщиков. Есть знания в мат статистике, теории информации, системном анализе. Но далеки от совершенства. Вот питон начал учить. Я сам все что нужно найду, но на это целый день убью. Думал может кто что посоветует
>>1941482 >>1941448 кстати да, там скорее всего база данных куда отправляют доверенные екзешники, а любой незнакомы распознается как враждебный, ну как я понял. ибо любые модифицированные он принимает за враждебные
>>1941598 Питон ровно год назад начал учить(большие перерывы вотвоемя сессий), это был первый заказ крупный, получил 5500 вроде, хотя пока не получилось найти более выгодное предложение по цена/время, все берут таймауты, проекты морозятся, а найти работу вообще нереально
>>1941611 Я правильно понимаю, что жабисты придумали хороший ооп, а теперь как сектанты доказывают всем что у них все неправильно, потому что по-другому?
>>1941645 >Я правильно понимаю, что жабисты придумали хороший ооп Реализация ООП жабы, как и плюсов, завязана на то, что код компилируемый. Там иначе просто не сделаешь.
Интерфейс - указатель на соответствующую таблицу виртуальных функций.
В питоне "утиная типизация", или "протокольная", что чуть другой подход. Со своими большими плюсами и минусами.
А суть в том, что люди на одном языке пытаются писать так, как на другом. Обычно это бывает после слов "синтаксис за пару недель легко можно выучить".
В питоне ООП просто другое. И проектировать программы надо по-другому.
Всем ку. Заранее прошу ссаными тряпками не гонять(хотя если хочется, то можно). Пост перехода на питон(стоит ли?)
Сейчас стою на некоем распутье. В институтской бытности попробовал кодить на 1С, и понеслась пизда по кочкам. Сейчас мне 26, 5 лет опыта разработки в 1С, несколько неплохих сертификатов, но душа постоянно просит чего-нибудь свежего(да и кошелек тоже). Имея в ДС доход 180 на руки закрадываются мысли что можно и больше, да и сама 1С чую надоест через года 2-3. Вот и решил зайти в первоисточник и попробовать расспросить, стоит ли начать изучать питон для будущего полного перехода на этот ЯП. В принципе у самого образование - программная инженерия, тупым бухгалтером себя не считаю, даже ООП вспомню если постараюсь. Как с работой в ДС, как с зарплатой, как со сложностью/скоростью вкатывания. Ну короче в 2х абзацах распишите какой я мудак стоит ли начинать играться с питоном по вечерам
П.с. Есть небольшой опыт написания мобильных приложения на Java, когда делал очень нравилось, хотелось бы понять есть ли интерес в работе с питоном.
>>1941769 Именно. Только учти что у Java есть JVM. На самом деле сложилось впечатление, что туда притащили все и сразу, а потом обернули все во фреймворк, чтобы голова не болела у господ "ынтырпрайз" погромистов как и что писать. Если в Питоне банальная инкапсуляция, да и видимая, то в Java слоев до implementation будет овердохуя (помним, что один класс - один файл). Зачем? В питухоне я могу описать модель ORM, обернуть ее в Pydantic и там же прописать интерфейсы под нее и будет это в db/models/user.py.
У меня был вариант реализации на Java, когда надо было кривую кодировку в UTF8 перегнать, так вот на Java не было ни единой такой реализации на Maven, а для питона готовый пакет с понятным исходным кодом. Да и те же байты легко через ord перегонялись, в Ява свое понятие байтов как оказалось и такая проблема известна.
Если например собирать тот же JSON в объекты, то в Java это сложнее чем через Pydantic. Почему так получилось я хуй знает, но как по мне направление языка не туда ушло. Вместо упрощения, его наоборот сделали комбайном. И ты тащить вместо одной функции кучу ненужного хлама или же изобретатель велосипед. Когда мне говорят, что Питон потребляет много ресурсов (а так и есть) я напоминаю про JVM, которая может зарезервировать себе гигабайты памяти, потому что так решила.
Хуйню не несите. Антивирь сканирует ехе-шник и на что-то ругается. Что-то его не устраивает. База приплетенная тут не причём. Он именно определяет как троян, присваивает классификацию. Значит реагирует на сборку или используемые компоненты. Я на c# написал хелло ворлд и на другом компе запустил, так ехешник был заблочен как полученный из неизвестного места. Антивирус на него не ругался и не удалял.
>>1941991 А почему это декоратор? Я например хочу мерить время выполнение кода средним значением из 1000 раз. Про декораторы читал. Но не понимаю почему ты решил что это декоратор.
>>1942027 Декоратор это функция которая оборачивает другую функцию, добавляя какой-то свой функционал. >Я например хочу мерить время выполнение кода средним значением из 1000 раз. Для этого есть искаробочный timeit timeit.timeit(func, number=1000)
>>1942041 Ты неправильно делаешь просто, вот же он пишет что хочет string or callable Т.е. нужно """hello('privet')""" или отдельную функцию def test1(): hello('privet') и тогда передаешь только test1
Мне нужно сделать программу которая автоматически будет выполнять некие действия в браузере при этом основываясь на текст находящийся на этом сайте, это возможно сделать на питоне? Если это не очень трудно скажите как это сделать может библиотека там есть какая-то, спасибо.
Я не понимаю импорты. Есть несколько реп в корне и там же в корне файл с основным кодом. Репы ходят иногда друг в друга. Я так понимаю все пути начинаются в том месте, откуда запускается питон, даже если запускаемый файл в другой папке. У меня же первое совпадает со вторым, но я получаю ошибку спустя несколько импортов по цепочк ModuleNotFoundError: No module named repa1.src Но в корне есть папка repa1/src/.../utils.py В чем может быть дело? sys.path.append("repa1/src") не помогает.
> Я так понимаю все пути начинаются в том месте, откуда запускается питон
Нет такого понятия все пути начинаются. Заглянь в содержимое sys.path, там список никак между собой не связанных путей, откуда импорты реально начинают искать модули и пакаджи.
>>1942089 И кто будет открывать эти страницы в браузере? Что является текстом на сайте? (не такой простой вопрос как кажется) Почему не расширение браузера типа greasemonkey? Почему именно на питоне?
>>1942265 >репами Репозитории из гитхаба, т.е. полагается, что это цельные куски кода. > Заглянь в содержимое sys.path, там список никак между собой не связанных путей, откуда импорты реально начинают искать модули и пакаджи. И при запуске туда вписывается полный путь откуда все запускается же, не? Я это вроде как знаю и все равно не понимаю, что может помешать заимпортить один из репозиториев.
>>1942273 > И при запуске туда вписывается полный путь откуда все запускается же, не? Только если там есть специальный путь точка, означающий текущий каталог.
Каждый раз когда ты импортируешь какой-то модуль, проверяются все пути по маскам {syspath}/{module} и {syspath}/{module}/--init--.py. Во втором случае это считается пакаджем. То что найдено, фиксируется в импорт кэше. И если ты импортируешь например foo.bar, то сначала импортируется foo, это запоминается как {packageRoot}, дальше пробуется путь {packageRoot}/bar.py. То есть, foo.bar и foo.baz обязаны лежать в одном каталоге, как и всё остальное дерево foo. Относительные импорты возможны только изнутри этого дерева и не могут вырваться наружу {packageRoot}, то есть, нельзя импортировать ../../../../../../etc/passwd.
То что ты пытаешься сделать, строго говоря, некорректно. А если там модули в этих репах, которые нужно собрать компилятором? А если там структура кода такая, что сорцы лежат в repa1/src/python/modules/src/? По-хорошему зависимости нужно ставить через pip, а не клонировать репозитории, здесь тебе не го. Используй либо pip, либо симлинки если в этих репах чистый питон, либо просто скопируй себе всё что там есть. Колёса для pip кстати можно собрать и устанавливать локально, без загрузки на pypi.
>>1942279 >Только если там есть специальный путь точка, означающий текущий каталог. Нет, зачем точка, туда кажется по умолчанию добавляется полный путь к нынешней директории, а не его сокращения. В любом случае там по умолчанию прописана домашняя директория, а все происходит в ней. > По-хорошему зависимости нужно ставить через pip Еба, вот это удобство. Ну я понял как надо делать по хорошему. Но это не объясняет почему у меня не работает импорт. Идея может в разных репах лежит папка src
>>1942299 Вот эта пустая строка в начале и означает текущий каталог. Если сконфигурировать питон так чтобы её там не было, то не будет он ничего искать в текущем каталоге.
> Еба, вот это удобство. Нормальное удобство, ты просто не умеешь его готовить. Что за мутные репы там у тебя, почему их обязательно нужно клонировать и именно так складывать?
> Но это не объясняет почему у меня не работает импорт. > ModuleNotFoundError: No module named repa1.src > Но в корне есть папка repa1/src/.../utils.py > папка repa1/src/.../utils.py > sys.path.append("repa1/src") не помогает. Ты просто рандомом тыкаешь во все стороны и даже не пытаешься вникать ни в документацию, ни в мой длинный пост. Папка utils.py, пиздец какая каша.
>>1942330 >Если сконфигурировать питон так чтобы её там не было, то не будет он ничего искать в текущем каталоге. Какие-то репы в этом каталоге он видит, а какие-то нет. >Что за мутные репы там у тебя Я так код храню. Иногда нужна функция написанная где-то в другом месте и еще иногда приходится клонировать чужие сложные репы, чтобы дернуть у них что-то. >Ты просто рандомом тыкаешь во все стороны и даже не пытаешься вникать ни в документацию, ни в мой длинный пост. Да вникать не во что. Я знаю это. Говорю же. По идее должно все и так работать без сис-пас-аппендов. Вот просто из корня должно рабтать import repa1.src.....
>>1942332 > Да вникать не во что В смысле не во что? В моём посте все ответы почему у тебя что-то импортируется, а что-то нет.
> Я знаю это Уверен?
> Вот просто из корня должно рабтать import repa1.src..... Не должно. Имена модулей это не пути в файловой системе. Иначе тебе придётся вместо import requests писать каждый раз import C:\Programs and files\Python\Lib\site-packages\requests\--init--.py
>>1942343 >В моём посте все ответы почему у тебя что-то импортируется, а что-то нет. Видимо, в глаза долблюсь. >Не должно. Остальные репы, кроме этой без проблем притягиваются. >Иначе тебе придётся вместо import requests писать каждый раз import C:\Programs and files\Python\Lib\site-packages\requests\--init--.py Нет, почему. В PATH есть путь до папки, откуда питон вызывается и еще до нескольких. Достаточно просто дописать недостающую часть пути.
>>1942345 > В PATH есть путь до папки Воот. Теперь ты близок к пониманию что такое sys.path как никогда раньше. Вот только вместо бинарников, он указывает на локации с наборами импортируемых модулей.
> Остальные репы, кроме этой без проблем притягиваются. Потому что там по счастливой случайности непосредственно питонячий код лежит, без всяких src. И не факт что они работают, даже если успешно импортировались. Мало ли как их задумал использовать создатель. Вдруг там вообще не модули, а программы, которые запустят ракету в космос когда ты будешь их импортировать?
>>1941730 Я не могу найти работу с сентября, но щас понимаю, что тогда совсем зеленый был, щас сильно апнул скил, но вакансий вообще нет для джунов, их 0, а те что есть либо с тестовым типа зайдите на наш сайт и напишите эссе чем он вам понравился, либо компании уровня яндекса, тинькофф, сбера и пр, куда можно пробовать, но даже тестовое наврятли получишь. С вакансий на мидлов меня просто пидорят, отказывают не глядя, в сентябре хоть тестовых 5 сделал, после нг не получил ни одного. Я студент это тоже минус к желанию меня взять на работу
>>1942279 >Каждый раз когда ты импортируешь какой-то модуль, проверяются все пути по маскам {syspath}/{module} И я не вижу причин не заимпортить нужную мне репу. В третьем абзаце про другое речь. Не понимаю в чем моя проблема.
>>1941730 Отклеилось то что делал проект дня 4-5, потом еще деплоил день и все вроде. Но щас если мне пишут по заказам уже смело сильно больше ставлю цены, вот сегодня посмтрел тз на тг ботов, суммарно оценил в 300 деревянных, теперь просто жду ответа. Так же мне написал один кабанчик сделать бек для обзвона клиентов, я назвал 800$, он сказал согласен с ценой и сроком, прошел небольшой собес, но думаю он не выберет меня, ибо опыта все еще маловато
>>1942347 >Вот только вместо бинарников, он указывает на локации с наборами импортируемых модулей. Ну я как бы и про это знал с самого начала. >Потому что там по счастливой случайности непосредственно питонячий код лежит, без всяких src. А, да, стоит добавить, что в проблемной репе лежит может и не только питон, но притягивается функция из файла с питоном и по дороге плохих импортов нет. Я уже тащил оттуда ее, если что. Сейчас либо проблема в верхних импортах, либо я что-то сделал с окружением.
>>1942364 >>1942355 Второй ответ это мой же коммент, почитай Вчера буквально зашел в раздел с книжками в шапке и забрал себе книгу по шаблонам проектирования, мне кажется мой скил улучшился раза в 2 после прочтения благодарностей автора. Все откладываю изучение докера, который уже везде требуют и даже от джунов, хотя мне так лампово на убунту ковыряться и не учить ничего. Только недавно начал часто использовать на практике всякий сахар типа лист компрехеншона, разные методы в ооп, стараюсь в язык и ооп углубляться по сути, ты?
>>1942364 Алсо параллельно делаю студенческий сайтик на джанго для кафедры математики, углубляюсь в джангу, в основном пытаюсь запомнить все методы орм которые там очень классные, а так же работаю на галере по сути, все неловко сказать заказчику, что я блять не буду вновь перерабатывать код ради теста, который не факт что сработает, работаем над сервисом по накрутке в тикток, но до сих пор не разгадали всех подписей тиктока и как именно ему надо отправлять данные, чтобы он не возращал то что слишком часто пользуемся им. Рассказывай про себя
>>1942352 {module} не может содержать слешей. Там только имя из a-z0-9.
>>1942362 Ну в целом ты делаешь что-то очень странное. Я тебя просил уже неоднократно разъяснить что за репы (ссылки на гитхаб?), и зачем ты из них импортируешь, и кроме того что тебе так хочется я ничего не увидел.
>>1942385 >{module} не может содержать слешей. Там только имя из a-z0-9. Ага, т.е. вместо слешей точки. Я же правильно понимаю, что модулем становится любая папка и я могу как угодно глубоко в ней лезть за нужными мне функциями? >Ну в целом ты делаешь что-то очень странное. В смысле у тебя ответа нет, почему одна репа может притягиватьс, а аналогичная рядом нет? Ссылки на гит не дам, это приватные репы для студ проекта, к сожалению, там не я один работаю.
>>1942387 > В смысле у тебя ответа нет, почему одна репа может притягиватьс, а аналогичная рядом нет? Ты меня типа на слабо берёшь или что? Откуда мне знать что там за студенческий хлам у тебя лежит и каким образом? Спрашивай своих братишек, которые написали эти репозитории, они тебе пояснят как ими пользоваться.
>>1942125 Да, в Vue 3 прекрасно все. Кстати они довольно быстро перекатили на TS, было бы забавно увидеть Python года через 3 со статической типизацией и высокой производительностью.
>>1942134 Петушмэн, что за хуйню ты несёшь? В дрисятке есть UAC и Windows Defender. Оба по разному блокируют приложения. Впрочем, пошёл ты на хуй чмо тупорылое, нахуй я перед тобой оправдываюсь... >>1942264 И ты шлюхандрий, сын трансгендерной женщины, наебни говна, ублюдок косорылый.
>>1942601 Если бы такая зарплата была в комп сервисе или хотя бы в ламповом магазине по продаже железок (не ебаной сетевой шизе типа дноэс), было бы охуенно. работал в таком магазе -сервисе, в принципе все норм, если бы не ЗП ебаные 14к рублей за работу без выходных и праздников. Алсо если бы в автосервисе была такая ЗП и нормальное оборудование, тоже было бы пиздато. Но я автосервис с нормальным оборудованием и условиями типа нормально отапливаемых и вентелируемых боксов видел только на картинках в журналах и в роликах на ютубе где сервисы для мажоров, которым движки чипуют за миллион. Обычно это грязь, срач, холод и жара с уёбанным инструментом и за низкий прайс.
>>1942477 Вакансий тьма, только никто не будет джуна типо меня обучать, зачем, все равно через год зарплату апать, либо съебет на более теплое место и останетесь с говнокодом, либо убытками. А вот посмотреть на вакансии любые хоть фронт, хоть бек, везде зп отличные(мне такие пока только снятся), условия супер, только опыт нужен. Надежда только на то что мои проектики потм смогу показать и хоть немного выделюсь среди таких же как я и может примут куда
>>1942655 Мне вообще кажется что это самое сложное, просто скил удачи должен быть прокачен, один знакомый фронт начал еще в далеком 2015 наверное рулетки по кс делать, залетел в эту тему, теперь именно что 300к\нс получает в сити за эти же рулетки
Есть класс с хранилищем и асинк методом с while True внутри, который работает с элементами этого хранилища Проблема в том, что мне иногда нужно добавлять новые элементы в хранилище, но похоже, что работающий метод с while True блокирует все остальные методы Что делать? Набросал схематично суть: https://pastebin.com/hYd4CZ13
>>1942709 У тебя какая-то странная схема с пиханием элемента в очередь.
Вообще, если у тебя исполнение пойдёт по пути else, то цикл заблокируется, у тебя не будет переключение задачи.
Это грабли asyncio и реализации очереди там. Там используются оптимизации, и если в очереди есть элемент, то await q.get() не переключит задачу. И если в очередь можно что-то положить, то и await q.put() не переключит задачу.
Переключение задачи будет только в том случае, если очередь пуста в случае get, или переполнена в случае put.
Поставь ради теста после await _queue.get() строчку await asyncio.sleep(0.00001) но только не await asyncio.sleep(0), потому что там тоже грабли и тоже переключения не будет.
У меня есть куча моих проектов pycharm на флэшке, устанавливать pycharm нет желания, как можно выполнить main.py чтобы python подцепил виртуальное окружение?
вот тебе многослойный луковый план: "Тирни Брендан, Келлехер Джон - Наука о данных.pdf" - обзорная болтологическая хуйня, но короткая. Это важно чтобы не спрашивать что такое X и y и прочие максимально тупые вопросы, которые машобщики считают само собой ясным, поэтому просто не описывают никогда.
Python_и_анализ_данных_Второе_издание_2020_Уэс_Маккинни.pdf - здесь самый чоткий и свежий питон с упором в обработку данных в pandas. Но питон нужно отдельно подчитывать в других книгах.
"Наука о данных. Учебный курс. Скиена" - тут второй виток машоба. Если захочешь по-быстрому поэкспериментировать с алгоритмами в образовательных целях - есть программа Orange.
Где ХОРОШО про DeepLearning я не знаю, но попробуй снова Келлехара "Deep Learning by John D. Kelleher.pdf" или Николенко или Бишопа. Или сразу делай вид что ты элитарий и иди в ML-треде ссылки на английском читать.
>>1942881 Параллельно, если понравятся, предлагаю подчитать: "Нейт Сильвер - Сигнал и Шум. Почему одни прогнозы сбываются, а другие нет " - математики нет, но пиздецки интересно. Искусство_статистики_Как_находить_ответы_в_данных_2021_Дэвид_Шпигельхалтер.pdf - самое современное введение в статистику (и поэтому даже с учетом машоба)
Само собой разумеется, ты должен придумать себе упражнения сразу по прочтении глав. Смотреть как реализованы алгоритмы. Придумать себе Любимую Задачу - то, которая тебя бы вдохновляла. Желательно чтобы это было не распознавание котиков/аниме/жоп, а классификация каких-то доступных тебе уже сейчас твоих табличных данных. Чтобы ты смог ее приблизительно решить освоив классические методы.
Так же будет полезно освоить Tableau Public и power bi. Прочитать отдельные книги по Time Series Analysis и рекомендательным системам.
Так, примерно лет через 5 твой путь будет завершен.
>>1942880 При чём тут умение пользоваться терминалом???? тут надо знать схему использования виртуальным окружением да и ОС Линукс тут при чём??? Работал я раньше в нём да и сейчас иногда приходится. В чём прикол подобных высеров, чтобы самоутвердиться перед новичком?
>>1942900 Проганье на питоне автоматом подразумевает знание линуха на уровне пользователя а также умение пользования терминалом Если бы сказал кому на работе (даже будучи стажером) что не можешь запустить прогу без пайчарма, стал бы надолго локальным мемом Поэтому познавай терминал и UNIX
>>1942666 Возможно. Я в пикче кринжа не вижу, скорее это ЛУЗЛ. >>1942655 то есть тут получается как на многих других работах - без опыта не нужен, а опыта нет, потому что без опыта не берут?
Парни, захожу в venv питона с помощью activate, делаю pip3 freeze, но эта падла показывает какой-то левый список установленных пакетов, не тот что в среде. Что это может быть? Для справки: сама прога запускается и работает как надо, проблемы лишь с venv
Задачка с Литкода: "Вы профессиональный вор. Грабите ночью дома. В каждом доме определенное integer число денег, которое можно украсть. Но если ограбить два рядом стоящих дома, то сработает сигнализация. Напиши алгоритм чтобы взять максимальное число денег из домов, не тригернув сигнализацию"
Я написал жадный алгоритм на пикриле 2, он в общем-то дает близкий ответ, но не всегда точный. Как решить эту задачу чтобы всегда получать точный ответ?
>>1942954 Классическая задача на динамическое программирование.
Идейно, если у тебя есть список длины N, то рассматриваешь две ветви. Первый вариант, это ты берёшь последний элемент, и максимальную сумму по списку длины N-2 Второй вариант, это ты не берёшь последний элемент, и дальше максимум по списку длины N-1.
Можно сделать рекурсивно, с мемоизацией (кешированием), а можно идти снизу вверх.
>>1942727 else там лишний, да >>1942723 Вот и я не силен Пиздец, ничего не помогает. Если заранее заполнить очередь, то все работает, как надо. Но вот потом уже не получается вставить новые элементы в эту очередь, оно просто намертво блокируется, чо бы я не делал. Похоже, я просто неправильно понимаю, как решать свою проблему
Мне нужен таск менеджер, который будет запускать пакет корутин, ставить таймаут (пакету), брать следующий пакет, который не в таймауте... ну и так по кругу Ваши предложения???
>>1943084 Про какие-то грабли из асинкио и кривой вариант для обхода я тебе уже написал >>1942727
Суть в том, что операции await q.get() и await q.put() работают синхронно, если есть, чего взять, или есть, куда положить.
По этой причине твой цикл легко может зависнуть намертво. Вообще, поставь отладочную печать, чтобы понять, что там происходит.
>Мне нужен таск менеджер, который будет запускать пакет корутин, ставить таймаут (пакету), брать следующий пакет, который не в таймауте... ну и так по кругу Пока не очень понятно, что у тебя таймаут и т.п. То есть ты планировщик (ака скедулер, scheduler) реализуешь?
Тут разные подходы могут быть. Во-первых глянь на функции вроде loop.call_later(), эта функция работает на низком уровне asyncio.
Во-вторых, я бы делал схему, когда есть очередь задач, которые уже надо выполнить, без таймаута, и очередь таймаута. Твой планировщик должен перекладывать задачи из второй очереди в первую, когда придёт время.
Глять заодно на PriorityQueue, если тебе нужно сортировать, выбирать задачи, которые раньше других надо выполнить.
Всё проще, у тебя строка await q.add_item(item) # вот эта функция уже никогда не исполнится и не должна исполняться никогда, потому что loop_queue() содержит вечный цикл. await означает, что бы ждёшь, когда функция что-то вернёт, но ждёшь асинхронно. То есть с точки зрения твоего кода в функции main() это как синхронный код. Он асинхронный в том плане, что передаёт управление другим задачам.
>>1943154 >>1943084 >Ваши предложения??? вероятно то, что тебе нужно, это asyncio.create_task(q.loop_queue()) (asyncio.ensure_future для древнего питона 3.6)
Так ты оформляешь свою корутину в задачу, которая уже будет где-то там крутиться независимо и асинхронно.
>>1943154 Это я сообразил. Но как же мне тогда крутить свою бесконечную(круговую) очередь и подкидывать в нее новые задачи? >>1943139 >Пока не очень понятно, что у тебя таймаут и т.п. То есть ты планировщик (ака скедулер, scheduler) реализуешь? Да, это скедулер, который должен работать постоянно в фоне. >Глять заодно на PriorityQueue, если тебе нужно сортировать, выбирать задачи, которые раньше других надо выполнить. Это в ближайших планах, будет несколько очередей и некий балансировщик, да. Но мне бы сначала разобраться с самым базовым функционалом.
Вот часть реального кода из моего проекта. Вероятно, я делаю полную хуйню, но тогда направьте в нужную сторону, что ли, а то я уже конкретно запутался с этим асинком https://pastebin.com/5nhSB94r
>>1943234 > Но как же мне тогда крутить свою бесконечную(круговую) очередь и подкидывать в нее новые задачи?
Во-первых замечания по стилю. Делать вот это loop: asyncio.AbstractEventLoop = None передавать loop в функции не надо. Это устаревший стиль, актуальный для питона 3.5, которые сейчас считается obsolete и активно выпиливается. Там была особая магия с тем, что можно пересоздавать циклы обработки сообщений, и куча проблем из-за этого. Это можно забыть, как страшный сон, и просто делать self.loop = asyncio.get_event_loop() или self.loop = asyncio.get_running_loop() У тебя код завязан на специфику 3.7 (contextvars, typing), поэтому можешь и функции для asyncio оттуда использовать смело.
Я не вникал особо в твой код, но там есть вот такое вот: 62: self.loop.run_until_complete(self.consume_queue()) это синхронный вызов, он завершится только тогда, когда завершится цикл в consume_queue, то есть судя по всему никогда, если только какого-нибудь исключения не будет.
Логика асинхронного программирования схожа с логикой многопоточного. В многопоточном у тебя есть треды, которые время от времени переключаются. В asyncio аналог треда это задача, Task. У тебя скедулер в asyncio держит задачи и переключает с одной на другую, получается, что несколько задач работает одновременно. В то время как внутри задачи всё последовательно идёт, операция за операцией.
Соответственно, идея такая. Ты свой планировщик оформляешь как независимую задачу (сервис). Как вариант, создаёшь объект my_scheduler = TaskScheduler() и запускаешь его как задачу scheduler_task = asyncio.create_task(my_scheduler.consume_queue())
Потом в других задачах ты можешь делать await my_scheduler._queue.put() или синхронным вызовом my_scheduler._queue.put_nowait()
Таким образом твой планировщик работает где-то в фоне и выполняет какую-то работу, а общаешься ты с ним через очереди.
>>1942864 Отвечу тебе серьезно, в консоли запусти батник виртуального окружения. Он лежит вроде вот тут venv/Scripts/activate.bat После этого пишешь python main.py Все
Есть приложуха, часть данных хранится в бд прикрученной к джанго, часть - в google firebase.
Модель джанго типа: >class Currency(model.Model): >..name= >..description= > >..def chart(self): >....return queryset from google firebase where currency_name==self.name
Графики к ней хранятся в Firebase: >DailyCurrencyPrice: >..datetime= >..min_price= >..max_price=
выводится все на тупом жс в обычный джанговский шаблон типа ><div id="chart-currency">... ><script> >var array={% for currency in currencies_list %} >..{% for data in currency.chart %} >....{{ data.something }}
как бы мне просчитывать допустим средние значения ( типа average=(min_price+max_price)/2 ) данных выгребаемых функцией def chart класса Currency из данных выгребаемых из DailyCurrencyPrice Firebase ? У джанго кверисетов .annotate() было, но это ж только для того что в джанго орм, а тут я левой либой (fireo) выгребаю
>>1947967 В итоге, кстати, сделал через Django Template Tag На случай если кто переживал
print и pprint
Аноним14/03/21 Вск 11:15:33№1966424529
Я так понял, что атрибут width относится только к pprint? И нельзя контролировать ширину строчки в стандартном print? Зочем это разделение и какой фундаментальное назначение у pprint