Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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
Пожалуйста умные аноны помогите! Есть простенькая программа с закрытым исходным кодом,необходимо было создать интерфейс. Написал с помощью Tkinter'a в формы вводятся данные, при нажатии на кнопку - вызов функции где с помощью библиотеки subprocess из интефейса в простенькую программу передаются данные,она выполняется и теперь необходим вывод на интерфейс, но он зависает и все, при простом выполнении после запуска требует еще одно нажатие на Enter. Вот код import subprocess proc = subprocess.Popen(['MODN1'],universal_newlines=True,stdin = subprocess.PIPE,stdout = subprocess.PIPE) proc.communicate(input = " 1 2 3") print(proc.communicate()) proc.kill()
>>1923442 (OP) Сап Подскажите есть ли универсальные гайды по работе с дейтой любой? Допустим у нас есть пара столбов (или колонок) числовых данных. Что можно с ними сделать использую питон, пандус и прочие библиотеки. Мне на ум приходит только корреляция каждого из столбов друг с другом.
Есть какие-то еще способы безопасного извлечения атрибутов? Вот скажем хочу из объекта вытащить цепочкой obj.departments.values.first но на любом моменте тут может выскачить ошибка с несуществующим атрибутов. Заделал решение как на пикриле, но выглядит по-уебски, нужно всегда передавать это значение через lambda-функцию чтоб ошибок раньше времени не падало
Такое дело, вот вкатился на работку 2 месяца назад, до этого фрилансил месяцев 8, чувствую что остановился в развитии. Тип, освоился с новым местом, но глобального роста в скилах не могу получить от задач, которые там есть. Тип, сижу один пилю mvp, есть тимлид супер занятой, есть менеджер(наверное так его стоит назвать), который в тех.части вообще не шарит. Просил намутить мне ревьюера кода, но отшили мягко. Сейчас ситуация не совсем подходящая чтоб съебнуть, но в крысу подыскиваю местечко. Как развиваться не зависимо от работки, писать пет проекты, а кто мне скажет где хуйню творю? Книжечки какое-то, но то что открывал - тупо синтаксис и пояснение, что уже знаю. Начал чёт django колупать, но не уверен, что его стоит, мб flask? Крч да, запутался памагите
>>1923602 Интересны автоматизация всякая, хотел устроиться до этой компании туда где занимаются умными домами, автоматизацией всего и всё, но не взяли. Тут торговых роботов пилю. Для всяких нейроночек и биг даты, проблема в вышке, забил на неё хуй, как закончил 11 классов и ушёл в шарагу, не профильную. Backend вот пытаюсь с джангой подружиться. Развиваться куда, я вообще хз, вроде всё интересно Хочу те скилы, что подороже продать можно Вот дают мне задачу, я понимаю как решить её, делаю, чёт понимаю, что не знаю сделать - гуглю. Всё, не понимаю куда расти и что делать, чтоб с голой жопой не остаться
>>1923686 Меньше года, почти сразу фрилансом занялся. До этого c++,c#, delphi. В программирование варюсь уже лет 6-7. Типо ситуация в том что везде я на уровне по рофлу пописать что-то был, а тут уже серьёзно начал подходить. А что?
Пишу парсер логов модуля компании. Там описана обработка каждого файла, с которым работает система: размер, направление, источник, метаданные, всякие признаки ошибок и т.д. Структура у него очень логичная, везде идентификаторы насыпаны, словом, все ок.
Написал код. 1. Объявил класс файла, закинул в него все атрибуты, которые будут полезны. 2. Написал функцию построчной обработки лога: >если вижу начало передачи файла, создаю новый экземпляр и сую его в лист Далее в логе я могу встретить дополнительные сообщения, которые содержат атрибуты к этому файлу, типа источника, направления и т.д. >если вижу какое-то сообщение, которое не является началом, прежде чем создать не совсем полный атрибутами объект, я делаю лукап в листе, есть ли там уже объект с таким идентификатором >Если есть, то добавляю в него, если нет, то создаю новый экземпляр, который потом, может быть, наполню ещё свойствами
Проблема в том, что это все ОЧЕНЬ МЕДЛЕННО РАБОТАЕТ В среднем лог за час содержит 300к записей, а мне, как правило, нужно посмотреть статистику за весь день, 24*300k=7.2 ляма
За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе. Это, как я понимаю, и ужасно стопорит сам модуль. Собственно, потому и тормозит: for k in file_list: if k.ident==sample_string.split(' ')[5].strip(): k.govno=sample_string.split(' ')[20].strip() continue
ЧЯДНТ? Как можно иначе сделать всю эту историю? ?? Вместо объектов писать словари? Но это тупо немного, нет? Хоть и быстро ?? Сделать словарь вида {key:object}? Но тогда идентификатор придумать — задача нетривиальная, потому что они не все уникальны, скорее некая комбинация будет уникальной, которую в логе ещё надо найти. ?? Шото ещё?
>>1923703 Школу закончил, не поступил в норм вуз, подумал ну хули делать, пойду в шарагу, буду работать. До этого всякие проектики брал, в конце августа на поток поставил, отложил деняк, переехал с деревни в ДС2. В целом доволен вполне таким выбором, но угнетает факт того что я не знаю куда расти сейчас. Былоб проще если, я не вдуплял какую-нибудь многопоточность, асинхронность, взял да и прочёл книжечку, статейки. А так я вроде и знаю достаточно, могу применить, но очково что нет прогресса и рыночек меня порешает Ну не книжки для сеньёров мне читать, про то как строить архитектуры всякие крутые...
>>1923717 [2021-04-27 14:40:43.234] [000000000456] Новый файл с именем {путь} добавлен в обработку [2021-04-27 14:40:43.235] [000000248909] Обработка файла {путь} закончена с err=unresolved_header [2021-04-27 14:40:43.235] [000000000456] Создан файл-дескриптор для файла {путь} с параметром isRemote=1 и isLocal=1 [2021-04-27 14:40:43.235] [000000000456] Для файла с именем {путь} создан звуковой поток [2021-04-27 14:40:43.237] [000078939023] Завершаем приём звукового потока для файла {путь}
и так далее В каждой строке идёт новая дополнительная информация, при этом {путь} не обязан быть уникальным, уникальная только связка {путь} и [число], которое, однако(число), сбрасывается после перезапуска модуля
>>1923747 Ну тогда ты какую-то хуйню делаешь с объектами и листами. Создаешь словарь и ключами эти айдишки, значением структуры с нужными данными, всё. По событию закрытия файла удаляешь этот ключ из словаря.
>>1923747 на каждую строку, если это не Новый файл с именем {путь} добавлен в обработку, у меня происходит лукап из существующих файлов, есть ли там уже объект с path={путь} и path.id=[число]
>>1923749 По-разному. Может работать месяц, могут за сутки перезапустить 50 раз. Я перезапуск отслеживаю и на этом моменте пакую все файлы, что есть, в другой лист как подлист, а рабочий лист стираю
stack_list.append(working_list.copy()) del working_list[:] И по новой ебашу в воркинг лист, как раз из-за неуникальности айдишников >>1923749 Мне не нужно удалять ключи, мне наоборот нужно сохранить всё, что я нашел, чтобы потом писать статистику, типа, обработано 100к файлов, из них с ошибками 159, при этом в направлении x было 23к, в направлении y было 30к и т.д.
>>1923750 При обработке я могу попасть в лог, в котором нет записи Новый файл с именем создан, потому что, например, эта запись в логе за предыдущий час Тогда я не смогу засунуть путь как айдишник Поэтому я и выбрал объекты, чтобы туда херачить инфу по мере поступления
>>1923761 Ну так если ты их подряд молотишь, то всё будет. Может надо будет сделать ещё дополнительный словарь для маппинга путь-айди, раз они меняются.
>>1923774 Вообще, я имел в виду эти цифровые айдишки. Но если оно решабально твоим способом, то и на словари можно перекатить, мне лень вникать детально.
>>1923778 Я почитал, у меня вариантов мало Либо я делаю ndarray вместо листа, либо я переделываю в терминах словаря, с тем же механизмом отслеживания остановки, когда все сбрасывается. Скорее всего я буду делать в терминах словарей
Но тогда такой вопрос У меня в объекте прописано много методов, ну, типа, duration(), который возвращает разницу между временем первого и последнего события. В словарях, понятно, методов не сделаешь. Мне останется только писать функцию вместо методов, верно?
>>1923486 >Допустим у нас есть пара столбов (или колонок) числовых данных. Что можно с ними сделать использую питон, пандус и прочие библиотеки.
Да все что угодно, буквально бесконечное множество вариантов. У тебя какой-то слишком размытый вопрос. Типа, у меня есть два числа, что я с ними могу сделать в питоне, или у меня есть древесина, что я могу сделать с ней с помощью топора. Тут нужна конкретика.
>Подскажите есть ли универсальные гайды по работе с дейтой любой?
Видимо, нет. Если хочешь знать на что способны конкретные библиотеки, читай документацию к ним, там есть описание функций, примеры использования, сборники "лучших практик" (best practices) и "сборники рецептов" (cookbook), и так далее. Если хочется обращаться с данными, ну и изучай датасаенс и машинное обучение, начни с линейной алгебры, тервера, мат статистики, и тому подобного.
>>1923712 >За это время программа обработает примерно 450к файлов, значит, в какой-то момент очередная строка будет заставлять Питон делать лукап из 450к идентификаторов в листе. Всё верно. Используй корректные структуры данных, а именно храни элементы для поиска не в списках, а в словарях. По ним поиск очень быстрый.
>Вместо объектов писать словари? >Но это тупо немного, нет? Тупо использовать списки
Ровным счётом никакой разницы. Вместо того, чтобы вычищать рабочий список, ты можешь вычищать рабочий словарь и держарь коллекцию словарей, для каждого перезапуска системы свой словарь. У тебя нигде не используется специфика списков, чтобы на них нужно было завязываться.
Причём полученные словари ты можешь дампить в JSON и сохранять на диск, потом очень быстро искать уже в них, если потребуется.
аноны, учу питон понемногу и мне часто перед сном думается о коде, а потом снится будто я что то усиленно пишу на питоне и пытаюсь в код. ЭТО ВООБЩЕ НОРМАЛЬНО? вроде не особо налегаю, учу по три часика в день, а то и меньше. Что это такое?
>>1923856 Прикол фриланса, то что не стабильно, была неделя когда вообще ноль заказов было сидел лапу сосал. Зато постоянно разные проекты, тупо нельзя брать только то что уже делал когда-то, т.е по кд развитие. Ну вот всякие бигдаты и нейроночки, указана всегда вышка. Может из-за неё не брали, может потому что опыта не было(фрилансеры - не люди для hr). А книжки для сеньёров, вот тут хз что читать
Господа, никто не задавался вопросом, как привести Питон к первоначальному виду? Кажется мне, что я понаустанавливал лишних модулей через пип. Быстрый гуглинг приводит к баш-скрипту, но не хотелось бы. ОС: Убунту.
>>1924045 Это я знаю и использую. Я к тому, что мог случайно в дефолтный питон поставить дополнительные модули. Вот ищу способ сравнить состав модулей стандартной поставки и своей локальной.
>>1923910 В смысле? поясни. >>1923981 ну неделя без заказов это хуйня в принципе. Ни о чем. Мизер. ладно там по два месяца без работы. Алсо почему нельзя брать то, что уже делал?
>>1924149 Хуйню сморозил, брать то можно, но не часто такое попадается, что вот мне нужна штука Н, а потом следующий чел мне нужна штука как Н, но чуть другая. Исключение, если один и тот-же тип заказывает. Крч, не сидишь на месте, по кд чтот делаешь
>>1924250 >>1924261 Крч, про фриланс, с биржами у меня не вышло. За все 8 месяцев 1 заказ от туда, труд там не очень ценят, с забугорными лучше, но английский мой ис вери бэд. Искал на всяких форумах, через знакомых(несколько раз на хакатоны ездил, по этому можно было поспрашивать). Потом много кто приходить второй, третий раз. А стоит или нет, ну мне не особо понравилось, постоянно, вот заканчиваешь делать заказ - ищи другой, а если нет их сидишь и ждёшь. Чтоб на пожить хватало(снять кв, покушать, погулять) для ДС2 работать нужно часов по 6-8, но иногда бывают завалы что спишь хуй да нихуя недельку, но вознаграждается это тем что некст неделю можно поменьше работать. Думаю, если побольше опыта, связей или умений себя продавать можно или больше зарабатывать или больше хуи пинать. На постоянке прикольно, если на удалёнку устроился(офис не пробовал, но думаю менее круто), работаю с меньшем напрягом, но возник вот такой прикол у меня. По деньгам не потерял ничего, сколько на фрилансе получал, столько же тут получаю на испыталовке(ласт месяц остался). Плюс ещё часика 2 в день трачу на фриланс и уже +5-10 в месяц Энивей, если ты вкатываешься только из-за фриланса, то думаю стоит не рассчитывать, если ты уже вкатываешься и чувствуешь уже какую-то силу, то попробуй взять какой-то заказик, только предоплату не бери, ну не сможешь сделать, ну да ладно, сможешь, так и опыт и денюжку получишь.
Ананасы, есть тут питонисты с опытом от 4-х лет и более-менее английским? Знакомый ищет на удаленку на фуллтайм, 30 часов в неделю (наверное можно больше, если хочется), 40-56$/час, CV не надо - найм по литкоду и тестовому заданию на около 2 часа. tg @doctor_pizza
Скажите куда пойти, только не нахуй. Есть задача, сделать кастомною рассылку мейлов. Всякие mailchimp не подходят. Делаю все на питоне. Удобно, быстро, кайф.
Но вот встал один вопрос, сам мейл. Немного почитал, что рассылка - это НЕ обычный html, как для верстки сайта ибо там нет стандартов и тд. Все надо делать через таблицы и прописывать иначе весь контент.
Сталкивался ли кто-то с созданием такого и есть ли где-то ультимативный гайд как все лучше сделать? Ибо как понимаю, на одной почте будут стили работать, а на другой - пиши все от руки и в тагах, юнец.
Понимаю, что это не питон, но может у кого был опыт.
>>1924281 Я не пробовал, могу судить по кол-ву вакансий. В родной деревне(300к чел), по 1-ой вакансии 1с, пхп и java. В областном центре получше, можно и питонистом junior на 40-50к устроится(кв в центре12-20к) , мидлом уже приемлемые 120к, но всего штуки 3 компании, но думаю будет проще вкатиться т.к мало народу, выпускники вузов - хуета, которая не хочет вдуплять сама, а те кто могут, не хотят оставаться там
>>1923442 (OP) Коллеги, как ебаной веб-макаке, возомнившей, что она может стать чем-то большим качать алгоритмику?
Т.е. вижу я задау на алгоритмику и всераюсь. Там, где нужна теория языка, и даже зачастую его С-имплементации, я отвечаю без особых проблем, но вот алгоритмы и классические структуры данных...
>>1924326 Ну, намедни дристанул, хотя знал, лол, как интернал устроена хеш-таблица.
Но основная проблема - это алгоритмы вообще. Т.е. сперва сидеть и читать книженку с описанием классических алгоритмов, а потом хуярить практику на кодварсе?
Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?
>>1924328 > Вот откуда мне без базу знать, что тут нужно стек юзать? Как такое прокачать быстренько?
А откуда это "знал" тот, кто написал книжку по алгоритам? В какой книге он это прочитал? Не обязательно писать алгоритмы строго по книжкам - ты что, не можешь сам придумать никакого решения, например даже без стека? Если нет - возможно программирование в целом не твое, раз ты можешь только заучивать информацию, которую до тебя кто-то придумал. Иди может тогда в школу учителем?
Ебать, закончил ебучую бизнес-информатику, не нашел куда вкатываться, пока сижу без работы. Решил изучать питон и лезть в биг дату, искать что-то с анализом данных. Не прям ужмэттм горю, но в принципе интерес есть Теперь вопрос. Кто за сколько изучал язык до приемлемого уровня, когда уже можно понять что-то типа >>\"json\" (\"{[[]}\")" и как с этим работать Вопрос возможно глупый, но интересно
>>1924328 >Ну, например "напишите валидатор строк, содержащих \"json\" (\"{[[]}\")". Вот откуда мне без базу знать, что тут нужно стек юзать? Причем тут вообще алгоритмы?
>>1924329 >>1924331 >Если нет - возможно программирование в целом не твое, раз ты можешь только заучивать информацию, которую до тебя кто-то придумал. Да, беда в том, что меня подонбые мысли регулярно посещяют.
>>1924341 Никак, я серьезно Если ты не умеешь создавать какие-то новые вещи, только повторять ранее заученые - никакая креативная деятельность (в том числе инженерная) тебе не подходит В школе ты мог например придумать решение задачки, если до этого вы точно такую же или похожую не разбирали? Если не мог - это опять же симптом
>>1924349 >>1924351 Этот >>1924364 прав. Сборная солянка в виде экономики, маркетинга, немного программирования и математики. Как воин в какой-нибудь ММОРПГ, который держит все пушки в рукахя а по факту не умеет нихуя. Вот так >>1924354 Не перечитал что написал с телефона, это опечатки куда уж безработному бухать в 3 дня
>>1924366 >куда уж безработному бухать в 3 дня Как раз, на работу не надо - можно бухать. >>1924341 >Или это либо дано - любовь к резолву всяких головоломок типа кубира кубика и квест-игро, либо нет? Вроде того.
Хакеры, хелп, написал сайтик, хочу показать преподу или друзьям, хочу понять как мне сделать так, чтобы nginx был доступен по моему ip буквально на часик, что куда можно вбить, чтобы в строке браузера можно было вбить ip и вернулся мой сайт? Пожалуйста, помогите. А так же реквестирую где найти информацию вкратце как работают маршрутизаторы и т.д, может статью кто читал хорошую
>>1924402 1. Мне это самому интересно 2. Некоторым конторам необходимо в силу того, как они раздрочили питон для ... кхм ... производительности. Например, в игрострое.
>>1924526 Да захостить наверное не сложно, я хочу просто понять че вписать в nginx чтобы по моему ip сайт открывался на время, даже если у меня динамический ip, если это возможно
>>1923481 communicate возвращает кортеж (stdout_data, stderr_data), где stdout_data это то, что процесс напечатал в ответ в стандартный поток вывода, а stderr_data это данные об ошибках, которые процесс напечатал в стандартный поток ошибок.
Все зависит от того, как эта твоя програмка общается с окружающим миром.
Если ты ждешь, что твоя програмка будет что-то читать с потока ввода, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консолди "MODN1", нажимаешь ENTER, потом вводишь "1 2 3" и нажимаешь ENTER, то надо сохранять ответ от первого вызова , а второй communicate тогда вызывать не надо, получится примерно так: import subprocess proc = subprocess.Popen(["MODN1"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) result, errors = proc.communicate(input=" 1 2 3") print(f"result = {result}, errors = {errors}") proc.kill()
Если ты ждешь, что это твоя програмка получает аргументы при вызове, как ключи, типа, если ты будешь вызывать ее в консоли, то ты вводишь в консоли "MODN1 1 2 3" и нажимаешь ENTER, то надо поступать примерно так: import subprocess proc = subprocess.Popen(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) result, errors = proc.communicate() print(f"result = {result}, errors = {errors}") proc.kill()
В документации к модулю subprocess пишут, что в общем случае сейчас лучше использовать subprocess.run, а subprocess.Popen использовать в каких-то особо специальных случаях, что-то мне сдается, что у тебя достаточно общий случай, и тебе лучше использовать subprocess.run. Функция subprocess.run имеет практически те же аргументы, что и subprocess.Popen, но она сама создаст процесс и прибъет его при завершении, и вернет результат в специальном объекте класса CompletedProcess, в котором будет информация о завершившимя процессе. Для первого случая будет: result = subprocess.run(["MODN1"], input=" 1 2 3", universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE) Для второго: result = subprocess.run(["MODN1", "1", "2", "3"], universal_newlines=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE)
>>1924757 В винде надо activate.bat запускать, а не просто activate. Но я правда не понимаю хули там сложного? Там более, что пукчарм вообще предлагает при создании проекта создать виртокружение еще и сам его включать будет.
>>1924764 А ну мб, я просто давно уже руками последний раз включал venv. Просто в пукчарме галку ткнул на автовключение и кайфую. Еще бы пукчарм в гитхабе автоматом логинился через консоль и было бы норм.
>>1924771 ну ты даун просто, на винде работает Scripts потому что блять python -m venv venv в винде создает папку Scripts в каталоге venv, а на линуксе создает папку bin, еще раз повторю ты дурачек если не смог найти activate в винде >>1924757 и >>1924764 это один и тот же чел, я
>>1924771 Сумасшедший, ты понимаешь, что у тебя файл activate сам по себе не появится? По тому, что ты в system/32 захуячил рабочий проект уже все понятно. Но блять дальше больше. Ты пытаешься запустить файл activate как команду. Это настолько охуительно тупо, что я даже не могу пояснить всю глубину долбаебизма
нравится питон как факультатив, приятный язык. Пробовал хтмл и ксс, не понравились. Есть какая-нибудь задача на питоне, которую можно научиться решать и в свободное время подрабатывать на этом? или так в прогинге не работает?
>>1924773 я его создал чтобы прост открыть в нем файл, ты не знал что можно открыть любой файл там? охуеть просто >>1924775 ?>По тому, что ты в system/32 захуячил рабочий проект уже все понятно пиздец еще один затупок я могу открыть файл из любого места в этом виртуальном окружении
>>1924776 Слишком толсто >>1924779 Чел, почитай как с командной строкой работать. Ты просто такие охуительно тупые вещи пишешь еще и споришь. Кто запустить блять виртуальное окружение не может? Ты или я?
>>1924789 не, я на самом деле месяц учил синтаксис в свободном режиме по паре часов, мне прям нравится язык, но я не могу нащупать объём необходимых знаний, которые нужны для решения реальных задач.
Кажется что в таком темпе до денег год учить, думал что подскажут
>>1924776 На питоне новички частенько пишут парсеры за деньги, но заработок низкий, если интересует изучай библиотеки requests для запросов к сайтам, beautiful soup для удобного парсинга html, pandas для удобной работы с напаршенными данными и сохранением данных в разные форматы(json csv xml xslx). Потом может быть удастся перекатится на обычную работку на должность ETL разработчика
>>1924789 так я и запустил. Это ты не удосужился написать что сперва создается батник в определенной папочке а потом только запускается, а потом еще и обвинил меня в том, что я якобы создал какой то проект в системной папке, хотя очевидно что я запустил виртуальное окружение не для проекта или еще чего то, а просто показал как оно запускается по дефолту. смекаешь?
>>1924796 > так я и запустил. Ты его запустил в system32 нахуй, ты все еще не смог сделать свой проект с виртуальным окружением. > Это ты не удосужился написать что сперва создается батник в определенной папочке а потом только запускается Нихуя себе, тебе вообще-то об этом написали и не раз. Плюс ты сам чета пукал про то, что весь гугол прочитал и не нашел ответа. Ты с таким подходом через лет 10 свой первый хеллоуворлд напишешь. > обвинил меня в том, что я якобы создал какой то проект в системной папке, хотя очевидно что я запустил виртуальное окружение не для проекта или еще чего то, а просто показал как оно запускается по дефолту. Чел, всем похуй на тебя. Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь. Еще раз -- ты с таим подходом пойдешь нахуй. Будешь дальше выебываться и что-то требовать -- это мой последний пост тебе.
>>1924792 Если это --> >>1924796 ты, то тебе до денег еще около 10-15 лет учить. А объем знаний зависит от того, что считать необходимым. Самый большой срок уходит на то, чтобы мышление свое под программирование заточить. Если математикой занимался еще чем-то таким, то тебе это не понадобится. Если же нет, то займет ощутимое время. Остальное тривиально и больше 1-2 лет не займет. Вообще, с нуля можешь на года полтора ориентироваться.
>>1924801 мне и не нужно было создавать проект я гуглил как его запустить без создания файлов, например. и нашел, как видишь >Ты должен быть благодарен, что тебе вообще кто-то отвечает и пытается помочь не, ну это пиздец, ты жопой посты читаешь? я не просил помощи и не задавал никаких вопросов. вот цитата >чтобы на 10 винде активировать я заебался гуглить, информации мизер где ты видишь тут вопрос или хотя бы утверждение что я не смог этого сделать в итоге? щас бы спрашивать всякую хуйню блядь.
Аноны, какое будущее вы видите у питона в сфере бэк энда? Он ведь неплохо проигрывает в скорости конкурентам. Вытеснят ли они его к хуям в мл или нет? А то мои рога и копыта решили переписать на ГО все
>>1923442 (OP) Анон, помоги с задачей: есть срез с тегом типа \n1.\t, который нужно заменить на \n1 Ъ. Проблема в том, что в тексте тег может быть с любым числом, типа \n12.\t, \n3.\t и так далее.
Как это все реализовать? Я думал через re.findall сделать, но получается хрень, т.к. мне нужно, чтобы в той строке, на которую я заменяю, было оригинальное число.
>>1924858 Как вариант re.sub(r" (тыс|т|тел|г|руб|каб|ауд)\. ", r" \1.Ъ ", text) То есть сделать большую группу замен и использовать \1 в строке-подстановке, что означает "элемент из первой группы в скобках".
>>1924980 Так проблема в том, что число может быть практически любым (ну, логически, \n2, \n3, но тем не менее), и оно же и должно остаться после замены!
>>1925048 >легаси Не в легаси дело, писать на ГО сложную бизнеслогику очень дорого, если нет высокой нагрузки, то смысла 0. Ну если только есть цель освоить бюджет. Ты на ГО и питоне не писал походу, иначе такой бред не нес бы.
>>1925059 На Го переписывают в первую очередь узкие места, код на нем значительно сложнее писать, сахара и абстракций там минимум, не будет и близко той декларативности что есть в питоне. Я еще раз спрашиваю у тебя есть коммерческий опыт бэкенд разработки?
А есть тут прокрастинаторы типо меня. Вот началась опять маниакальная стадия. C++ я уже дропнул ,сейчас возьмусь за пайтон. Через недельку Джава. Потом html, css, javascript. Этот цикл я повторяю почти ежегодно. Дальше синтаксиса ни в одном ЯП так и не продвинулся. Я безумен, и не знаю как разорвать этот цикл.
>>1925079 Типо сразу с фреймворков начать? Мой внутренний перфекционизм говорит что надо делать все по порядку. Т.е сначала учить просто ЯП, написать топ прогу без всяких фреймворков, и только потом браться за это дело.
>>1925070 >>1925069 но изначально вопрос интересный я еще в универские годы чуть бекэндером поработал (ну постажероватся) буквально годик. Потом перекатился в cv, так как сам немного не понял куда вообще весь бек на питоне идет Но опять же, у меня образование не программисткое, а математическое и я мог просто не разглядеть потенциала чи хуй его вообще вот и свалил в цв. Но про бек вопрос интересный (вдруг перекатиться захочу): есть что поделать? задачи интересные? можно ли сказать, что бэкендер на питоне это не просто питономакака?
ля поцонва вопрос у меня просто уебанский, конечно тем не менее я, короче, школоло, 16 лет. Мне нравится информатика: гоняю на олимпиады, парочку поделок дома - ничего такого, просто нравится в общем, тк я пока школоло и вышмата не знаю, просьба не пиздить ногами за сказанное далее, но мне нравится блокчейн: я не ебу насколько это перспективно\денежно и тд к чему я это? Поцонва, ведется ли разработка блочейна на питоне?
>>1925271 Смотря что ты считаешь разработкой. Сам core какого-нибудь блокчейна врядли, не сильно питон приспособлен для хитрых вычислений. А вот в разработке какого нибудь bitcoinlib можешь поучаствовать
Есть вот такая csv: col1, col2, col3, col4 5, 1, foo1, foo10 5, 2, foo2, foo20 6, 1, bar2, bar30
Нужно получить такой словарь: { '5': { '1': {'col3': 'foo1', 'col4': 'foo10'}, '2': {'col3': 'foo2', 'col4': 'foo20'} }, '6': { '1': {'col3': 'bar2', 'col4': 'bar30'} } } То есть сначала группировка по col1, потом внутри результата еще одна группировка по col2. Как это сделать?
>>1925075 >Я безумен, и не знаю как разорвать этот цикл. Возьми какую-нибудь нормальную книжку-курс, и пройди её от начяла и до конца, ну хотя бы до половины, не отвлекаясь на другие темы.
Только так. Если сам по докам будешь учить, то так и будешь дропать.
Сначала можно про сам питон, потом уже про какой-нибудь фреймворк вроде джанго.
поцоны, какой пет проект для вката в бэкэнд посоветуйте? А то я ебучим игроделом проработал, хочу в норм проганье уйти питон хорошо знаю, но все математическое: numpy, scipy, sklearn и прч Джанго фласки и тд знаю на уровне туториалов плз дайте советов
Пишу себе удобных ботов и всякую автоматизацию по работе уже год, код выглядит как говно, просто список инструкций. Если кода много, стараюсь распихивать по разным файлам просто файл в директории. На работе начал работать с колегами-разработчиками и ахуел от красоты и удобства их кода. Всё раскидано по полноценным пайтон модулям, для всего написаны тесты, гитлаб генерирует документацию и прочее. Как научиться писать также? Питон понимаю хорошо, ООП не понимаю. Все гайды по питону, что я находил, либо учат писать хелло ворлд, либо специализируются на каких-то библиотеках. Скорее всего я просто не понимаю что именно искать. Дайте документацию/гайд/книжку по написанию красивого, эффективного, удобного кода на питоне.
>>1925685 Если ты хочешь нормально писать то тебе надо качать понимание в целом. От основ вычислительных машин и асемблера к си и потом уже к питону и прочим высокоуровневым языкам. Ну и навернуть пару книжек типа SOLID.
Есть ли в модуле os или еще где-то готовая функция, чтобы достать значение энв переменной, или дефолтное значение если переменная не задана. А если дефолтное значение не дано, то выбросить внятную ошибку.
Я могу на kivy сделать приложение, которое будет работать как простенький сервер на андроиде? Запустил приложение, ввёл в окно ключи, оно покрутилось в фонеэто важно и умерло. Джаву не знаю, котлин без неё непонятеня пытался.
Народ подскажите как сделать геттери и сеттеры(через декоратор или же так) для несколько атребутов, но что бы копактно. Есть несколько атребутов у которых повидение одно и то же и не хочеться делать на каждую описание
>>1926317 Не очень понятно, что именно тебе нужно. Возможно тебе стоит определить методы __setattr__ и __getattr__, через них смотреть, к чему пользователь обращается и хранить данные в каком-то специальном словаре.
>>1926408 Регулярки, очевидно. Но они менее универсальны, bs4 и аналоги всё-таки тебе из нужного места ссылки выдрут. А регулярки не учитывают html контекст никак.
Она используется в цикле. Проблема в том, что сейчас по сути отображается только 3 графика, и на каждой итерации данные отображаются поверх существующих, т.е. в конце будут показаны лишь последней итерации. Как поменять функцию, чтобы отображались графики кадой итерации?
>>1926495 точно не знаю, мало работал с либой, первое попробуй заново объявлять объект графика, если plt это объект класса, то применяя к нему рисование он будет на оном и том же рисовать. 2-е уверен есть функция очистки, применяй ее в цикле после сохранения графика
>>1925997 python sys argv . это словарь, у словаря есть метод get который первым аргументом принимает то что ты хочешь достать, а вторым то что будет возвращено если не будет найдено значение по ключу из первого аргумента
Чел видимо хочет, чтобы был метод get, который или возвращает значение по-умолчанию, если в форме .get('var_name', default) используется, или кидал исключение, когда используется в виде .get('var_name') Однако в последнем случае .get возвращает None.
Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name'], или реализовать свою функцию для этой частной задачи get_env_value('var_name', default), которая при отсутствии default будет кидать исключение произвольного вида, возможно более говорящее. Можно и более гибкую логику реализовать.
>>1927129 >Как починить У тебя в коде какой-то непонятный объект entry1 с методом delete непонятного назначения, какие-то непонятные методы insert, какая-то непонятная переменная END.
Вообще ничего не понятно. Но очевидно проблема в строке 4, где ты пытаешься сделать float('8/9'), а float это не eval, float не исполняет выражение, а конвертирует строку в число.
>>1927231 >>1927129 То есть если ты заменишь float на eval, то эту ошибку ты переборешь, но уже на следующей строке у тебя код лишён смысла, ты будешь проверять вхождение символа ',' в переменной типа float, что некорректно и ты поймаешь исключение вида TypeError
1) Если сумма трех попарно различных чисел X, Y, Z меньше единицы, то наименьшее из этих чисел заменить полусуммой двух других.
2) Задать 2 массива А и В случайных чисел размерности k, взятых с отрезка [-9;8]. Если встречается в массивах число 4 или 5, то следующий за ним элемент заменить суммой двух предыдущих элементов.
3) В двумерном массиве удалить элементы, кратные «8».
>>1927262 >Если встречается в массивах число 4 или 5, то следующий за ним элемент заменить суммой двух предыдущих элементов. Что делать в случае, если первое или второе число 4 или 5? При обходе слева направо учитывать в сумме, что значения могли обновиться?
Плохо сформулирована задача, слишком много открытых вопросов. Ещё менее понятно, зачем два массива.
Для задачи 3, в в случае одномерного массива m = [1, 3, 5, 8, 13, 16, 6] m[:] = [i for i in m if i%8 != 0] генератор списка и мы при этом не создаём новый список, а перезаписываем старый.
В двумерном случае просто примитивный обход списка списков добавляется.
>>1927118 >Тут вариант, или get использовать только тогда, когда надо со значением по-умолчанию, а когда надо с исключением, тогда через обращение к словарю ['var_name'] Спасибо, охуенный вариант, зря я запарился.
>>1927368 >генератор списка и мы при этом не создаём новый список, а перезаписываем старый. Создаем новый список и пихаем его на месте старого. Логично было бы хуярить задом наперед и удалять на месте. Но это зависит от того, на что эта задачка. А об этом можно только догадываться, так как формулировал их какой-то ебанько.
>>1927380 >Создаем новый список и пихаем его на месте старого. Если ты делаешь m[:] = list то у тебя именно изменяется старый список, а не создаётся новый, но есть ты содержимое нового копируешь в старый.
Это может быть важно, если у тебя где-то ссылки на старый список хранятся и в подобных случаях.
При этом ХЗ, нужно ли об этом думать.
>>1927380 >так как формулировал их какой-то ебанько. вот это похоже на правду. Особенно со второй задачей так.
>>1927394 Я о том, что компрехеншен сначала создает новый список, т.е. если у тебя там миллион элементов, то он сожрет память. А если в итерации удалять, то нет. Через два энумерейта, например.
Как перебрать все комбинации по n элементов из массива? Как проверить вхождение числа в интервал без использования двух условий и логичесного И? если конечно это не лучший вариант
>>1927400 >А если в итерации удалять, то нет. Операция удаления очень дорогая, O(n). Соответственно итоговая сложность O(n^2) примерно.
На списке в миллион будет жутко тормозить, а памяти на миллион много не надо, навскидку мегабайт 30, ни о чём для современных компьютеров.
Можно сделать что-то вроде пузырька, то есть идти слева направо, иметь два указателя и копировать не кратные 8 элементы, но это извращение. Потом ещё обрезать конец.
Я думаю, что создание нового списка меньше ресурсов реально отъест.
>>1927436 Краем глаза глянул, что про него пишут, очевидный кошмар, а не язык.
Название для задротов, с таким никогда не взлетит. Как лодку назовёшь, так она и поплывёт. Нельзя женскими именами называть языки. Был такой древний язык Ada, тоже женское имя, хотя и редкое, в отличии. И там тоже какой-то ад из-за нестрогости. Ну так говорят, не пробовал изучать.
Но за Адой хотя бы ресурсы были огромные, а эта юля поделка.
Двач, открываю сотню задач с помощью subprocess.run, только это систему нагружает, можно ли ограничить количество одновременно работающих процессов к примеру максимум 8 штуками? То что нашёл в гугле слишком непонятно и сложна, объясните не сложна плиз.
>>1927674 И еще в догонку, там можно открывать неограниченное количество бесплатных курсов? Я могу прокликивать до интересных мне тем и задач, и если не понравится переключиться на другие? >>1927685 Спасибо, посмотрю.
Господа, подскажите ньюби, который спрашивал что быстрее: регулярки или beautifulsoup. Есть функция, внутри которой делают парсинг с помощью BeautifulSoup. Можно ли передавать ссылку на экземпляр BeautifulSoup в функцию, чтобы не создавать каждый раз внутри функции? Надо ли так делать?
Щас у меня так def parser(query: str) -> dict: .... получаю src страницы ....soup = BeautifulSoup(src) .... что-то делаю ....return result
>>1927715 Нет, при этом каждый раз происходит парсинг текста и построение объекта супа, это самая тормозная и затратная операция. Просто передавай нужные объекты.
Душители питонов, с этой говниной можно что-то делать? Нужна кому-то такая поебота? По сути это функционал, которого нет в tenacity, попробовать можно PR заслать, но мейнтейнер там токсичный слегка ("А зачем? Не нужно нам такое,вот"). Понятное дело что все это сахарок синтаксический, но зато логику легко прятать. https://pastebin.com/G4jcpnHN
И снова здравствуйте. Есть тут кто знает/слышал про autocomplete diginetica? Как распарсить страницу результатов поиска? Захожу через request.get по URL с нужными параметрами, но эта приблуда не отдает нужный HTML пока на самом сайте не кликнешь в форме поиска. Встречались с такой хренькой?
>>1928030 Подсмотреть в дебаггере что там за запросы и повторить у себя на той же сесии. Ну или заменить реквестс на хедлес браузер и он сделает всё сам, но это уже больше вариант для всякой йобы.
>>1927908 Душно - большая вложенность, огромные плохо читаемые функции. Почему без ООП? Можно же было это все реализовать классом хендлер и методами, было бы проще поддерживать такой. >>1928081 Не индусо, а студентокод.
>>1928081 Смысл вызова callback для обработки exception без впендюривания ветвления в логику же. Код на коленке за 5 минут. Я хочу понять нужна такая поебота кому-то кроме меня или нет, тем более это декоратор.
>>1928092 И API на воротник. В tenacity есть retry_error_callback, но он работает хуй знает как, дергает retry_state и все, т.е. задуман не как обработчик какого-либо exception, а как обработчик ошибки retry при окончании попыток. Мне проще форкнуть retrying и прикрутить свою логику с ООП и прочими приблудами
Двач, скажи как ты искал работу(особенно первую), где вы находили вакансии. Я устал искать по большим компаниям, они не поменялись за последние 3 месяца, хочу найти более мелкую компанию, как их искать, думаю, что там больше шансы попасть на работу после собеседования, куда им присылать резюме, можно ли ссылку на хх кидать?
Скажите есть ли в джанге встроенная функция, которая проверяет есть ли объект в бд и если нет, то возвращает False, get or 404 возвращает 404 именно, а я хочу в логике проверять и уже не первый раз сталкиваюсь, что в ручную приходится писать
аноны чет туплю пиздец уже короче у меня есть numpy матрица размером n x 3 каждая строка - вектор в трехмерном пространстве вопрос как мне все вектора в этой матрице спроецировать на ось з?
>>1928366 не вариант у меня же таблица векторов и вектор, на который нужно спроецировать искать углы и прочее это долго, имхо я придумал чет, но выглядит как батин суп конеч https://pastebin.com/u8UmEVu2 если кому интересно, мб подскажите как улучшить, а то выглядит больно
>>1928377 Хз на сколько долго это, но косинус из math на C написан, а проекция именно считается через косинус\синус, если тебе нужна z, то это синус между y и z координатами вектора
>>1928400 if error_handler: error_handler(e) break else: raise e
Увидел, код очень грязный вышел, но пока навыка писать чистый код за 5 минут нет, еще и ООП прикрутить. if-else вообще говнище.
На самом деле в tenacity прикрутили callback, но не написали про параметры retry_state._exception, ну да похуй. На то он и питон, что в исходниках копаешься. Проще говоря, документацию никто не ведет, true Python way.
Решил немного подтянуть базы данных, так вот что из этих книг лучше почитать для веба. Ну или посоветуйте что-то поактуальней. Можно предлагать как анг так и рус. J.Groff, P.Weinberg, A.Oppen — SQL, полное руководство (2015).pdf Ibrar Ahmed, Asif Fayyaz, Amjad Shahzad — PostgreSQL Developers Guide (2015).pdf Chitij Chauhan — PostgreSQL Cookbook (2015).pdf А. Ю. Васильев - Работа с PostgreSQL настройка и масштабирование, 5-е издание (2017).pdf
>>1928565 Нашел 2018 года, на флибусте. И 2019 год для покупки, но там одинаковые обложки. Они отличаются? На обложке 2019 года нет ничего про 2 издание и тп.
Привет здарова подскажите, в каком направлении думать: Есть один тг бот (пишется на аиограме, если что) который с заданным периодом делает рассылки в тг каналы Материал для этих рассылок парсится с помощью стороннего внешнего сервиса, ну точнее его апи. Так вот, я бы хотел этот парсер отделить от бота и сделать бекграунд задачей, но при этом не хотел бы мешать асинк код с тредами (почему - не знаю) Как я это себе представляю: бот работает, слушает месседж хендлеры и в то же время в фоне независимо крутится парсер (может быть не один). Когда "прилетает" новый контент, то парсер кладет данные в стек (пока в этой роли юзается постгрес), а бот время от времени "вытаскивает" накопленное из этого стека и делает рассылку. В реальности, пока что есть вот такая убер всратая заглушка для 1 тестового канала: https://pastebin.com/Xv0uTD9b
Сап, аноны, помогите разобраться. Хочу написать один мини-проект для себя. Суть в том, что мне нужно выцепить из Яндекс Карты значение, через которое автобус будет на остановке(пикрил). Пытался парсить html через BS, но вышло так себе, поскольку блоки на сайте меняют положение и значение у меня было от разных автобусов, в зависимости, как был выше. Как это лучше сделать? Может вообще можно через api эти значения получить?
>>1928839 Яндекс анально огорожен, а парсить это говно через Селениум идея паршивая. Попробуй Openstreetmap, там инфа не такая детальная, но есть нормальный АПИ
>>1928480 Что значит Джанго или JS? Что ты блин имеешь ввиду под "JS"? Если про бэкенд, то если че, Джанго это скорее из той же ниши как Laravel - монолитный фреймворк со свистоперделками, тогда как Нода нацелена на микросервисную организацию. Ну и не говоря о том, что вкатышей в Ноду берут неохотно и в целом вакансий на нее в Раше немного (а вот в США поболее, Рашка как всегда)
>>1928970 Я думаю, это вряд-ли поможет. Мне в конечном итоге нужно получить инфу о времени прибытия автобуса на остановку. Попробую еще что-нибудь поискать
Процедурный питухон в треде. Нужен совет (inb4 программирование не твоё). Написал скрипт_1, который с моего рабочего пека из закрытой сетки через vpn по ssh лезет на удалённый сервак, на котором запускает скрипт_2, который выгружает из хранилища данные и архивит их, и через scp выгружает на мой рабочий пека, и потом эти данные переносятся на сетевой диск третьим лицам. Проблема: я заебался всё это делать сам, хочу написать веб сервис или веб апи, чтобы третьи лица сами могли получить эти данные. Вопрос: как делать, куда копать?
Всем привет. Как этот код работает подскажите? Как модно асайнить значение в функции через рекурсию этой функции. Спасибо.
математика (разбиение числа). Вот само решение: def s(h, w, tab): if w == 0: return 1 if w < h: return 0 if tab[h][w] != 0: return tab[h][w] tab[h][w] = s(h + 1, w - h, tab) + s(h + 1, w, tab) return tab[h][w]
def main(n): tab = [[0 for _ in range(n + 1)] for _ in range(n + 2)] return s(1, n, tab) - 1
>>1929068 > асайнить значение в функции через рекурсию этой функции У тебя обычная мемоизация. В петухоне такого вообще вроде делать ни нужно - все из каропки.
>>1929058 >я заебался всё это делать сам, хочу написать веб сервис или веб апи Чет у тебя какие-то сложные костыли либо ты непонятно обьяснил. Не проще ли сделать например фтп сервер и выдавать доступ?
>>1929070 >впн-хуита нужна Нужна только мне (скрипту 1), чтобы с правами приложения можно было зайти на удалённый сервак и выгрузить данные (скрипт 2) >можно поднять сервер прямо там Можно, но там нет виртуалок или контейнеров, всё это будет крутиться в общем потоке, что не желательно, т.к. по сути я это делаю без согласования с девопсами >Архвирование долго ждать Долго
>>1929082 >Не проще ли сделать например фтп сервер и выдавать доступ Девопсам было не проще, а я не девопс
Двач помогай, я устал, не получилось нагуглить. Я полное нубло в питоне, увы пришлось код с R на питон переписать. В жупитере\пичарме на десктопе всё норм запускается и отрабатывает. Когда отправляю код на гитлаб, собираю в джобу и пробую запустить - выдает такую ошибку: df = df[df['param1'] > 0.0] File "/usr/local/lib/python3.7/site-packages/pandas/core/frame.py", line 2902, in __getitem__ indexer = self.columns.get_loc(key) File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2893, in get_loc raise KeyError(key) from err KeyError: 'param1'
Часть кода - пик рил. Суть кода подключаемся к БД, вытягиваем запросом данные, в пандасе ворочаем, засовывем обрато в БД.
>>1929241 Хуй знает, наверно сперва делал в жупитере с пандасом, потом ушёл в пичарм и там уже поправил всё. Я год тому код писал и забыл. Я ваще дуплей не режу в питоне. Помогити, эту ебалу запустить. Снова перепроверил - в пичарме - заебись всё отработало, в ипомртах пандаса - нет.
>>1929240 Пиздец ты хлебушек. Закомментить ошибку, добавить print(df.columns.values.tolist()) и проверить, есть ли там 'param1' или нет мозгов не хватает?
>>1929246 >Пиздец ты хлебушек. Ну такой я у мамы. >print(df.columns.values.tolist()) Есть и param1 и param2 и всё остальное. Правда я это на десктопе проверяю, а там всё и так заебца работает.
>>1929249 Ну так у меня на десктопе тоже всё работает. а когда я потом в крон на рабочем пека добавляю, у меня ничего не работает. Наверно проблема не в десктопе и стоит проверять окружение в гитлабе?
>>1929253 А даже если проверять, то что имено? Часть с импортом, коннекторами к БД, запросом в БД и фетч данных - видимо прошла на ура. Либо оно всё не скачалось и я пробую потрогать несуществующую таблицу.
>>1929274 Уже пробовал. Навесил ОК на индекс, ОК проходит. Но всё так-же останавливается на начальной ошибке. Вот начало ошибки. File "/usr/local/lib/python3.7/site-packages/pandas/core/indexes/base.py", line 2891, in get_loc return self._engine.get_loc(casted_key)
>>1929292 Значит что-то с кодировкой названий столбцов. Нужно добавлять COLLATE в sql запрос. Других идей у меня нет (из-за того что других проблем просто не может быть, если только ворочанием сам датафрейм не ломаешь).
как достать этот элемент селениумом, ебашу с нуля по сути, что в питоне и программировании, что в селениуме, по ощущениям тыкаю пальцем в небо, но кнопку нажимать скриптом научился за сегодня бы ЕСЛИ БЫ СУКА ПОНЯЛ КАК ЕЁ ВЫТАЩИТЬ В видосе который я смотрю очень простой хтмл, а найк мудрит пиздец, если кто знает какие-либо крутые и понятные гайды по селениуму, желательно с потенциалом в хедлес, то был бы очень рад и благодарен помощи среду я вроде норм настроил, сам браузер на найке у меня открылся.
>>1929334 Там же _ первым символом, слепой штоле? Но вообще оно выглядит рандомно, небось меняется регулярно. Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов.
>>1929338 >Там же _ первым символом бля я олень >Но вообще оно выглядит рандомно, небось меняется регулярно. так и есть >Да и вообще ты зря полез в эти кроссовки будучи нубом, там пиздец царство ботоводов. ООО ты понял что я хочу, у меня просто пиздец какие выходы есть на кросы, так что нужно думать в этой сфере, было бы супер расскажи ты мне куда копать чтобы двигаться в этой сфере. Из того что я понял это селениум и хедлес браузер, но по тому что все пишут про ботов, видимо без иишки не обойтись, но в чем задача ии? Они реально настолько рокет сайентисты, что обучают комп разгадывать задумки найка, и самому настроить скрипт будет слишком долговсё вынесут, или они просто таким образом оптимизируют код в бота чтобы больше запросов посылать и больше кросс выносить, и потенциально я могу какой нибудь изи высер сделать чтобы хоть 5 пар выносить?
здарова, бандиты короче вопрос такой у меня есть класс A и я хочу, чтобы у каждого экземпляра этого класса было поле с опредленным значением, считанным из файла Причем я не хочу, чтобы при создании инстанса это поле повторно вычислялось я думал, что это можно сделать так:
class A: ____hui = read_from_file("hui") def __init__(self): ____pass
но так нихуя не работает. Что сделать? еще раз, одно поле с одним и тем же значением на все инстансы
аноны короче у меня прога, которая захватывает с вебки изображение и как-то его обрабатвает - не важно как вопрос, как лучше разнести захват кадров и алгоритм на модули?
вариант 1) запускать видеопоток в отдельном потоке и передавать в основной поток кадры, которые далее обрабатываются вариант 2) ебануть while True цикл в мейне, и там уже вызывать методы из модуля захвата видеопотока
>>1929068 Можно чуть иначе, создаёшь словарь tab с интексацией по туплам (h, w)
предварительную инициализацию не делаешь, делаешь if (h,w) in tab: ____return tab[(h,w)] else: ____tab[(h,w)] = s(h + 1, w - h, tab) + s(h + 1, w, tab)
А более кондовый вариант, это вообще делать через @functools.lru_cache def s(h, w):
тогда lru_cache будет сам мемоизации производить, только по-умолчанию размер кеша небольшой, но это настраивается параметром хоть до бесконечности, смотри доку.
>>1929087 Опиши, как это должно выглядеть со стороны пользователя.
То есть он заходит на твою страничку с веб интерфейсом, и что должен ввести и что должно произойти?
В принципе ты можешь стартовать свой скрипт_1 с нужными параметрами по сигналу от веб сервера. Надо только контролировать, чтобы слишком много заданий так не стартовало.
Если же нужна интерактивность, чтобы там показывалось, что задача стартовала, завершилась, сколько времени осталось и т.п., то уже сложнее. Всё сильно зависит от твоего скрипта.
Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то, сраный большой калькулятор да и нет нормальной интеграции с гитом. Это ж для детей каких-то ебаных, вам пидорасам дали нормальные IDE, кому бля всрался Jupiter?
>>1929352 У тебя как-то по наркоманский сделано. Тебе надо при инициализации передавать значение для экземпляра класса. Дальше ты читаешь свой файл, читаешь значение и передаешь его при итерации обьекта.
Я решил запилить свою геолокационную игру, что-то типа геокешинга, если вы понимаете о чем я. Сервер решил писать на джанге, тем более, у нее есть отличная функциональность ГИС-системы. Реализован сервер будет в качестве api - клиент будет кидать put с координатами в json, и получать какой-то результат от сервера. В чем минусы такой архитектуры?
Как узнать в каком порядке питон просматривает директории в поисках либы? Куда следует класть libname.py, чтобы он цеплялся по import из любой директории?
>>1929616 PYTHONPATH жи есть. Допустим у тебя репа со своими говноподелками и надо их подключать в другой проект без copy-paste. Добавляешь репу в PYTHONPATH и все.
>>1929616 точно не помню но он сперва просматривает стандартные, по путям из sys.path чтобы он цеплялся из любой дирректории, нужно сделать отдельную папку с __init__.py - тогда эта папка будет восприниматься как пэкэдж и ты можешь ее импортировать например \package ----__init__.py ----lib.py
зызывается так: 1) import package.lib 2) from package import lib ну и прочие вариации
>>1929627 Ничего или код, который будет выполняться при запуске этого модуля python3 -m src.main, где в __init.py__ например прописана загрузка load_dotenv или что-то еще. Главное совсем уж логику не скрывать там. Там же может быть импорт всего говна из поддиректорий или формирование новых объектов.
и потом импортировал модуль и он не мог считать файл прекол в том, что у меня лежали в разных папках два пэкэджа (ну логично) и вот ОКАЗЫВАЕТСЯ, когда я импортирую модуль, то пути у импортированного модуля херятся, тк питон думает, что теперь модуль находится по пути файла, который его импортирует немного непонятно написал, но если что вот
народ у меня есть функция, я хочу к ней аннотировать тип возвращаемного значения но у меня может вернуться, условно, инт, а может None пайчарм на такое ругается - говорит, что нан это не инт(что в целом-то логично) что делать в таком случае?
>>1929517 >Писали многие про Jupiter. Типо "крута, модна", посмотрел - это ж бля пиздец какой-то Жупитер хвалят неосиляторы, не умеющие толком программировать или не желающие тратить время на изучение нормальных инструментов.
>>1929808 Когда нужно работать с кучей датафреймов, в которых лежат данные из разных источников (скл, монга, хадуп, цсв и т.п.), при написании прототипа и при добавлении нового функционала нахуя каждый раз запускать скрипт и ждать, пока все шаги выполнятся?
чет я совсем туплю поцонва спрошу еще раз (до этого просто никто не ответил) короче у меня есть камера, я хочу с нее считывать данные и обрабатывать стоит ли мне запилить захват камеры в отдельный поток? ГИЛ же ведь превратит мою прогу в однопоточную все равно Может у вас есть похожие кейсы. Вроде как и хочется многопточку вставить, но уместно ли это тут?
>>1929836 Внезапно, интерактивный код можно писать и в python shell. Он там не такой удобный, и не надо ебать мозги с установкой venv и пакетов, когда можно проверить или внести правки в код, тестируя на mybinder. Я сам пользуюсь PyCharm для разработки, но кукарекать, что "Jupyer/Anaconda/etc ряяя для дитей нинужна тому шо мне нинужна" долбоебизм. Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов.
>>1929856 >Это тоже инструменты, и если тебе нужен фломастер зеленого цвета, то "нинужна" бежать в магазин за набором из всех цветов. Ну так назови преимущества или просто уникальные фичи жупитера по сравнению с пайчармом. Мне в голову приходит только Markdown ячейки и сохранение принтов и картинок в один JSON файл. Польза от них сомнительна, а в замен ты получаешь отсутствие всех фишек IDE и невозможность структурировать проект.
>>1929878 В pycharm не могу быстро тестить нейронки, а в jupyter могу (через collaboratory), хоть он тут и не конечный инструмент, а прослойка. Мне этого достаточно.
>>1929886 >а в jupyter могу (через collaboratory) Ты про гугл колаб? Ну, если настолько нищий, что нет денег на свою видеокарту, то смысл использовать есть.
>>1929901 >Ну да, на моей 2070s не так быстро Пиздишь. В колабе стоит древняя K80. >>1929902 >Так жупитер и чарм для разных задач. Так мы и выясняем, для каких конкретно задач нужен жупитер. Пока что внятного ответа никто не дал.
>>1929908 >Пиздишь. В колабе стоит древняя K80. Что не мешает ей падать, когда оставляешь на ночь. Памяти там больше. >Пока что внятного ответа никто не дал. Тебе уже написали, что как минимум для обучения/тестирования нейросетей. Для одноглазых калек (в т.ч. меня), которым лень ебаться с скачиванием и установкой, настройкой окружения и пип инстоллами пакетов, особенно когда у тебя не всегда есть доступ к домашнему пека и приходится перебиваться рабочим ноутбуком, можно зайти на mybinder и там всё делать. Никто не спорит, что использовать его в серьезной разработке стоит.
>>1929924 >лень ебаться с скачиванием и установкой, настройкой окружения и пип инстоллами пакетов В общем понятно. Ты описываешь преимущество не жупитера, а колаба.
>>1929946 Потому что я не разработчик, а аналитик, и мне полезны любые инструменты, с помощью которых можно сделать или протестировать прототип. Даже если в этом инструменте мне нужна только 1 фича, и даже если у серьезных дядек он не котируется, мне это экономит время и нервы. А в чем и как уже они потом это в прод будут переписывать мне похуй (и никто мне не доплатит, если я буду ради них напрягаться). Но дома у меня установлен pycharm, и для второй работы всё пишу там. А вообще, во многих популярных курсах по АДу, в ШАДе и т.п. все учатся в jupyter.
>>1930115 Как я понял, в питоне вообще дохуя мелочей, про которые не рассказывают даже на курсах. чтобы все понять нужно читать документацию, вот пример
аноны, поясните за бест практис с одной стороны - класс, у которого все методы статические и есть пару полей с другой стороны - просто модуль, в котором есть глобальные переменные и функции по факту, разницы нихуя (ну разве что класс солиднее смотрится), но вопрос: как лучше? ведь оба варианта справляются одинаково с задачей
>>1930304 Ну епта смори короче, None это ничего, а так ты создаешь переменную которая ровна пустой строке '' это джве ординарные ковычки, можешь взять "" чтобы было понятней.
>>1930270 Да тут какбэ логично, т.к. питон наверняка думает что это просто выражение тип (1 + 2) если ему не показать что это список элементов с помощью запятой
Как писать в ООП стиле? Я просто Н Е П О Н И М А Ю эту хуйню. Когда я пытаюсь что-то сделать используя ОПП, то у меня все заканчивается тем, что я либо тупо все действия совершаю в ините, либо большую часть действий совершаю в ините и в еще паре методов. То есть я тупо использую класс как обычную функцию. Че делать-то, как осознать эту херню? ООП для меня стало просто камнем преткновения, через который я никак не могу перешагнуть. В книгах какие-то дегенеративные примеры с пиццами и эмплоерами, а реальности когда я смотрю на это в чужом коде, то это какой-то пиздец и взрыв мозга, я вообще не могу уловить логики построения программы.
class WebServerRunner(): ____http_port = 8080 ____def __init__(self, httpstate, port=self.__class__.http_port): --- NameError: name 'self' is not defined
И почти тожесамое: ____@classmethod ____async def run(cls, httpstate, port=cls.http_port): --- Тоже cls неопределен. Чо за бред? Ведь если вместо параметра класс.порта прописать константу, то все работает. И в то же время он ведь не ругается что первым аргументом методов идут чистые self и cls - которые типо не определены. Значит они определены же. Но что это тогда за ошибка? Типо параметры вызова интерпретируются за пределами объекта чтоле? А первый аргумент self, cls непрозрачно неинтерпретируется? (ибо другое поведение наблюдается) Как пофиксить?
>>1930448 Для этого тебе нужны ещё классы. Каждое твоё действие в ините выносишь в отдельный класс отдельного метода. Если там: 1. Скачать CSV 2. Спарсить CSV 3. Перегнать в XML 4. Спарсить XML 5. Сохранить XML
То делаешь FileDownloader , CsvParser, CsvConverter, XmlParser, FileSaver.
>>1930448 >Как писать в ООП стиле? А тебе это нужно? ООП начинается с наследования, но нужно это обычно в достаточно больших программах. ООП нужно для упрощения, а ты пытаешься наоборот с помощью ООП усложнять.
Кто-нибудь в vim кодит? Какой плагин для auto completion накатить? Поставил какой-то https://github.com/sentientmachine/Pretty-Vim-Python/, но он pattern'ы прямо в тексте отображает, а описание функций в отдельном окне вверху. Мне не нравится такое, когда текст скачет.
Сап, анон. Мечтаю выкатиться из болота qa auto, вот только куда? ETL, бэкенд (но только не девопс)? Хочется пилить что-то своё, а не бежать по рельсам за поездом, который уехал пять лет назад. Есть у кого-нибудь кулстори по этому поводу?
Анон посоветуй как. Пытаюсь скрыть всю логику по работе с сущностью (включая sub классы) в одном классе. (конкретно пытаюсь инкапсулировать вот это https://docs.aiogram.dev/en/latest/migration_1_to_2.html#filters-factory как подкласс, самого запускателя бота уже засунул). И вот у меня получается такая фигня:
class BotRunner(): ____куча методов пораждающих переменные и запускающих чегото асинхронно
____class MyFilter(): ________куча методов желающих пообращаться к переменным экземпляра класса выше
Я обращаюсь к self.bot определенном в BotRunner экземпляре из MyFilter и мне говорят ____member = await self.bot.get_chat_member(message.chat.id, message.from_user.id) AttributeError: 'MyFilter' object has no attribute 'bot'
Можно ли как-то получить доступ к переменным объекта выше из подкласса не залезая глубоко подкапот библиотек?
Аноны, нид хэлп. Сегодня начал учиться на питоне, через яндекс практикум и столкнулся с такой задаче на пике. Написано, что решил правильно, но скажите на счёт 15й строки там так и подразумевалось в задании? Мб вообще я хуйни нахуевертил.
>>1930848 messages_count надо проверять только для частных случаев, когда количество сообщений от 11 до 19. В остальных случаях ты остаток проверяешь, remainder.
>>1930829 Нет, просто codewars я уже решаю, а о других площадках почти ничего не знаю. В принципе подойдёт любая платформа с курсом теории и задачами/тестами. >>1930842 Спасибо.
Подскажите плиз как сделать элементарную проверку времени runtime как fixture. Чтобы при каждом запуске любого теста она выдавала рантайм равно столько то секунд по дефолту. Спасибо.
Есть простой способ написать autocomplete? Что-то вроде скормить ему файлы проекта и как в интерактивной среде получать инфу по табуляции, желательно с простым доступом к doc strings?
Хотя наверное если бы это было так просто это было бы реализовано в стандартном редакторе.
>>1930664 Такая же ситуация, анонче. Два года в qa automation. Кажется, что сильно засиделся.
Как мне кажется, легче всего будет переметнуться в бекенд, т.к скорее всего ты уже как минимум знаешь как работают сети, БД. Попробуй написать несложный проект на Джанго, поймёшь надо тебе оно или нет.
>>1931186 Он вроде только на первую неделю? а потом 120к заплати за 9 месяцев? он норм или тупо основы?
Помогите с спецификацией nonlocal
Аноним05/02/21 Птн 13:27:01№1931225476
итак, есть функция с метафункциями:
x = 0 def outer(): x = 1 def inner(): nonlocal x x = 2 def vnat(): nonlocal x x = 5 print('vnat:', x)
vnat()
print('inner:', x)
inner() print('outer:', x)
outer() print('global:', x)
Вот вывод:
vnat: 5 inner: 5 outer: 5 global: 0
В def outer() берется значение у def vnat()(5). То есть ''заражение'' коэффом идет идет все переменные подряд. А как указать def outer() со значением nonlocal x из def inner()[2]?
>>1931222 По времени он не ограничен, просто задания из этого модуля бесплатные, а потом, если хочешь, нужно платить. Не могу сказать о нём ничего, потому что это мой первый курс по программированию вообще. Скилбокс все обсирали и там нет бесплатного демо, поэтому выбрал яндекс для начала.
>>1931615 Да есть вакансии и на обычное писание командных скриптов. Но тебя туда не возьмут, скорее всего. А так да, говорят еще машинлернинг, но про это не знаю нихуя.
Я сам сначала в бэк идти не хотел, но потом втянулся, все-таки инетересно это.
>>1931617 о, расскажи, что именно интересного просто в моем понимании (точнее после общения на двачах) у меня сложилось впечатление, что это вообще макакин труд я к этой идее отношусь с подозрением - все-таки питон сложный язык и макакой тут быть не очень просто алсо, почему не возьмут на скриптописание? слишком домэйн специфик?
Привет! Как можно сделать быстрее вложенный луп уже с имеющимся словарем? У меня есть for key, value in json: ——for dict in value: ——If oneField != “” and secondField != “”: —— break ————-for key2, value2 in dictionary.items(): ——————-и тут уже условия пошли дальше на прочерку.
Работает не очень быстро, оно и понятно, но я не придумал ничего лучше. Спасибо
>>1931587 >но не хочешь в веб (доставать странички и класть обратно, о других применениях хз)? Что лол, ты плохо понимаешь что происходит на бэке среднего проекта, куча межсервисного взаимодействия, шедулеров, очередей, асинхронных задач.
>>1931619 ну это кажется так из-за выражений типа "веб-макака" и прочее. Но они относятся к пыхопешникам и прочим джаваскриптерам. По факту ты будешь писать реальные приложения, которые будут решать реальные бизнес-задачи. Попробуй, посмотри на джангу
Посоветуйте intermediate книжку, сконцентрированную на прикладных знаниях. Типа второй книги Лутца (Programming Python), но не такую древнюю, желательно на английском.
>>1931769 >Это потому сложные процессы забирают у таких макак и переносят на Go при наличии NumPy? Что за мешанина "умных слов"? Джанго это большой и зрелый фреймворк со своей большой нишей. Далеко не везде нужна асинхронность.
Для асинхронности есть свои фреймворки.
Numpy вообще к теме не имеет никакого отношение, это про принципиально другой класс задач.
При этом питон не для макак, потому что на питоне макака-задачи не делают. Их делают на других платформах.
>>1923442 (OP) Двачик помоги. Другану нужна помощь в Делфи. Я в этом не шарю от слова совсем, а над ним нависла угроза отчисления. Нужно нарисовать Чебурашку. Поможет кто? (желательно код, если вы понимаете как его сделать)