Тред, посвящённый языку программирования Питон, #83Предыдущий: >>1627269 (OP)Литература:Автоматизация рутинных задач ч.2 - https://anonymousfiles.io/3CBCoy1o/ <-- тут только одна книжка. Кто может, залейте её на ЯД к остальным.Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUqТоже книжки: https://yadi.sk/d/tArKKuQu3KejuqБольше книжек: https://yadi.sk/d/H-00n-UG3RSQemАнон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрацииhttps://dumpz.org/ - можно постить листинги, не требует регистрацииhttps://pastebin.com/ - для листингов, регистрация не обязательнаhttps://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудитьhttps://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться#######################################ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 годаВопросы-ответы:А стоит ли читать Лутца, том номер N?Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.хА что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.htmlЕсть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.шаблон шапки: https://dumpz.org/aZWStPx4fWf3
Какие можно ожидать заковыристые вопросы для начинающего бэкендера на собесе? Что-то про базы данных наверняка?
>>> bin(1234)'0b10011010010'>>> int('0b10011010010')Traceback (most recent call last): File "<pyshell#8>", line 1, in <module> int('0b10011010010')ValueError: invalid literal for int() with base 10: '0b10011010010'
>>1638346 (OP)Братаны, сейчас очень важный момент на повестке дня стоит: пишу парсер для шлюхосайта, нужно определить оценки для каждой шлюхи, которые ей выставили пользователи, но оценки идут в виде малюсеньких gif-файлов - к такому меня жизнь не готовила. Как по этим gif-изображениям понять значение выставленной оценки? Pillow как-то поможет? (хз, вообще ей никогда не пользовался)
>>1638575Так как они реализованы?Можно считать количество картинок, если разными, или урлы, если одна на разные.
>>1638539А надо было? В предыдущем треде ничего не составили, что добавить.Нужно что добавить, так составь текст и дай сошлись на шапку. Перекатчики посмотрят и может добавят.Когда я перекатываю, то смотрю всегда.
>>1638575Посмотрел русдосуг иногда ебу там тянок сам, есть такое, у оценок в исходном коде есть классы. Чекни. Гифки не нужны (но самому интересно как по ним произвести парсинг, отпишите если че)
>>1638539>>1638346 (OP)Я, кстати, предлагаю добавить в шапку в качестве рекомендации книгу Марка Саммерфильда "Программирование на Питон-3". По-моему это как раз лучшая вводная в Питон книга для тех, кто более-менее умеет программировать.
>>1638612Короче к следующему разу или через раз сделаю рекомендации по паре книжек, что по ссылкам в шапке доступны.Лутц мне вот не нравится совсем, реально дохера просто воды, невозможно читать.
>>1638612Зач читать такие книги тем, кто уже немного умеет программировать? Если это не книги по проектированию и паттернам (т.е вещи, слабо привязанные к конкретному яп), то обычные доки/практические примеры в сто раз лучше же.
>>1638620Чтобы писать на питоне как на питоне, а не на си-пхп или ещё что.Кто не умеет программировать совсем, тому надо суть программирования толкать. Кто умеет, тому надо суть языка.В питоне же очень много такого, чего в других языках просто нет. Вот среды, генераторы и генераторные выражения, мутабельные-иммутабельные типы и масса другой хрени.
>>1638636Они постарались выпилить возможности писать разными способами, так что можно разве что через жопу сделать, что бывалому не придет в голову.Мне как перловику было не особо сложно перекатиться, есть много всяких удобств.
>>1638575Кстати, в парсере bs4 есть какая-то возможность сразу отбрасывать невалидный результат в soup.findAll? А то он выдает список найденных значений, по которому приходится итерироваться снова, но нахуя если итерация по элементу уже была произведена?Скажем я ищу оценки по class_='sGrades5' только за Фото, а остальные мне не интересны. Как это замутить? (тег <img class_> расположен внутри тега <span>...)
>>1638682Селекторы? Как мне вообще в bs4 выбрать атрибут, который залегает внутри другого атрибута в DOM-дереве? не регулярками же
>>1638684https://www.w3schools.com/cssref/css_selectors.asphttps://www.crummy.com/software/BeautifulSoup/bs4/doc/#css-selectors
>>1638346 (OP)Посоветуйте материала по тестам. Хочу вкатится, понять что к чему и для чего нужно. Заранее спасибо, змеякi!
>>1638087 →алгоритм не понимаю, я примерно представляю у себя в голове как это должно происходить, но..
>>1638949Функционал можно расширитьДойти до подробного парсинга пользовательских данных / мониторинга новых анкет через сервер в реальном времени
>>1638575Добавил туда асинхронность из aiohttp, процесс стал занимать на 30% меньше времени, но походу по-прежнему прилично тратится на непосредственный парсинг страниц в bs4. К асинхронности можно как-то прикрутить параллельное исполнение парсинга контента или эта хуйня какая-то и в Питонухе так не прокатит?
>>1639041> но походу по-прежнему прилично тратится на непосредственный парсинг страниц в bs4Очень сомнительно.
>>1639041класть в очередь, в несколько потоков брать из очереди, результаты парсинга класть в другую очередьНо не факт что даст прирост на маленьких объемах
>>1638912вот у тебя число N, переводишь его в десятичную запись и каждую цифру кладешь в списокdigits = [1, 4, 8, 8] # 1488потом идешь по digits сначала смотришь [0:13], потом [1: 14], потом [2:15]
А реально ли скрести работу dom-парсера вроде BeautifulSoup и регулярных выражений? Ну скажем чтобы он отыскал нужные селекторы а потом внутри каждого из этих результатов искал инфу по регуляркам?
>>1639041Это спрофилировать можно, или руками, или инструментами, чтобы проверить.Но я сильно сомневаюсь, что проблема в bs4. Сколько у тебя страниц в секунду? Многие сотни в секунду не проблема распарсить, если в коде лажи нет. Но даже десять в секунду вытягивать уже проблема. Скорее всего у тебя где-то на скачивании тормоза.Вообще, ты можешь сначала всё скачать и сохранить в файлы, а потом уже отдельно распарсить.
>>1638575Залей сюда примеры этих GIFВообще может быть вариант, например, когда GIF берётся из ссылки видаwhore_rating.org/api/get_rating?rating_id=1&whore_id=444то есть по названию ты не можешь понять, какой там рейтинг.Но скорее всего GIF-файлы с рейтингом 5 будут все одинаковые, ты просто можешь сравнивать файлы побайтно = через хеш с образцовыми и получать значение рейтинга.То есть тебе не нужно распознавать картинку в таком случае в самом скрипте, по хешу картинки всё будет ясно.
>>1639159>сохранить в файлыНе уж-то в текстовые?Пытался нормально вбрасывать html текст от bs4 в файлы - какая-то хуйня выходит. Канешн сохранять нужно string, чтобы не было TypeError: write() argument must be str, not BeautifulSoup. Поэтому вопрос: как это замутить-то? У элемента soup есть атрибут string, но он почему-то возвращает None, также есть метод decode, я успешно декодировал страницу в консоли, но когда забил тот же код в методе write для файла получил UnicodeEncodeError: 'charmap' codec can't encode character '\u2009' in position 0: character maps to <undefined>Как их в строки-то конвертировать адекватно?>>1639171У гифок есть классы sGrade: от 1 до 5, поэтому можно делать что-то вроде:for j in range(1, 5+1):----cur_score = soup.select(f'img.sGrade{j}')----girls[url][j] = len(cur_score)
Может кто пояснить за .transpose в NumPy? Я еще могу понять как он работает без аргументов, но вот тут вообще не понимаю что за аргументы я передаю и как они работают, пример просто из учебника:https://dumpz.org/cDPnADAT7abCКод из jupyter, просто сюда скопировал чтобы легче читать было
>>1639187Что-то у меня сложилось впечатление, что ты методом тыка и поэтому весьма черезжопно всё делаешь, вот оно и тормозит.
>>1639187>делать что-то вродеВот тут мой вопрос про регулярки опять в тему. Ты ж 5 ебаных раз проходишься по одному и тому же документы - нахера? Если есть такой простой паттерн то легче сразу выбрать все 5 классов селекторов и потом уже итерироваться 1 раз по этой коллекции, забрасывая поинты в зависимости от текущей оценки
>>1639293Спасибо, я как раз пока разбирался пришел к этому выводу, вот только до конца логику этой перестановки так и не понял, т.е. по форме получается как reshape с перестановкой порядка значений, а вот что при этом с самими значениями происходит я пока так и не смог понять
>>1638346 (OP)есть способ автоматически создавать директорию когда записываю данные в файл с помощью open()? а то приходится через ебучие костыли ставить цикл while а внутри него ловить FileNotFoundError чтобы в случае отсутствия директории она таки создалась через os.mkdir()
>>1639354Хуя у тебя задачи конечно, возможно вот тут на 91 странице показан пример создания директории в случае её отсутствия https://wombat.org.ua/AByteOfPython/AByteofPythonRussian-2.01.pdf
>>1639418>Мой IP забанили лолЯсен хуй, перевел на асинхронные запросы и хуяришь их десятками за маленький период времени
Привет анон и нужна твоя помощь. или совет чтоли, я хуй знает. надеюсь не сильно напрягу своими пастами, но мне просто не необходимо чтобы ты меня выслушал в том числе наверное и мое нытье и дал годный совет. в том году заканчивал 4 курс своей шараги и понимал что работать по спецухе я не буду и надо перекатываться и был больше всего интересен веб. в связи с этим начал дрочить и изучать питон и алгоритмы. потом пошел в изучение баз данных в моем случае по большому счету были mysql только, но изучал так же и nosql решения, но только в теории и без практики и затем уже начал параллельно копаться в джанге и верстке сооттветственно чттобы можно было как то вывести. склепал пару проектов типо бложиков на джанге, с разными подходами немного даже где то умудрялся бутстрап юзать и искал работу, параллельно доучивая что то. даже есть блядские сертификаты с курсиков. и вот за все время, а это июль, август, сентябрь, октябрь меня ни один из работодателей не позвал даже на собеседование. и это был полный пиздец, ибо джуны на питоне а в особенности в вебе были нахуй никому не нужны живу в миллионике. и почитав местные треды я понял что не один такой и стал перекатываться в пхп, ибо деньги нужны были чтобы просто не сдохнуть от голоду, а на пхп вакансий на джунов было завались. в итоге, неделю изучения и блог на пыхе спустя взяли грести на галеру. и вот с ноября сижу там . за это время научился верстать нормально, адаптивно, освоил мало мальски джаваскрипт с ебучим jquery, чутка улучшил свои алгоритмы и хоть как то начал работать с линуксом и разворачивать серваки там, интегрировать сайты с различными api, допиливать модули различных cms ну и глубоко копаться в их ядре. и вроде бы начальство норм, и сотрудники тоже, но я блять больше так не могу. меня блять вымораживает нахуй этот ебучий синтаксис, эти ебучие ограничения языка, это сишарповская параша и где ты должен обозначать переменную начиная со знака доллара блять. не могу, меня тянет обратно на питончик и джангу. я скучаю по нормальному синтаксису, по паре часов отловли ошибки из за пропущенного пробела, по тому что могу добавить админку на сайт одной командой в терминале блять. даже когда на работе было задание спарсить с одного сайта инфу и вставить в наш, то это было для меня таким блаженством и отдушиной ибо писал на змее. в общем хочу снова попытать счастья и перекатиться на джангу с питончиком. ибо и мне это интересней, да и поперспективней чем та же пыха будет. и вот думаю погрести до ноября, чтобы хотя бы год работы был, и паралелльно с этим доучивая то что нужно в этих вакансиях которые кидают местные конторы. заранее скажу то что исключу из списка то что я освоил или же навыки которые можно получить только на реальной работе например опыт работы с хайлоад проектаминеобходимо: Redis, Celery, Mlflow, Docker, PostgreSQL, flask, pyramid, numpy, pandas, spark, SOLID, GRASP, ETL, Rule Engine, Math Engine, scikit-learn, RabbitMQ, Tornado, OSGEO/GDAL, MongoDb, SQLAlchemy, ExtJS, Опыт работы с CRM.и вот в связи с этим вопрос: что из этого я смогу изучить сам без реальных проектов и на сколько это будет реально за полгода? стоит ли пытаться вообще? нужна очень своя помощь, анонinb4: Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь...
>>1639575Жиза с питоном, вакансий мало для ждунов, сам кукую.Большую часть указанного реально выучитить на пет-проектах. Например изучение докера ты можешь совместить с изучением постгреса: установишь докер, потом образ постгреса, затем докерезируешь свой проект, например на фласке.Позже можно постгрес заменить на монгу. И да, в качестве орм в данной конструкции использовать sqlalchemyДля изучения нампай, пандас и тп - пройди какой-нибудь курс по машингому обучению. Выучить все не выучишь, но представление будет.На счет времени трудно сказать, полгода в свободное время может и не хватить.Удачи тебе.Сам думаю, что возможно, стоило джаву осваивать, вакансий больше
>>1639575Пиздец я заебался читать твою простыню, однако.Изучить-то можно самостоятельно что угодно, главное - не забивать и не откладывать. Из твоего списка большая часть учится недолго, где-то несколько вечеров на каждое, но в сумме уйдёт немало времени.
>>1639632А я вот как раз перекатился в джаву из питона тупо ради вакансий. На джаве писать скучновато, свои проекты и скрипты по-прежнему на питоне пишу.мимо
>>1639632> Сам думаю, что возможно, стоило джаву осваивать, вакансий большеВот куда не сунь ебальник везде джава будетмимо джун
>>1639575>Redis, Celery, Mlflow, Docker, PostgreSQL, flask, pyramid, numpy, pandas, spark, SOLID, GRASP, ETL, Rule Engine, Math Engine, scikit-learn, RabbitMQ, Tornado, OSGEO/GDAL, MongoDb, SQLAlchemy, ExtJSЁпт, ну ты и намешал говна. hh посмотри и увидишь что в зависимости от компании и что главное от типа задач стек технологий серьезно варируется
Какие в питоне есть качественные библиотеки для десктопных приложений типа qt в cpp? В шапке не написано, ну или я в глаза ебусь.
>>1639632>>1639634ну вот как раз и думал о пет проектах. просто интересует мнение борды как и лучше все это осваивать и в какой последовательности, ибо честно скажу - многое для меня тут просто незнакомые словаа по поводу джавы отвечу сразу же и >>1639636 -анону. мне нравится этот ебучий синтаксис, да и нет какой то такой стандартизации и многих фишек пиона. поммню читал статью на хабре где писали про многопоточность на джаве в 70+ срок и нан питоне в 4 строки с map и pool. алсо, привык к тому что по питону намного легче что то нагуглить или найти + оф дока сильно пиздатая. недавно стал копаться в ларавеле т.к. необходимо по работе. все пишут и говорят что вот типо ответ джанге и хуе мое. и даже архитектура фреймворка такая же. но когда начал пытаться и разбираться делая свой учебный проект понял что та же дока говнище. да исложнее все намного. например для того чтобы начать что то на питоне писать, просто захожу в линукс, пишу pip3 install django, пишу в терминале старт проджект и все нахуй. а с той же пыхой это надо поставить php, потом апач, затем бд, потом настроить хосты, потом подключить админку, создать юзера для админки и бд, установить и настроить компоузер, установить ларавель и только после этого можешь писать стартпроджект. просто пиздец, я горю нахуй.
>>1639655*не нравится этот ебучий синтаксисбыстрофикс>>1639647ну вот я взял это как раз из местных вакансий. да, они все на веб девелопера. особенно вакансию с numpy, pandas тщательно разглядывал чтобы точно понять не случаем ли это не дата саенс или мл. нет. все так. это веб дев.
Многие вещи из списка можно изучать независимо, они напрямую не связаны с остальным. Тот же докер.В вебе тебе вряд ли пригодятся технологии и понятия из data science/big data/data engineering (numpy, pandas, spark, scikit-learn, ETL)GRASP, SOLID и прчоее - это вообще не технологии, а принципы, про которые можно за полчаса прочитать на википедии.Вообще, лучше загуглить каждую технологию, понять, что это и для чего, и подумать, понадобится ли это для веба.
>>1639656> флаsk> книгиЕбать.Квикстарт: https://flask.palletsprojects.com/en/1.1.x/quickstart/Курс на хабре: https://habr.com/ru/post/346306/
>>1639667я тоже с такими мыслями сидел когда смотрел вакансии на местных галерах. конкретно эти требования взяты с двух вакансий где было написано web developer. всего их дюжина. две из них я выкинул из за того что там супер крутые сеньоры помидоры нужны для удаленки на сингапур и мальту. со всех остальных скинул сюда в тред. трустори, я не тролль.
>>1638346 (OP)Какая серия лекций у Хирьянова лучше - "программирование на Python" или "Алгоритмы на python"? Может, есть англоязычные лекции ещё более высокого качества для вкатывальщиков?
>>1638346 (OP)А вы конспектируете лекции по погромированию? Стоит на это тратить время именно в случае программирования? Или не столь полезен такой же подход, как к математике, например?
>>1639691Программирование - это не математика, что бы тут ни кукарекали. И подходы к изучению у них разные.В математике ты обязан задрачивать вообще все детали и тонкости какой-то области, потому что понадобятся реально всё. Абстракции текут повсеместно. Поэтому приходится конспектировать, чтобы уж точно ничего не упустить. Но масштабы в сравнении с программированием небольшие.В программировании наоборот нет смысла учить всё, учится только то, что используется. А что используется - то и легко запоминается. Соответственно, и конспектировать не нужно.
>>1639708Есть тут кто-то, кто в курсах что проходят в рашкинских айти ВУЗах? Небось там конспектами ебут и код заставляют на тетрадных листках приносить?
>>1639708Хуйню ты какую-то написал про математику. В математике тебе надо конспектировать тогда, когда надо какое-нибудь доказательство запомнить или может просто формулировку какой-нибудь теоремы. Ты их может и поймёшь, а потом забудешь, а сдавать предмет надо по конкретным теоремам и доказательствам. В программировании так тоже иногда может быть, ты можешь забыть какие-то конкретные алгоритмы, даже если их поймёшь, а сдавать как-то надо. Или, хуже, какие-нибудь структуры данных специфичные, API, какие-то параметры и т.п., что тоже потом потребуется на экзамене.
>>1639710Я учил в вузе C++, но у нас не ебали, ваще пох всем было.На контрольных и экзах был выбор - писать на листках или пекарне. Но на пеке требования были выше - код обязательно должен заработать, а на листке прощалось, если немного наебался.
петян, обмазываюсь asyncio. вижу, что в пистоне активно его пилят и многое меняется, это и хорошо и плохо. плохо потому, что в сети или мало развёрнутой инфы или же она уже устаревшая. так вот, петян, как реализовать обработку OS signals для корутин?допустим, хочу отправить через aiohttp миллион запросов и в случае SIGINT запомнить, где прервалось исполнение, схоронить статус, все дела.нашёл это: https://medium.com/@rob.blackbourn/a-python-asyncio-cancellation-pattern-a808db861b84но не разберусь, как оно работает и как его вставить например сюда: https://pastebin.com/XRecPXSq
>>1639710>Небось там конспектами ебут и код заставляют на тетрадных листках приносить?От предмета зависит. Большинству похуй, многие на ноутах конспекты делали. Но по каким-нибудь ОСям нужен был конспект лекций от руки.
Господа, пишу щас на сруби за ~1k$, в общем-то хватает, но как-то грустненько, хочется больше, но свалить на другой рубиновый проект не могу, их просто нет в моих пердях, удаленки в пидорахии тоже не особо, к апворкам пока не готов. Смотрю на питон, как самый близкий аналог, че скажете, стоит ли затевать перекат? Реально ли в мухосранях подымать больше штуки? Так-то я просто крудошлеп, но пока не оставляю надежду стать чем-то большим
В ORM Джанги хочу запилить подобие связного списка. Нашел способ через создание отдельной таблицы Series и храниние ссылки на нее для каждого отдельного листаТолько вот в нормальном листе надо поддерживать порядок объектов после удаления и добавления новых (а также иметь возможность перемещать объекты внутри листа). Как это сделать в контексте любой джанговской реляционной БД?..
Чёт пытался целых полтора года в катиться в Java. Так и не вышло толком. А неделю назад взял учебник по Python, раз-раз и нормально. Ещё бы работу найти на стажера/джуна по Python.
>>1639655Полную хуйню пишешь. Для каждого фреймворка на пыхе есть уже готовая тестовая среда исполнения - НИЧЕГО настраивать не нужно. А когда тебе придется деплоить проект на реальный сервак кажущаяся простота питона тебе ничем не поможет - ведь тебе точно так же придется ставить nginx, прописывать прокси на wsgi-сервер, подключать постгресс/редис и прочее. Композер к слову гораздо круче пипа по фичам.
>>1639846>Как это сделать в контексте любой джанговской реляционной БД?.. Можешь сделать кастомные сейвы, делиты и т.д.
>>1639850Хз, что может быть сложного в Java. Выучил ее на втором курсе по инерции, когда читали ООП на базе крестов, так и галерю с тех пор. Питон использую для пет-проектов - боты, парсеры, всякая прочая тяп-ляп шелупонь, когда надо быстро проверить гипотезу, не задумываясь о качестве. Но писать большие проекты на питоне - это имхо изврат.
Есть телехрам бот с вот такой конструкциейВ этом калбеке неоднократно вызывается этот же калбек (пик 2). Это нормальная практика, или это говнокод и лучше писать под разные ивенты (команды бота) свои обработчики?
>>1639918Я читал и учился по Брюс Эккель Философия Java. Где кривой перевод на русском и по версии Java 5. В принципе все понятно, Java Core по идее знаю, но теперь где это все применить, знания улетучиваются без практики по немного. Есть конечно идея сейчас почитать Герберта Шилдта Полное руководство Java, чтобы освежить немного знания...
Интересно, как далеко можно зайти используя лишь древний пк? Pycharm 2.7.3 уже сейчас глючит безбожно, а ведь дальше придется фреймворки использовать.
>>1639995Можно не использовать иде вообще и взять какой-нибудь лёгкий редактор, тот же vim. Да, не будет автодополнения, линтера и много чего ещё из коробки, но жить можно. А запускать всё из консоли.
>>1639995Что ты называешь древним? 15-ти летние вполне годятся. Нетбуки на атомах годятся. Используй что полегче просто, например code от майкрософт, или тот же vim.
>>1639723ТЗ сформулируй, что тебе надо, какой сигнал словить и что делать при этом.Для многозадачной программы тут сложная логика может быть. И не важно, у тебя через asyncio задачи сделаны, или через процессы-треды. У тебя в принципе логика в этом случае сложная, сформулируй её по-русски сначала, прежде чем в кодирование лезть.
>>1639873Эту логику канешн надо внутри моделей распогать, а не во вьюхах?п.с. насколько это все трудозатратно с точки зрения использования памяти и CPU? я не горожу уродливый велосипед?
>>1640112>Эту логику канешн надо внутри моделей распогать, а не во вьюхах?Конечно.>п.с. насколько это все трудозатратно с точки зрения использования памяти и CPU? я не горожу уродливый велосипед?Насчет памяти не скажу, но учти, что если делать через переопределение сейва/делита при создании/удалении объекта ты будешь каждый раз делать несколько дополнительных запросов к БД. Поэтому, наверное, лучше сделать как сказано тут:https://stackoverflow.com/questions/23590616/how-to-use-linked-list-to-find-next-and-previous-objects-in-djangoНикаких доп.полей и т.д., просто запросы по требованию
Пацаны, надо итерироваться по словарю d (где ключ - строка, а ее значение - integer число) и отфильтровать ключи по возрастанию модуля значения. Канешн делается это функцией sorted, где в параметрв key надо засунуть что-то типа lambda x: abs(x[1]), но эта манда не будет итерироваться по словарю, она будет полноценно итерироваться только по d.items(). В Пистоне с итерациями по словарю всегда столько ебли?
Не могу придумать идею для проекта. Бот мне нахуй не нужен, корявый сайт-блог наверное нет смысла делать, а что-то более сложное вряд-ли осилю. Вот и остаётся пресловутая борда, либо хуй собачий.
>>1640385Достаточно только желания изучить новое. Придумай проект где можно задрочить интересующие тебя технологии
>>1640388В том то и дело, что изучил не много. Вот и приходится в очередной раз писать цикл выводящий 10 раз "соси".
Сап антуаны, кококо не работает код нужна помощьПитон 3.8.1c = [1,3,5,7]i = iter(c)for r in range(5): try: print(next(i)) print(c) except StopIteration: c.append(11) print(next(i)) print(c)Код выше дропает ошибку при обработке исключения, хотя список я уже дополнилc = [1,3,5]i = iter(c)print(next(i))print(next(i))print(next(i))c.append(7)print(next(i))А вот этот код работает. Главный вопрос какого хуя!? ЧЯДНТ???как пофиксить?
Привет. короче наткнулся на такую задачку.набрасал код но так как я не сильно знаком с asincio хз норм написал или нет. Если кто может поревьювте!https://pastebin.com/ffxMm3WfВо вселенной StarWars существует всего лишь один завод по производству световых мечей.В зависимости от кого пришел заказ - на меч устанавливается либо алое лезвие (Ситхи) либо голубое (Джедаи)Завод состоит из цеха, и двух отделов доставки.- Отдел доставки Ситхов, состоит за одного курьера (Может доставлять 1 меч одновременно, время доставки - 5 сек на меч)- Отдел доставки Джедаев состоит из пяти курьеров (Может доставлять 5 мечей одновременно, время доставки - 1 сек на меч)- Цех производит 1 меч за 100мс- Завод не должен останавливаться в момент доставки мечейфайл заказа: orders.txt<количество> <1 - джедаи, 2 - ситхи>пример:10 15 210 1Задача:Написать программу, которая при старте прочитает orders.txt и выполнит заказы по порядку.Требования: - Использовать ООП - Ипользовать AsyncIO
У меня вопрос. Вот я начал изучать питон. Не могу понять что чем является в питоне. Все есть что? Класс? А остальное это экземпляр? Если говорить про ООП. Например мне надо в переменную указать путь к папке, и проверить есть ли там в папке что-то или нет, как это сделать? Какая сущность будет в переменной и в папке, те что написать по итогу? if a = чему, числу, строке, еще чему то. С завистью смотрю как делают итерации, проверки и прочее, не могу понять с чем, с какой сущностью они вообще работают, также и с остальным.
>>1640526вот поэтому питон не очень хорошо заходит как первый язык и изучать программирование лучше не с него.В питоне все есть объект. Если у тебя некоторый x, то type(x) ты узнаешь экземпляром какого класса он является, а по dir(x) какие у него есть атрибуты.Как работать с файловой системой в питоне: есть модуль os, в котором есть нужные тебе процедуры:files = os.listdir("/your/path") # будет список строчек с путямиif files: # if СПИСОК выполняется если список не пуст (аналогично if len(files) == 0в питоне нет переменных есть имена
>>1640532к разряду в какой системе счисления? Крч если в десятичной, то надо явно туды сюды переводить:n = 2456m = 2int(str(abs(n))[m])
>>1640545Те путь - это список, и если я посмотрю что это за сущность, это будет список, и мне надо будет работать с ним как со списком, и чтобы поверить есть что-то в папке, надо будет просто узнать пуст список или нет? Вот это я хочу понять.
>>1640554путь - это строка "C://Program Files/Huita"путь может указывать на файл, папку или ссылкуесли путь указывает на папку, то можно сделать os.listdir и увидеть какие еще файлы лежат в этой папке.посмотри доку про модули: os, os.path, filepath
>>1640559Про это я знаю, и про эти модули тоже, вопрос в другом. Например, после загрузки модуля. Если папка пустая, а это значение я занес в переменной, вот пустая папка - это будет что? Какой тип?
>>1640597Эксепшоны лучше сделать кастомные или выбрать менее общие из имеющихся, их же и перехватывать.
>>1640597Ну и когда рейзишь, можно эксепшон проинициализмрлвать и засунуть туда собственно сообщение об ошибке
>>1640597Ну и тут лучше инвертировать логику, чтобы понизить цикломатическую сложность. И убрать ненужные else
>>1640597Тут надо функцию типа usage с выходом, а не хуевертить конструкции, тем более эксепшены, которые для исключительных ситуаций. Это не исключительная ситуация.
>>1640603Если делать кастомные, код выходит путанный. А такая идиома может много где пригодиться. Если делать общие, что-то в них попадёт. В данном случае можно бросать NameError>>1640604Много строк. x=Exception(); x.message='y'; raise x -- быдлокодно смотрится>>1640606Не знаю что ты имеешь ввиду, но брякаться из циклов нельзя. Можно рейзить при успехе обоих условий, чтобы вырваться, так можно избавиться от одного рейза. Так выходит, в теории, хуже, учитывая что эксепшон перестаёт означать ошибку, а эксепшонов без ошибки в питоне не завезли
>>1640597Тут точно нужен трай-эккцепт? Вроде простая проверка условий, если не проходит, то печатаешь своё сообщение выходишь.
>>1640623У меня там два условия, если одно из них неверно, нужно выполнить один и тот же блок кода. Если этот блок кода копипастить в обоих else, получается некультурно, по быдлански
>>1640635Здесь-то оно прокатит, а если между условий нужно будет ещё что-то делать? Где-то такой flow control может оказаться нужным
>>1640662packt сразу в помойку.Из орайлей introducing -> fluent -> cookbookЕсли для совсем нуба, то первую из них можно заменить на обе от no starch.Всякие нетворки-фласки по необходимости.
>>1640494Вот что у тебя заведомо недоделано - программа не останавливается после того, как все заказы выполнены и доставлены.Ты вызываешь queue.task_done(), но нигде не используешь это. Task_done() имеет смысл только в том случае, если ты где-то делаешь queue.join(). Я не очень понимаю условие "- Отдел доставки Джедаев состоит из пяти курьеров (Может доставлять 5 мечей одновременно, время доставки - 1 сек на меч)", но явно не так, как это ты интерпретируешь.У тебя логика такая, что просто отдел доставки доставляет один меч в секунду, как-будто есть один курьер и последовательно по одному мечу доставляет. Но у тебя пять курьеров, если курьер свободен, он при поступлении заказа доставляет меч (за одну или за пять секунд, вот это не понятно, мне кажется, что подразумевалось, конечно, что курьер за 5 секунд доставляет, но есть пять курьеров и среднее время доставки, соответственно, 1 секунда).В общем здесь разумно сделать общую очередь для Джедаев, пять задач для курьеров, один курьер-одна задача, они слушают очередь, репортят task_done(), а отдел доставки уже делает join() для своих курьеров.Общая логика. Фабрика по производству мечей каким-то образом должна информировать, что заказы окончены. Правильнее всего это делать не через task_done()-join(), а запульнуть в очередь соответствующее сообщение, либо использовать другие специальные инструменты из asyncio для этого. Я бы именно в очереди что-то клал, это более универсальный подход.Отделы доставки читают очередь и раздают задачи курьерам. Как только они получают сообщение "заказы завершены", они, после доставки мечей, сами прерывают свою работу. Так у тебя сможет сработать твой gather.
>>1640494>>1640730Ещё дополнение по стилю.У тебя используются f-string, которые появились в python-3.6, но при этом ты пользуешься активно obsolete-вещами, что нужны были в python-3.5, где были недоделаны до конца циклы обработки сообщений.Например, ты передаёшь в asyncio.Queue параметр loop. Уже в 3.6 это никогда не нужно и документация рекомендует этого НЕ делать. В последующих версиях это будет выпилено.
Как же обидно блять, на кодеварсе сравнивать свой гуманитарно-пошаговый говнокод с изящно-математическим решением.
>>1640662В основном книги дублируют друг друга и читать всё заведомо не нужно. И нужно на свои задачи ориентироваться, что писать будешь.
Подскажите супер дешевый сервер, куда можно захостить телеграм бота (возможно не одного)Я бы воспользовался хероку, на но там ограничение по времени, а мне нужно, чтобы скрипт работал 24/7Просто гугл выдает такое кол-во вариантов, что хуй знает как выбрать нужный вдс, имея 0 опыта в этом
Сап, 300к/сек. Прошу оценить код. Начал недавно, насколько по дегродски пишу? В смысл не вникайте, делаю по заданиям. https://ideone.com/HGVSyFhttps://ideone.com/z22jbu
>>1639951Жду, а пока прохожу на курсере курс для начинающих от ВШЭ. Пока легко, все жду объекты, потому что раньше с ними не сталкивался - у меня из опыта семестр паскаля в универе и курсач.
Что за ублюдский джанговский Гит? Он наплевал на мой файл .gitignore и пытался закинуть папку с виртуальной средой в контроль. Так даже после того как я снес папку .git, он остался в проекте но теперь попросту не отвечает. Как эту залупу убрать нахуй? Мне новый проект теперь создавать?
>>1640826Надо было git -rm --cached просто, а ты пердолиться начал.Лол, свинговый диалог с дефолтной темой.
>>1640822А хз, как-то сразу не подумал, что можно функцию проверки сделать и пошёл в цикл чтобы после проверки не сохранялись любые данные.А что ещё не так? Думаю там где метод is_healthy можно было попроще реализовать, накидал на скорую руку. >>1640824Сам то понял чего сказал? И эта шутка >хелловрот просто апогей юмора. Такого кринжа я давно не ловил.
>>1640795Лютый пиздец, тебе надо идти на курсы с оплатой 300k/сек.Вот нельзя просто проверки нельзя так делать.Если хочешь диапазон проверять, делай30 <= age < 40и много чего ещё. Цикл ввода тоже иначе делай. Я бы скорее сделал черезwhile True:____str_year = input(...)____if len(str_year) == 4:_______year = int(year)_______breakВ таком стиле, только ещё КРАЙНЕ желательно в try-except это обернуть. Но паттерн такой.Вообще, много чего лучше переделать.
>>1640853Раз такой обидчивый можешь этого прохиндея >>1640871 не слушатьКод читабельный - остальное вкусовщина. Только синьеры не просят 2+2 оценить.
>>1640853Ну я в основном про 1 прогу. Во первых цикл. 0000 это что за число такое?) Если хотел 0, то его вообще можно не указывать range(4) -> 0,1,2,3Во вторых вместо if (1 такт процессора, ну или чуть больше, хз) ты делаешь 10000 тактов процессора. Это как минимум не правильно (И это только года!)Зачем тебе сторонняя либа я не понял. Расскажи, пж)
Добрый вечерочек! Анон, из-за ебанного вируса меня и 99% прочих работников фирмы отправили домой, на эдакий отпуск сроком на месяца 2 как минимум(за свой счет конечно же). Вот думаю эти 2 месяца провести продуктивно, есть огромное желание выучить этот ЯП. Опыта крайне мало, в свое время(2-3 года тому назад) писал простенькие скрипты/макросы на AutoIt, определенные знания(поверхностные) про всякие там массивы, функции, циклы и т.д. есть. Вот пару дней как начал смотреть лекции Хирьянова(спасибо ОП-посту), только вот смотрю не "Алгоритмы и структуры данных на Python 3", а "Практика программирования на Python 3". Вернее, пробовал начать с "Алгоритмы и структуры данных на Python 3", только вот с математикой как-то у меня туго(хотя в школе были 5-ки, видимо за это время проебал все знания), поэтому где-то на 4-5 видео, там где пошла информация с математическими примерами, как-то объебался. По поводу среды разработки, пробовал сначала писать(громко сказано) на PyCharm, вроде бы все хорошо, только вот при попытке установить разные библиотеки, началась суета с уймой ошибок, перешел на VS Code, вроде бы все хорошо, никаких ошибок пока не наблюдаю. Хотел вот совета у анона: 1) Я вот хочу в веб программирование вкатиться(Django), только вот почему-то думается мне, что лучше начать с создания обычных и простеньких desktop app-ов, набить руку, а потом уже вкатываться в веб. Это вообще правильных подход? 2) Какие простенькие программы лучше начать писать на первых порах, дабы набить руку? Я пока что делаю так: посмотрел лекцию, там, например, обучали массиву, после просмотра, минут 30-40 пытаюсь всячески "играться" с этими массивами, дабы больше узнать про принцип работы оного. 3) Как быть с алгоритмами? В простеньких и коротких кодах проблем никаких нет, ибо они простенькие и короткие. А вот где научиться строить правильные алгоритмы в больших кодах, где уйма функций, циклов и т.д.? Или это со временем само придет? 4) Что еще в целом можешь посоветовать, анон? Может еще какие-то лекции? Пробовал книги, прочитал тот же "A Byte of Python", вроде бы все просто и понятно, но с тот же Хирьянов для понятен и как-то более легче получается по нему учится.
>>1640907Хочешь быть неудачником следуй правилам неудачников:1. Хочешь одно - делай другое2. Перед тем как сделать долго выбирай из вариантов. Если сомневаешься в выборе - начинай сначала3. Начал - бросай при первых затруднениях и смотри аниме.4. Всегда следи чтобы любое дело начинать было не поздно. Спрашивай на дваче не поздно ли в 28 лет учить бибиотеку beautiful soup5. Если решил что поздно всегда ищи контраргументы
>>1640907Не обижайся, но по твоему тексту прям видно типичнейшего вкатыша без технического бекграунда и с полной кашей в голове. Прям вижу твои посты в треде неосиляторов спустя пару месяцев.Осталось только записаться на ML курсы от какого-нибудь гикбрейнса.
>>1640936>>1640921Да нет, я не обижаюсь. Просто все когда-то начинали, кому-то что-то дается легче, а кому-то наоборот.Поэтому я и попросил советов.Желание есть, как и цель, только вот нужен дельный совет, дабы воспользоваться желанием и достичь цели.
>>1640938Алсо, как я и написал чуть выше, желание есть, в мотивации не нуждаюсь, не будет получаться, буду трудиться упорнее. Да я и нихуя не спрашивал, про поздно ли и т.д., я молод, люди вон в 30-35 начинают и добиваются чего-то. Да и учится никогда не поздно.
>>1640907>1) Я вот хочу в веб программирование вкатиться(Django), только вот почему-то думается мне, что лучше начать с создания обычных и простеньких desktop app-ов, набить руку, а потом уже вкатываться в веб. Это вообще правильных подход? Нет, Desktop-приложения сложнее, особенно на питоне, который для них просто не предназначен. Работа с окнами, интерфейсами и т.п. достаточно сложна, требует понимания.Скорее нужно начинать с учебных консольных скриптов, вот они проще. Просто скрипты, которые что-то считают, берут данные из файлов, и т.п. Все учебные задачи про это. >>1640907>2) Какие простенькие программы лучше начать писать на первых порах, дабы набить руку? Я пока что делаю так: посмотрел лекцию, там, например, обучали массиву, после просмотра, минут 30-40 пытаюсь всячески "играться" с этими массивами, дабы больше узнать про принцип работы оного. Играться очень полезно, можно самому себе ставить задачки на понимание и искать ответ. Есть масса "олимпиадных" задач в интернете, от очень простых до реально сложных. Стоит найти такие сервисы и брать оттуда простые задачки.>>1640907>3) Как быть с алгоритмами? В простеньких и коротких кодах проблем никаких нет, ибо они простенькие и короткие. А вот где научиться строить правильные алгоритмы в больших кодах, где уйма функций, циклов и т.д.? Или это со временем само придет? Ты тут описываешь не сколько программирование, сколько проектирование. Этим надо заниматься и этому годами учатся, на своём опыте, изучая другой опыт, чужой код. Книги мало этому помогут, хотя когда там описывают учебные приложения какие-нибудь, то это на пользу.Я бы в целом посоветовал именно на веб-приложения смотреть, это и в чём-то проще, и практично, и за этим будущее, сейчас все приложения уходят в веб, даже локальные. Минус в том, что тебе одновременно надо ещё и HTML-CSS-JS осваивать. И массу других технологий. Но в любом случае массу других технологий.В общем хороший вариант два направления одновременно:1) простенькие алгоритмические задачи на структуры данных2) как вариант Джанго, например сначала их учебное приложение, и потом может под себя что-нибудь похожее.
>>1641025Спасибо тебе большое, анон!Так и сделаю. Вот добью лекции Хирьянова, освою синтаксис Python-a, а дальше уже нырну прямиком в Django.Добра тебе!
>>1641025Алсо, еще такой вопрос тебе, добрый анон:Как быть с кодом на первых порах? Я имею ввиду, там в коллективе кто-то опытнее подскажет, что тут исправить, а что там, то бишь, поможет оптимизировать, а как быть самоучке? Как лучше всего научиться писать чистый и читабельный код?
>>1640827Папаня (я) понял что для удаления с концами внутреннего Гита надо озалупить файтл vcs.xml внутри .idea/
Как в питоне проверить пустая папка или нет, если пустая то вывести принт, пустая папка. Вот этот путь будет что? С чем его сравнивать?
>>1641117Я в курсе, я задал папку, как мне проверить что она пустая, и если пустая, то вывести сообщение. Пустая папка - это что? Какой тип, с чем его сравинть, если писать if == то что с чем сравинть то?
>>1641133if len(res) == 0Но так как пустой список кастится в false, то можно просто if not res.Ты почитай какой-то вводный курс хоть, штоле.
В моделях Джанго запилил абстрактный класс со ссылкой ForeignKey на сторонний класс-контейнер. От этого класса наследовал 2 других, но как мне из этого контейнера обращаться ко всем его объектам?.. У меня ведь аж 2 разных класса имеют ForeignKey ссылки на него, как мне выбрать все объекты? Если класс 1, то ты ясен перец просто обращается к нему через <имякласса_set>, а тут как быть?
>>1641199Польза математики для программирования переоценена. Это я как имеющий математическое образование так считаю.Важнее, какой опыт в инженерных вопросах и разных IT технологиях. Ну там понимание баз данных, структур данных, умению сложные графики-таблицы в экселе делать, умение работать в консоли, понимание HTML, принципов работы интернета, умению ставить и настраивать софт разный и т.п. Есть куча вот такой хрени, что одни умеют и понимают, не умея программировать, а другие совсем нет. Первым будет сильно проще в программировании.Тут ведь надо всё одновременно осваивать и при этом самому, вот это тяжело. Если хоть немного когда-то программировал, на уровне лаб в универе, то это уже хороший задел.
>>1641215Я имела в виду, что математика способствует развитию логического мышления, а обладателям этого навыка (хотя бы начального) гораздо проще обучиться программированию.Дело не в знании тонкостей математики, а в общем математическом мышлении, хотя бы начальном.Люди с гуманитарным образованием, например,обучаются медленнее или не обучаются вообще, поскольку то ли не могут думать логически, то ли им не удается себя заставить, то ли им действительно просто не дано понимать.
Блин, вот мне очень понравился ваш Питон, но у меня просто жутко горит жопа от всех дефолтных тем Пайчарма. Посмотрите какое говнище. Цвета все одинаковые, шрифт уебищный, тонкий какой-то, просто пиздец. В Пхп шторме вроде было сразу заебись, но у меня там триал кончился давно, не посмотреть. Мб посоветуйте конфиг какой? Ну или шрифт просто.Алсо, рейт как сделал, сам охуел как могу. Наверняка можно было там как-то в 1,5 строки хуе-мое, но мне понравилось, что я сам допер и довольно быстро.
Насколько вырвиглазно выглядит такой метод удаления ненужных символов из строки? С расчётом на однострочник есть какие-то методы попроще?
>>1641235выглядит стремновато да, может попробовать через maketrans сделатьна ум еще приходит что-то пикрилты чисто для примера такое странное делаешь или ты рил из создания списка выкидываешь квадратные скобки? какой кейс?
>>1640741Ну вот было задание про очередь я сделол хуйню, воссоздал прямо блять очередь (количество касс разное) а челики просто прибавляли к минимальной кассе значения а потом большее посчитали и все. Элементарно блять. Почему я не додумался хз. Я задания буквально как то делаю
Немного мимо кассы, но не могли бы вы посоветовать годных лекций по мат. анализу? Так, для общего развития.
>>1641215>умению сложные графики-таблицы в экселе делать>умению ставить и настраивать софт разныйОчень важно для говнокодинга, конечно.
Ребят что быстрее ?? Я как даун второй вариант сделал потому что подумал что в первом варианте многоуважаемому компьютеру будет дольше считать ? Но так ли это, profile показывает что и там и там время исполнения ноль.
>>1641277Варианты разные, второй не учитывает безносые.Алсо, во втором эти проверки прокручиваются для каждого символа и нахуй не нужный face строится, надо при первом же несовпадении делать continue и считать сколько дошли до конца.В общем, первый идиоматичнее, второй можно сделать быстрее при правильной реализации, но в целом нахуй не нужно, это экономия на спичках.
>>1641279У меня был continue я его забыл в конечном варике вставить, если бы он был, какой варик лучше быстрый или красивый ?
А кошель для битка electrum был написан на каких либах, не ткинтер же, смотрю, годная прога же. Например, мне надо сделать нечто подобное. Под капотом все ясно, как сделать окна и подобное, на чем?
Котаны, есть у кого-нибудь есть Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming? Суть в том, что нужно именно второе издание, а его нигде не найти. Буду очень благодарен.
Подскажите как читать код на питоне, именно читать, потому что когда смотришь чужой код нихуя не ясно, просто каша, причем для новичка не понятно откуда вообще начинать и как понимать логику кода. Когда смотрю видосы, они объясняют иначе чем написно, те вместо больше или равно, и если и то, говорят другое, типо как-будто есть какой-то скрытый контекст. Я понимаю, что циклы и условия нужны для обхода и тд итп. И все же, мб у опытных бывалых питонистов есть способы как читать код. Слева-направо, сверху вниз, от функции к класссу или от класса к функции. Это пиздец конеш когда начинаешь вникать. Вроде вот схватил нить, потом смотришь появляется хуй пойми откуда переменная или функция, и все, уже не ясно о чем шла речь. Ясно что надо знать библиотеки которые юзают, но все же. Хочу помощи, как вы читаете чужой код.
Надо покромсать список на подсписки по оперделённому ключевому элементу. Пока наколхозил так, но во-первых плохо читается логика, во вторых создаётся пустая строка в конце.Есть варианты попроще?
Есть ли на пистоне работа в QA? Про дата сАеНс не спрашиваю, т.к не имею нормального образования.Ковыряю сейчас джангу с реактом и осознаю, что мне это нахуй не всралось, вот просто не интересно и я не хочу серьезно работать с этим стеком.Хотя сам по себе язык очень нравится, писать скрипты для автоматизации всякой хуйни нравится, работать с данными тоже нравится.
>>1641444>>1641422>>1641413Спасибки, понял, что однострочником с генератором не отделаться, ебнул функцию.
>>1641455>QAНу у нас все интеграционные тесты написаны на selenium + самописный pom + pytest + allure2. Жизнь есть.Другое дело, что это у нас внутренняя необходимость была. А как на внешнем рыночке - я не знаю.
>>1638346 (OP)Привет любителям душить питона. Пишу программу-клиент с PyQt5. Нужно сделать так, чтобы при любом действии пользователя (движения мышки, клики, ввод с клавиатуры и прочее) сработала функция, которая сообщит серверу, что клиент все еще у компьютера и закрывать сессию не надо.Как такое сделать? Спасибо.
>>1641484А смысл? Лучше на сервере разрывать по таймауту, чем дрочить клиента.Ну а так, сделать какой-то таймер, который будет инкрементировать, а любое действие обнулять его. После достижения некоего значения разрывать.
>>1641484https://stackoverflow.com/questions/6532490/how-to-detect-if-a-qt-gui-application-has-been-idle-inside-the-app-itself-qtВот тут варианты обсуждают.
>>1641493Таймер сделал, но как вставить свою функцию в обработчик действий пользователя PyQt? Если по отдельности для мышки и клавиатуры, то могу забыть например перетаскивание окна или что-нибудь еще.У меня соединение висит не всегда, и задача клиента сказать серверу "я живой, продли мой токен на N секунд". Для http есть практики получше?
>>1641455Относительно своего опыта поиска работы после запиливания функционирующего пета - ты нахуй никому не нужен. Поскольку в моей срани нет вакансий по питону я проверить свою теорию не могу, а она заключается в том что тебе надо найти интересующую тебя вакансию и подогнать под нее свои знания. Ну и да джанго - хлеб для джуна.
>>1641499по поводу pyqt тебе надо погуглить какие есть event у нужного тебе qwidget и переопределить их.по обновлению токена гугли jwt refresh token
>>1641496Спасибо, надо учиться транслировать в голове C++ в питон :) Получилось переназначить функцию notify в QApplication:class Application(QtWidgets.QApplication): def notify(self, obj, event): print('user input', time.time()) return QtWidgets.QApplication.notify(self, obj, event)if __name__ == "__main__": app = Application(sys.argv)
>>1641509Так, а как нормально постить питонячий код на двачи?Ну, заюзал pastebin: https://pastebin.com/7beg8YVv
>>1640794Короч купил вдс за 80 рубасов/манс, лол. А теперь чешу репу, что с ним делать, помохите...На локалке мой проект представляет из себя пикрил не смотрите на докерфайл, я от балды написал, понятия не имею, как его использоватьЯ уже догадался подключиться к серверу через путти, обнаружил там ебунту с терминалом (знаю команд 5 от силы). Теперь, если я правильно все понял, мне нужно установить нужную версию питона, накатить pipenv, сделать mkdir, выполнить туда гитклон с локалки и запустить мейн скрипт? Пипенв, по идее, сам скачает все нужные модули и все заработает, так же? Или как такие штуки делают здоровые люди?Чета ппц этот деплой какой-то геморный, и это у меня ещё приложение уровня хелловрот...
>>1641554> математика способствует развитию логического мышления> общем математическом мышлении> Люди с гуманитарным образованием, например,обучаются медленнее или не обучаются вообщеСемантические и идеологические клише.> Люди с гуманитарным образованием, например,оОтсутствие пробела после запятой, то есть, безразличие к стилистике текста.> не могут думать логическиДопущение существования "нелогического мышления". Именно "нелогического", а не "нелогичного", как было бы в том случае, если бы обращались к клише "нелогичный человек".> просто не дано пониматьОтсутствие понимания значимости среды в формировании ЦНС, а также то ли по косноязычности, то ли специально оставленный намёк на генную (или даже "божественную") детерминированность мыслительной способности.В общем, солидный набор тупой пизды.
Изучаю пИтон 3й день, в учебниках и туторах дохуя задач на логику, я просто сижу и охуеваю, знаю циклы, выучил условия, строки, ввод и вывод, но в задачах висну когда блять мне предлагают расчитать сколько вася проплыл метров от одного бортика бассейна до другого. Сука. Понимаю что у меня логика хромает, и нехватает знаний математики. Так вот, че посоветуете почитать на тему логики или по математике какие нить годные книжки, но без углублений?
Как идиоматично делать for ... in для спличенных элементов, а потом сразу джойнить их?т.е. допустим (for i in code.split(delim)).join(' ')Знаю, есть головоломный способ у вас
>>1641589а зачем делать split в первой строке, а не перенести дальше, если ты все равно делаешь for, а не list comprehension?У тебя join - это же обычный для str, а не какой-то своего класса? Если да, то ты джоин не можешь так сделать. Т.к. сплит дает list.
>>1641589поправляю быдлокод на больший быдлокод для понятности parsed = ' '.join(for i in code.split(' '))): i = chr(int(i))
>>1641599короче, просто опишу что надо сделать:сплит даёт лист, я прохожусь циклом по элементам, затем джойню лист в то, что было
>>1641602parsed = ' '.join(code.split(' '))только это бессмысленно, получишь тоже самое. Т.к. join гарантирует обратные результат для split (где-то в документации про сплит или джоин написано)parsed = " ".join(code.split()) - такое имеет смысл.
>>1641622Я провославный васян вкатывальщик, у меня бафф на: + резист от долбоебов. - 5 к логике и математике + 5 к усидчивости и упорству
В Django где именно нужно проводит валидацию данных? Видел что это можно делать и на уровне Моделей и на уровне Форм. Но где это делают ровные пацаны? Кажется что, и там и там это мутить - избыточность
>>1641607"Логическое мышление" - это семантическое клише-профанизм, и алогичного мышления не существует в природе, поскольку само мышление есть логика.Впрочем, употребление подобных выражений - это настолько верный маркер интеллектуальной блеклости, что эти объяснения идут против моих интересов.
>>1641571Два чаю, но я думаю что это скорее самцы с мозгами ТП. Нет никаких гуманитариев и технарей, есть специалисты в отдельных областях, которые отнюдь не освобождаются от обязанности быть образованным человеком.
Привет всем это очередной тупой вопрос по реквестс. хочу получить страницу поиска постов на дваче с текстом test вот так: response=requests.post(url, data={'board': 'b', 'task': 'search', 'find': 'test'}) чего мне не хватает тут, кроме мозга? Я листал оф документацию но че-то не пойму ничего.
Как в Django ORM объединить несколько QuerySet в один? У меня в каждом QuerySet лежат объекты из разных моделей, хочу их "сшить" вместе для дальнейшей обработки
>>1641585https://egoroffartem.pythonanywhere.com/course/python/Палю годноту потому что ты хороший и перспективный. Там после каждого коротенького урока задание. Лаконичнее объяснений Питона для новичка не видел. И задания с разных контор асмпру и тд там ссылки будут.
>>1641635Не переживай, нафталиновая мудрость с определенных пор стала глупостью потому что вообще не монетизируется никак. Говори свободно. Всем похуй. Токо скажи плез где у меня запятых нет и почему, надо пиздец.
Есть ли смысл читать Byte of python даже не смотря на то, что используется 2 версия питона? Или уже есть и для 3 версии?
>>1641774Есть для третьей, шапку прочти там ссылка на яндекс диск с книгами.>>1641756БлагодарюАлсо, котоны расскажите про "Лутца - Изучаем пайтон. Том1"Прочитал 70 страниц, ебать я столько воды в жизни не читал, тупо хвалит и питон и рассуждает как он хорош, мне точно надо это все читать? Или я могу смело скипнуть две главу и сразу читать с практики? Помогите советом кто читал.
>>1641902Лутц хуйня в которой дохуя воды. Если ты совсем новичок то сиди не перди и читай, если уже нюхал говна, то попробуй лучше Лучано Ромальо Fluent Python
>>1642149Судя по всему, генерик нубская книжка, на таком уровне особой разницы нет. Хотя мне сложно смотреть с этой стороны, годно ли разжевывают и т.п.
>>1642173Необходимость йоба-ИДЕ для скриптов переоценена, достаточно вменяемой работы с файловой системой и подсветки синтаксиса.
В треде есть консенсусное мнение о том, какой курс лекций лучше всего для вката? А такое же мнение по книгам?
>>1641902Новичок на связи, не слушай ебанутых. Лутц рассказывает про Питон прыгая по темам и всегда затрагивая их большой срез. Плюс там язык такой «технический» что пиздец. Советую этого челика смотреть которого выше кидал и лекции Харьянова про алгоритмы, там тоже с заданиями. А уже после нескольких пройденных тем полировать Лутцем, в таком режиме он норм заходит.
>>1641635Логика это раздел математики, а "логичное мышление" само по себе просторечное выражение. >>1642206>курс лекцийХирьянова по алгоритмам. По синтаксису у sentdex'а на ютубе есть курс лекций по базовому питону, их там штук 30 и воды по минимуму.Больше ничего мне лично не зашло. >книгамУкус питона, вкоту больше ничего не надо, после достаточной практики Python cookbook.
Есть надпись со смещением символов на 2( то есть вместо слова "хуй" там написано "чхл") Как привести её к нормальному состоянию?
Как я понял, добавлять папку со средой venv в гит - хуевая затея, а что если версия либы, с которой я работаю, во время проекта изменится? Шо тогда?
Ребят, кто еще какие нормальные буткемпы по обучению знает?Типо приехал и сидишь как макака обезьянишь, пока не устроишься на работку.https://it-incubator.by/https://hutorium.ru/
>>1642673> 22 страницыЯ не читал даже первый абзац ОП-поста, но уже уверен, что вопрос - хуита, посылки автора - демагогские, а на первой странице постят в основном те, кто на самом деле не верит в то, что пишет.
>>1642673> скрипты для CLI - bash, lua (хотя сойдут PHP или JS);Ну вот тут я могу сказать, что скрипт больше 10 строк в баше писать уже не стоит.Во-первых строки вместо структур и легаси вместо синтаксиса. Во вторых учитывая весь зоопарк возможных интерпретаторов и бинутилзов, писать читаемые и переносимые скрипты - это большей степени искусство чем ремесло.мимо_пишу_скрипты_12_лет> сервер - PHP, Go (а где-то Java, JS);Вот тут вообще странна логика. Вот этим четырём можно, а питону ну никак нельзя.
Хочу вкатится в этот ваш Питон. Но на торрентах нет этого курса. Где его найти? А то мой менталитет не позволяет отдавать деньги за цифровой товар.
>>1642807Ну просто курсы его (лично для меня), показались очень годными. По ним учился вёрстке и ПэХэПэ. Вот теперь увидел, что у него есть и по Питону, только вот на торрентах что-то не видно его.
>>1642820Смотри Хирьянова, че ты велосипед изобретаешь?>все уже придумали для годного вката, нет блять не хочу на ложечке всё, хочу сам порыться в говне, а потом с полным ртом говна кушать все таки с вашей ложечки.
Анончики, помогите плс. Как импортировать питоновский модуль, если относительно основного файла он лежит в другой папке? Гугл говорит, что нужно для каждой директории сделать файл инит и в ней импортить все файлы, добавляя их через sys.path.append. Но у меня ничего не выходит, модуль все равно не импортится. Можете, пожалуйста, пример кода дать на такой случай. Есть папка 1, в ней лежит папка2 и файлА. А папке2 лежит файлВ. Кпк импортировать в файлеА файлВ.
>>1642890Никакие пути не нужны. Скажем, есть такая структура.Папка A, в ней ma.py и папка B, в которой mb.pyВ main делаем import A.B.mbв mb.py делаем import A.maВсё.Это абсолютные импорты, есть ещё относительные с . и .., работает как в файловых путях. Это и есть пути по сути.
суп, змеееды. помогите с питоничной реализацией следующего:есть дерево, где ноды могут быть "недоступны" (допустим, это флаг node.available)все потомки "недоступной" ноды автоматически "недоступны" (невзирая на флаг), это важноу нод есть метод Node.next_node(), который должен вернуть следующую "доступную" нодуподразумевается depth-first searchпростым вайл лупом Node.next_node() мы можем посетить по цепочке все доступные ноды до самого конца деревау каждой ноды доступны родитель и дети, ясен пеньвот начальный код поиграться: https://ideone.com/IS8TKIфункция print_tree() просто печатает всё дерево, для дебагафункция traverse() это луп, который сейчас останавливается на верхней ноде, потому что метод Node.next_node() не придуману меня пока получается вонючее говно
>>1642896>у нод есть метод Node.next_node(), который должен вернуть следующую "доступную" нодуТебе именно так и надо?Спорное решение, что подобный метод относится именно к ноде, а не к какому-то классу-дереву целиком. Хотя возможное.Тебе, значит, надо в next_node() обход делать дерева.Логика:1) сначала проверяешь детей, если есть дети и они available, возвращаешь дитя соответствующее, это легко.Вот дальше уже неочевидно. Надо реализовать метод проверки братьев, для этого лезть в родительскую ноду, брать список детей, сравнивать с текущей нодой, после того, как найдена, уже пойдут те, что надо исследовать. Или надо подниматься на уровень выше. Это рекурсивным алгоритмом делается, но более хитрым, чем если бы ты от вершины шёл и один генератор просто листья возвращал.
>>1642896вот начальный код поиграться, издание второе, дополненное: https://ideone.com/8S8VTRя - дегрод и забыл нодам дать ссылки на своих парентов>>1642897да, я как раз пытаюсь рекурсивно запилить, примерно как ты пишешь. почти получилось>>1642898сам, сам. это не какое-то задание, а часть моей программы
>>1642890В питоне нельзя так просто импортировать родительский каталог. Кривой путь, но возможный:пусть у тебя каталогиproject/p1/p2project/p1/p3файлы project/p1/p2/modul.pyproject/p1/p3/script.pyесли тебе в script.py нужно открыть modul, где есть функция fooто ты там можешь сделать код видаimport syssys.path.append('../..') <-- это ты добавляешь p1 в список импортадальше import p1.p2.modul as modulmodul.foo()Но это всё-таки грязноватый подход. Можно, лучше, добавлять не относительный путь, а глобальный, это лучше, но тебе придётся для этого дополнительный код делать. Потому что sys.path это глобальная переменная, и ты вот этими хаками её тоже портишь, это может сломать тебе какой-то код.
>>1642899Ты можешь, кстати, вместо того, чтобы руками список детей заполнять, что чревато ошибками и лишний код:parent0.children = [child0, child1]сделать в конструкторе код вида:if parent:____parent.children.append(self)так надёжнееС рекурсией такой, нормально, можно сделать, но реально тут дополнительные заморочки появляются, по прикидкам код из-за этого разрастается. Не пробовал пока делать.
>>1642902да, в основном коде все автоматизированос рекурсией пока обосрамс - вниз спускаться получается, а вверх получается бесконечная лестница из ифов, проверяющих есть ли у парента сосед, иначе есть ли у парента парента сосед, иначе есть ли у парента парента парента сосед, ...
>>1642896тэкс, MVP говно потекло по трубам: https://ideone.com/do15arпока что печатает желаемое. но это позорнейший говнокод, а мне еще расширять этот функционалбуду думать как улучшить
>>1642896>>1642897всё, зарефакторил: https://ideone.com/pHxZ1Eначинаем с детей, переходим на братьев, затем идем наверх. логично, питонично. я доволен
Юзаю pymongo и хочу в базе создавать в цикле коллекции с данными. Как при вызове функции в ее имя передать переменную? for i in range(150): db.i.insert_one({'x': i})Имею в виду вот тут db.i.insert_one, как подставлять каждый раз число i при вызове функции?
>>1642957db.1db.2это не валидные идентификаторы, так что никакесли говорить про валидныеdb.adb.bто их можно передать через operator.getattr(obj, name), либо обычно в orm есть свои кастомные штуки для такого
Наверняка платиновый вопрос, но что спрашивают на собеседованиях на джуна? - изменяемые/неизменяемые типы данных- итераторы/генераторы- декораторы- ооп- http- sql- фреймворки (django, flask etc)Что еще могут? И какого типа задачи могут быть?
Нах в forms.ModelForm Джанги есть такая хня как label (внутри Meta)? Они функционально ж ничего не несут, в html-коде даже нигде не появляются
Двач, помоги решить задачку.Есть функция. Если в качестве аргумента передать 1, торезультат будет 2, если передали 2, результат равен 1. Какможет выглядеть эта функция без использования условныхоператоров. (2 способа)
>>1643280Но не нужно.Правильных подхода два, либо математически вычислять return 3 -x,либо через словарьreturn {1: 2, 2: 1}.get(x, None)
поцоны, поясните плизВот у меня есть класс. Как в нем объявить поля, которые присвоятся только потом, в процессе работы? Ну типа можно конечно через None (self.filed = None), но, боюсь, так только долбаебы делаютВыручай, анон
Пиздос, просто жопа сгорела в попытках задеплоить свое приложение на серва чокВ связи с чем возник вопрос, насколько хорошо вообще веб разрабу нужно знать линукс и уметь в терминал? Или у компаний для таких вещей существуют специально обученные люди?
>>1643399>В связи с чем возник вопрос, насколько хорошо вообще веб разрабу нужно знать линукс и уметь в терминал? Или у компаний для таких вещей существуют специально обученные люди?Это примерно как английским языком владеть. Да, бывают специальные люди, но на каком-то начальном уровне уметь это надо обязательно.
>>1643399Обычно да, специальные люди есть.Но в идеале нужно хорошо знать свою область и хотя бы на минимальном уровне уметь остальное. Во многих случаях это облегчит работу.
>>1642977>какого типа задачи могут бытьну мб тебе дадут простую алгоритмическую задачуа так да, надо знать всё что ты перечислил и этого будет достаточноПравда не знаю что можно спросить по джанге...мб Спросят что такое MVC, REST
>>1642977Шёл бы ты в тему перезвонщиков.Скорее с тобой поговорят просто по-пацански, типа кто ты, что из себя по жизни представляешь, как держишься, чего добился, как мозги работают. Спросят за темы, близкие к тому, чем в проекте занимаются.Собеседование не экзамен, где преподы по билетам гоняют. Если у тебя кругозор есть по технологиям, проектам и т.п., это тебе в плюс.Если ты свободно пишешь код на каких-нибудь алгоритмических задачках, это тоже тебе в плюс.Если ты понимаешь, как какие-то кишки устроены и подкапотную хрень, или в состоянии сам додумать, это тоже тебе в плюс. О таких вещах все любят говорить.Вот понимаешь ли ты, что происходит под капотом в таком кодеa = 2a += 1это на понимание неизменяемости типов данных, например. Хотя бы примерно.Понимаешь ли ты, какие стадии проходит один какой-нибудь типовой запрос к django? Примерно? Вот эти вещи показывают что-то о собеседнике.
Что быстрее сделает многоуважаемый компьютер : переберет список чисел от одного до 1ккк+ выкидывая из списка каждое третье число или поделит 1ккк+ на три ? И есть ли для многоуважаемого компьютера другие факторы скорости и производительности и где про такое прочитать коротко и в доступной форме ?
>>1643674Что ты называешь выкидыванием числа из списка, что ты называешь делением?Если ты про питон, хотя и про другие языки, то смотри про стоимости разных операций с разными структурами данных. Например операция удаления элемента из списка довольно дорогая, O(N), это если вначале списка элемент.Факторов скорости и производительности дофига.Тебе надо понимать структуры данных, их реализацию, как компьютер работает и на счёт чего тормоза появляются.
>>1643677А где такое узнать про стоимость и про факторы производительности ? Как гуглить что бы лишнего не было ?
>>1643681Надо читать все эти ебовейшие книжки по алгоритмам и структурам.Седжвик, Скиена.Сириус бизнес, ёпта.
>>1643665Cythonбайтоебствуй наздоровье>>1638346 (OP)В админке Джанги вижу, данные юзеров. Видно что пароли уже хранятся в виде хеша с солью, есть способ изменить алглритм хешировагия или убрать его, чтоб видеть пароли сразу? Где это делается?
Седжвика не смог в книгах найти вы чо мрази просто как фашисты ебаные книги в здоровые кучи кидаете а потом роетесь в них как свиньи ? Воистину у программиста ни эмпатии ни чувства прекрасного, обезьяна в очках как она есть.
>>1643729Преобразиться в кулцхакера, Властелина Небес и Преисподней, стать одновременно и всем и ничем, повелевать всем сущим при помощи лишь эфемерного
В былые времена обладал я знаниями очень мощными, мог переиминовывать объекты любые в PyCharm на всей странице сразу, вверху окна появлялось две строки - вбивай, не хочу. А сейчас забыл, дауном стал натуральным и найти не могу как делать такое. Помогите а ?
Правильно я понимаю, что скомпилированные при помощи Pyinstaller программы на Wiindows не запустятся на Linux, и наоборот? Как тогда получать кросс-платформенные приложения?
>>1643856Он всего лишь бандлит интерпретатор и скрипты.Получать точно так же - устанавливать скрипты и интерпретатор.
>>1644182>Для честностиДля чётностиОни это даже задокументировали, оказывается:> For the built-in types supporting round(), values are rounded to the closest multiple of 10 to the power minus ndigits; if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0, and round(1.5) is 2).Гвидо глубоко затянул, выдохнул, и решил, что надо так. ХЗ, может есть логика какая-то в этом. Дунуть надо, может допру.
>>1644201>ХЗ, может есть логика какая-то в этом.Так сейчас делает математика. Я не шутил, когда говорил, что это достижения последних лет. Дело там не в чётности, а в чередовании округления вверх и вниз.
>>1644201>>1644173Господи, как же я ебал мать этого выблядка Гвидо. Ему надо было уйти на покой еще года 3 назад. Нехуй насиловать Питон своей ебалой
Стоит ли задрачивать все стандартные либы питона, те прям все? Или просто знать что есть такие то и такие то? Я посмотрел, там много такого что я думаю никогда юзать не буду, и никто не юзает, нах они вообще нужны.И елси нужно, то как их оптимально задрачить чтобы знать? Примеры там хуй пойми какие вообще, читаешь и не понимаешь нах вообще либа нужна, ну кроме тех что форсили, по типу всяких сокетс и тд, я уж молуч про скапи. Те, если мне надо знать для создания сервера тсп сокетс, надо ли знать остальное?
>>1644217откуда ты знаешь, что это именно математики нагадили ? какая-то теория не налазила, или как?
>>1644230Невермайнд, я читал статью (на самом деле только абстракт, я туповатый), но там про именно альтерацию вверх и вниз; в питоне же действительно к ближайшему чётному приближают, а это инженерная рекоммендация, а не математическаяhttps://en.wikipedia.org/wiki/IEEE_754#Roundings_to_nearest
>>1644220Полезно представлять, что есть, и попробовать многое в каких-нибудь тестовых примерах.Так ты расширяешь свой кругозор, разные подходы к программированию и проектированию, как api принято строить и другое, что вообще с помощью языка можно сделать.В ряде случаев это тебя спасает от изобретения велосипеда.Хотя там, конечно, много специализированного, что не нужно обычно.
>>1644220Бумерок говна поел. Любой школьник-киборг для которого интернет и есть память смеётся над тобой как над питекантропом. Готовься к земле мразь, ты своё отжила. (Мотивирую как могу соре)
>>1644220задрачивать ради задрачивания нет смысла. просто периодически скань либы, за пару месяцев будешь знать, что там есть и где может понадобитьсяалсо многие стандартные либы либо легаси из нулевых, либо говно на палке, и их никто не использует
>>1644339погуглил за тебя, не благодари:https://www.jetbrains.com/help/pycharm/finding-and-replacing-text-in-project.html#replace_search_string_in_projectдалеко пойдёшь, братан
>>1644331Школьники гуглят хуёво, сам видел как пиздюк не мог простой скрипт для работы с файлами написать.
>>1644346Какие посоветуешь точно знать из стандартных, ну кроме сокеты конеш. И какие еще по типу скрапи и схожих, насчет фреймворков все ясно.
>>1644371Это не работает с некоторыми штуками вот print не мог переименовать вчера>>1644369Я то же с файлами не умею работать, а по английскими только начал гуглить, раньше как то не нужно было. А школьники просто смотрят в будущее и не акцентирую внимание на мелочах
>>1644390сходу не назову, половину стандартной либы где-то юзаю так или иначе. checkio.org наверни, пока оно еще существует. неплохо натаскивает по многим закоулкам стандартной либыдля баловства лучше всего поставить jupyter notebook, это такой интерактивный блокнот, где можно очень быстро прототипировать и тестить всякое говно
>>1643295>либо математическиДа и без словаря там бесконечное количество математических решений через нелинейные функции. Кроме очевидной 2/x, например есть бесконечное множетсов квадратичных функций типа x^2-4x+5.
ПриветПО вашим ощущением, насколько python востребован для веба и будет перспективен? Сам сейчас заебался писать на plsql и хотел бы вкатиться в backend.Пара знакомых коллег (может и пиздят), топят за ноду, но у меня почему-то сложилось впечатление, что это js стоит изучать только для фронта.В гугол умею, но звучит слишком красиво
>>1644539Молодец, ноунейм мальчик. Но что ты хочешь этим сказать и при чём тут программирование? Имеешь какое-то представление о школьной математике, здорово. Может ты как многие здесь даже учился в институте и знаешь про функциональные пространства L_0, L_1, L_2 и другие. Будем знать, что тут водится умный питонанон. Но как это поможет программированию на питоне?Не будешь же ты в реальной задаче вставлять такую формулу? Вот даже для трёх-четырёх точек?
>>1644622>что это js стоит изучать только для фронта.JS очень сильная штука для бэка, точнее нода. В чём-то сильнее и удобнее питона во многих задачах. JS просто как язык говно.
>>1644622А по первому вопросу, более-менее востребован и более-менее перспективен. Нода довольно удобна для асинхронных сервисов и задач, но питон намного удобнее для обработки данных, хоть асинхронные вещи там менее наглядные и очевидные.
>>1644634Да ну, в большинстве применений жс это борьба с его анальными выкрутасами для достижения цели. Но его роль в вебе и как встраиваемого движка это да, дает много профита при изучении.
Ребят есть 2 стула 2 программы. Как написать 3ю, которая по инпуту (1 или 2) будет запускать одну из них и передавать управление туда?
>>1644666fork()execv()Невермайнд это же питон тредhttps://docs.python.org/dev/library/subprocess.html#using-the-subprocess-moduleНо если что-то простое, то через шелл лучше, как выше посоветовали.
>>1644637пардон, ты пишешь про удобство питона для обработки данных - речь уже не про веб, а ds, аналитика? в эту область даже не планирую лезть, т.к. сомневаюсь в своих умственных способностях (может и для веба туповат, да)
Стоит Python 3.8.1, решил поставить PyQt5. По инструкции выполнил pip install PyQT5, а затем pip install pyqt5-tools. При проверке import PyQt5 никаких ошибок не возникает, но в папке pyqt5_tools нет designer.exe. Насколько я понял, проблема может быть в слишком новой версии Python. Если так, то какая на сегодняшний день актуальная версия Python которая поддерживает PyQt?
>>1644817Т.е. новые версии должны корректно работать с PyQt? А в чем тогда может быть проблема с отсутствием designer.exe?
Поясните за pyqtПытаюсь привязать таблицу к tableview как тут https://stackoverflow.com/questions/6927576/database-view-in-pyqtили тутhttps://stackoverflow.com/questions/20993084/how-to-display-data-from-database-in-table-view-in-pythonПишет:cannot import name 'QTableView' from 'PyQt5.QtGui'
>>1645099Привет. Скажи почему в описаниях всякого по Python всегда использую n+1 n-1 литералы что это вообще почему так откуда 1 и откуда n ?
>>1645423Что значит добавить?Если это список, то стандартно как к списку.Если у тебя предполагается добавлять, то инициализируй значения как список с одним элементом и всё.
>>1645448Ну вот например есть d=({'a':['a'],'b':['b']})я хочу добавить к key 'a' еще и значение 'c' чтобы стало d=({'a':['a','c'],'b':['b']})
>>1645483Кста ты по какой методе сейчас изучаешь питон, твой алгоритм действий ?Я короче смотрю егорова артема потом решаю задачки под его видео, когда несколько тем прохожу, смотрю видос Харьянова про алгоритмы, и ещё между делом пробегаю глазками книжку Седжвика и решаю на кодеварсе задачки. Но делаю все в ненапряжном темпе, я уже старый 30+ торопится уже некуда. А ты как делаешь рассказывай друг
>>1645899Смотря куда. Я на винде полноценно писал проект 7 месяцев на джанге, только редис и постгря в Докере были. Единственную проблему испытал только при конвертации docx в PDF и что нельзя блять смену раскладки на Caps Lock перенести нормально
>>1645903>Смотря куда.ну в это, в питонирование. Чтоб Через год устроиться на 30 тысяч рублей джуном. можно было любые эксперименты проводить и все пробовать без ограничений платформы.
>>1645905Ну вкатывайся с того, что тебе удобнее. Если вдруг понадобится -- поставишь виртуалку с линуксом, если дуалбут глаза мозолит. Заодно в последующих тредах расскажешь в каких случаях вкатываться строго через "злоебучий линукс".
>>1645905> в питонированиеВеб, ML, скриптонирование, формочки, направлений хватает.Для общего развития линукс пригодится. Есть ненулевая вероятность, что тебе достанется какое-нибудь некроговно, которое можно поднять только на линуксе. Ну и в идеале надо разрабатывать на той платформе, на которой будет крутиться проект
>>1645909Думаю меня хватит на веб и еще что нибудь простое. Никакого ML, компьютерного зрения и прочей чепухи я довольно тупенький.
>>1645903>и что нельзя блять смену раскладки на Caps Lock перенести нормальноОднострочник в AutoHotkey
>>1645750https://youtu.be/42gmCTdKwH8Ты вот такое умеешь ? Если нет, держи. Пригодится. Это самая бесячая хуяня из всех, в задачках.
>>1645973>>1645938Кстате чебики а вы всегда на что бы конец строки прожать свои ручонки неразвитые тяните к end’у ? Это реально так и придумали end который хуй знает где это конец строки и никак иначе ? Вы чо вообще за люди бля ?
>>1646088Ну видишь вверху как, а я всегда использую не самые оптимальные инструменты, а знаю я их пока не так много но даже с этого скудного выбора не могу найти оптимальное решение. Видишь как нагородил
>>1646100Ну тут стратегия обучения очень простая.Берёшь кусок своего говнокода и начинаешь целеустремлённо пытаться минимизировать количество строк. Путём генераторов, длинных паравозиков из методов, однострочных ифов и прочих лямбд-хуямб. Тут теде документация и стаковерфлоу в помощь.Потом через неделю пытаешься всё это говно прочитать и понимаешь, что вот как раньше оно было лучше.Вот. Несколько повторений из крайности в крайности и найдёшь золотую середину.
Как называется регрессия к произвольной функции как на desmos.com? В идеале хотелось бы указывать функцию к которой нужно приближать, функцию ошибки которую нужно минимизировать (вдруг у меня что-то иное, не среднеквадратичная) и функцию "веса" (чтобы можно было недостоверные значения с большой погрешностью использовать слабее - впрочем, это в функцию ошибки можно прописать). И есть ли либа под питон для этого? Мне понятно как написать это на крестах (по крайне мере для некоторых типов функций, чего будет достаточно в моём случае), но на питоне если написать вручную это будет очень медленно, а как внутри работает numpy, что код выполняется в 10 раз быстрее чем обычный питонокод, я не знаю - потому рассчитываю на либу.
>>1646100>знаю я их пока не так многоНу вот узнал новый для себя возможный метод решения. Так они и изучаются.
>>1646150>А быстрее никак ?Ну вот применительно с кромсанию строк. Запускаешь какой-нибудь ipython или jupyter-lab. Открываешь доку по строкам: https://docs.python.org/2/library/stdtypes.html и начинаешь один за одним применять методы и смотришь чё происходит. Так во-первых ты один за одним набираешь соплю-однострочник. А во вторых и в голове откладываешь, что вот же там где-то встречался же метод, который проверял все символы в строке - цифры.
>>1646050Первое решение тоже хуйня, соснет на http://huiwww.com, например. Тут идеально регулярками сделать, но можно и без них наворотить.Ну а у тебя просто коряво и неоптимально, это улучшается с опытом.
Почему после питона в ооп какие-то дураки приходят, не знают даже что такое конструктор? У вас разве нет конструкторов классов?
>>1646173Питон днище просто. Это вспомогательный язык. Если кто-то знает только питон (питон для него основной) - то это не программист даже, естественно он ничего не понимает даже про конструктор.
объясните нубу, как решается проблема конфликта имени сабмодуля и дефолтной либы?морщат лбы, выдумывая альтернативные названия?называют файлы с подчеркиванием?что-то еще?например, есть такой модуль:> shitfuck.py/> __init__.py> parser.py> token.pyи всё работало, пока я не попытался импортнуть те же dataclasses в файле shitfuck/token.pyи получил говна на лопате, так как в процессе импортов импортируется стандартная либа token, которую зашадовилоприкол в том, что вся структура shitfuck это файлы с названиями лексер, аст, парсеря думал, что модуль даёт неймспейс
>>1646212да, использую релатив импорт. я понял, что ошибка возникает только если я запускаю сам файл. на уровне модуля всё работает> from shitfuck import Token> print(Token('foo', 'bar'))> import token> print(token.__all__)нормально принтит и мой токен, и содержимое питоновского модуляв принципе, некритично. тем более что релатив импорты всё равно ломают возможность запуска файликов отдельно
>>1638346 (OP)Как вообще управляться с СУБД в Джанге? Мне вот во время тестирования приложения приходится часто очищать БД (или только какие-то конкретные таблицы) и заполнять ее какими-то dummy записями. Как это делать быстро? Файлы миграций стирать стоит?
Аноны, нужно сделать функцию, которая в конце будет выполнять execute для запроса в БД, иногда с параметрами, иногда без параметров. Как это лучше оформить? Есть бы параметры были всегда, то я просто сделал бы *args и передавал в функцию вместе с запросом, но как поступить если аргументов не будет? Передавать в функцию сразу тюпл? >>1646256Добавь нужные таблицы в админку и если что очищай через нее
>>1646134Забейте, просто через оптимизатор-минимизатор в scipy сделал, там есть всё необходимое. Я и забыл про него.А я какое-то бесполезное sklearn нашёл и всё листал его. Вообще тоже прикольная штука с виду.
Анон, помоги, я чот совсем не могу найти.Нужна либа, с помощью которой я буду выполнять функцию как в кроне "/15 " или "0 *". В жаес есть хороший node-schedule, а в питоне одна хуита.Мне не нужно запускать функцию именно в #.00, #.15 или #.30 минут, никакие таймеры не помогут тк они начинают отсчёт в момент запуска программы schedule, например: next run at: 2020-03-30 20:43:46 MSK
>>1646492Получай время, вычисляй следующие #.## минут, нужные тебе, и ставь таймер. Но, конечно, висеть всем интерпретатором и скриптом постоянно в памяти, чтобы раз в 15 минут запускаться, вместо того, чтобы заставить инит его вызывать, когда нужно, это грустная идея.
>>1646505>Я зелёный совсем, не знаю как правильно.На линуксе делаешь name.timer содержимого[Unit]Description=Runs name every quarter hour[Timer]OnCalendar=:0/15:00 (или :0,15,30,45:00 , если тебе так понятнее будет потом читать) [Install]WantedBy=timers.targetА свой скрипт помещаешь в name.service:[Unit]Description=Veri useful name[Service]Type=simpleExecStart=/path/to/you/script.py
>>1646511Я же говорю - он начинает отсчёт в момент запуска программы.Как мне его, например, заставить вызывать функцию каждые 15 минут? 21.00, 21.15, 21.30, 21.45...>>1646513Это вообще не вариант, программа работает в докере, привязывать её к системному таймеру не хочется. Нужно именно одну функцию запускать переодично.
А может кто помочь? Мне нужно вывести квитанцию в пдф формате, но я чёт не могу найти нормального пакета для работы с пдф. Знает кто, как можно решить проблему?Я пока не нашел ничего лучше, чем сделать сначала html страничку нужного формата, а потом переформатировать её в пдф.
>>1646515> программа работает в докере, привязывать её к системному таймеру не хочетсяsystemd умеет подхватывать таймеры из контейнеров. Из памяти не напишу, но там не очень сложно было.
>>1646554Ну, оно и писать умеет. https://pythonhosted.org/PyPDF2/PdfFileWriter.htmlУ тебя сейчас квитанции как размечены?
На чем ньюфагу потренироваться, дабы хоть как-то вменяемо освоить и набить руку по ООП? Больше конкретики по возможности...
>>164658015 лет стажа сейчас тебе все пояснит, для работы с пдф надо просто взять и начать сосать хуй и больше никогда к этому говну не притрагиваться
>>1646593ПДФ отличная вещь, ты просто пока не встретился с хорошими практиками его использования. Проблема в адобе. https://www.youtube.com/watch?v=158bJFTETRI
>>1638346 (OP)Как реализовать перемещение элемента по списку? Есть список a и дан индекс i элемент которого надо переместить на n позиций вправо или влево в списке. Число n либо положительно (тогда элемент сдвигается вправо), либо отрицательно (элемент соответственно сдвигается влево)
>>1646605Круто а дальше-то че? Надо потом писать овердохуя if-ов, чтобы проверить куда попадает ебаный элемент, есть какой-то способ сделать это лаконично?a = [0, 1, 2, 3, 4]idx = 2n = 1Надо на 1 позицию вправо сдвинуть двойку, если ее pop-нуть, то индексы уже изменят свое значение, поэтому предварителнь онужно вставить сраный if и не один. Это нагромождение из говнокода какое-то
>>1646610После вставки будет такое же, так что ничего не меняется, норкоман.a.insert(idx+n, a.pop(idx))
>>1646529>Я пока не нашел ничего лучше, чем сделать сначала html страничку нужного формата, а потом переформатировать её в пдф. Как минимум видел в двух местах, где в проде пдф именно так и генерился. Наверное в этом есть смысл.
>>1646636В этом есть смысл, если пдф с нуля надо делать, потому что у пдф нет plain text representation. Ты берёшь язык разметки, который знаешь, и создаёшь саму страничку им. Обычно это tex, но можно вполне и через html сделать.
>>1646529Самый правильный путь, именно HTML делать и конвертировать в pdf. Разметка PDF сама по себе очень сложна и не документирована, не знаю, как сейчас, но ещё недавно парсить pdf было просто нереально, никаких нормальных свободных решений не было, только совсем слабые. А вот решения html в pdf есть. При этом есть поддержка специальной дополнительной разметки, если тебе надо в pdf делать, скажем, шапку и подвал, чтобы разрыв страницы был в нужных местах и не был в ненужных и т.п. Всё для этого есть.
>>1646665> Разметка PDF сама по себе очень сложна и не документированаЛолшто? Спека не только доступна, но и является промышленным стандартом. PDF - подмножество постскрипта, нихуя сложного в генерации PDF нет, можно хоть вручную в блокноте писать. А вот парсить PDF сложно, да, но это в основном из-за его природы, семантики там мало, упор делается на сохранении неизменности представления.
>>1646689> >поэтому не работаеттак ведь именно так оно и работает. о чем прямым текстом написано в сообщении. двач же рекомендует есть суп ножом, хотя я давно самостоятельно нашёл ложку
Ребзи салам, являюсь чисто нубом этого дела Но желание разобраться есть. На гитхабе есть скрипт, называется OnlyFans DataScraper, позволяющий парсить фото И видео с аккаунтов, так вот совсем немогу разобраться как с ним работать. Застрял на моменте что нужно достать токены через логин на самом сайте. Можно ли на пальцах объяснить первобытному что тыкать дальше? Мир вашему дому
Проиграл с сохранения в json. И даже предупреждения нет, что мой словарь сломался.Говно ебаное. Питон, джаваскрипт, луа и все остальное скриптоговно без типизации.
Не врубил когда в Джанго юзать метод save с моделями, что изменения в БД остались. Всегда?.. После создания объекта с помощью метода create тоже юзать? А после удаления? Че-то запутался
>>1647179Я знаю, джаваскрипт уже обругал же. Я видел этот угрёбищный пример, где нужно догадаться чему равно '2'+3 и '2'-3 или ещё что-то такое, где отсутствие минуса для строк вызывает приведение типа.
>>1647141>>1647195Сам ты говно. В этом примере как раз чёткая типизация, все ключи приводятся к строке, никакой магии нет. Ты когда любой формат хранения данных используешь должен смотреть, что там может быть ключом, а что значением. Это стандарт формата, блеять! Если ты с ним через C++ работаешь, всё тоже самое будет. В XML у тебя тоже только строки. Если тебе нужно более сложное хранение, то используй pickle. В этом формате ты можешь очень сложные вещи хранить, пересылать, и всё корректно. Правда только между питоновскими скриптами, хотя какие-то модули для JS есть.
>>1647195Кстати вопрос на засыпку: почему несмотря на такую стремную типизацию производительность ЖС топовая по сравнению с другими скриптовыми языками?..Динамическая типизация из ниоткуда не берется, за нее приходится платить (в том числе и производительностью). Так почему ЖС не особо-то и платит? спрашивал в жс-треде, но там гидроцефалы с половиной мозга, спорящие что круче - Вуе или Реакт
>>1647245А если я создаю еще один .py файл, и пишу туда в UTF8 строки типа "d = {1: 100, '2': 500}", чтоб потом командой import их оттуда доставать, то меня можно считать Сверхразумом или я просто долбоеб и в любой компании меня обоссут, если я в таком признаюсь?мимоанон
>>1647251Насколько я помню, там только математика быстрая. Ну и искаробочная асинхронность.А в всяких утилитарных задачах вполне себе соснет местами.
>>1647257Движки JS используют JIT - компиляцию в машинный код во время исполнения, это позволяет сильно ускорять некоторые виды операций. И асинхронность там тоже в движке поддержана. Для питона тоже есть подобные инструменты. pypy - JIT интерпретатор питона, на текущий момент поддерживается только питон 3.6. Какой-то вычислительный код он может в разы и даже десятки раз ускорять. Какой-то нет.Для асинхронных задач иногда можно использовать uvloop, это ускоренный движок для event loop из asyncio. Правда pypy и uvloop не совместимы между собой.
Аноны, помогите, как грамотно сделать, постоянные попытки try-ем с измененными аргументами, пока try не завершиться успешно. Через отдельную функцию? Использовать какой-то алгоритм?
>>1647394У try есть else, который выполняется, если не было эксепшна.Так что заворачиваешь в while и в else брекаешься.
>>1647394while True:___try:_______par1 = xxx_______par2 = yyy _______func(par1, par2)_______break # выполнится только в при успешном исполнении func___except:_______pass # здесь тоже можно манипулировать параметрами, в зависимости от кода ошибки, например
>>1638346 (OP)Можно ли как-нибудь ускорить питон, чтобы быстрее работал?— Тебе надо понять, почему не хватает скорости. Возможно у тебя плохой алгоритм или ты не так структурами данных пользуешься. Если же твой код грамотный, то есть способы именно ускорить исполнение:а) самый модный и новый - модуль numba, ставится через pip. Он позволяет делать компиляцию на лету нужных функций, к которым ты просто приписываешь декоратор @jit, и можешь сильно ускорять их работу. Полезно для вычислительных задач.б) PyPy - альтернативный интерпретатор питона, тоже работает по принципу JIT. Тоже может ускорять код. Минусы - не совместим с некоторыми внешними библиотеками, поддержка версий отстаёт, сейчас только питон 3.6, когда на дворе уже 3.8.в) cython - компиляция кода в промежуточный код на C. Требует дополнительной работы, правки кода, не рекомендуется, если ты только точно не знаешь, что это тебе надо. Пользуйся лучше numba или pypy.
>>1638346 (OP)>—>>1647678Как можно ускорить программу на питоне, без лишней возни?1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.2) код можно иногда радикально ускорить, используя JIT компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
Анон, если ты можешь читать, но не можешь писать сюда из-за прокси, попробуй, например, вместо .hk домен .pmПЕРЕКАТ>>1647702 (OP)>>1647702 (OP)>>1647702 (OP)>>1647702 (OP)>>1647702 (OP)
У меня вопрос. Вот я осилил учебник по питону, смотрю на скрипт, понимаю как он работает, как что и с чем связано. Но когда дело доходит до написание своей программы, даже самой простой, в голове появляется обезьянка и стучит в тарелки. Такое ощущение, словно мозг напрочь не может вспомнить нихуя, либо путается в строках и выходит быдлокод. При этом если берешь чужой похожий код, то можешь нормально его корректировать под себя. Как с этим бороться?
Может кто-нибудь подсказать, работаю с докером впервые, docker-compose up:Creating sso_celery-beat_1 ... error type "bind": bind source path does not exist: /f/test/ssoERROR: for sso_celery-beat_1 Cannot create container for service celery-beat: invalid mountCreating sso_web_1 ... errorERROR: for sso_web_1 Cannot create container for service web: invalid mount config for type"bind": bind source path does not exist: /f/test/ssoERROR: for celery Cannot create container for service celery: invalid mount config for type"bind": bind source path does not exist: /f/test/ssoERROR: for celery-beat Cannot create container for service celery-beat: invalid mount config for type "bind": bind source path does not exist: /f/test/ssoХотя сам путь есть (запускаю оттуда)Перелопатил многое, docker login, менял что-то в докер файлах проекта, но увынаткнулся на этоhttps://qna.habr.com/q/706007Но там трудно чето вообщеПонимаю, что нужно путь абсолютно в строке указать, но как хз