Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
>>2213470 → ни разу с этой хуйней не работал но асинхронные коллбеки в пистоне могут работать по разным принципам, их могут высирать в отдельном треде, а могут запускать в asyncio ивент-лупе как в жс
чтоб проверить тред, введи логирование и передай туда threading.current_thread().name и threading.current_thread().native_id
>>2213368 → Видел на ютубе плейлист от не очень популярного чела, который к асинхронщзине на последнем видео проходит весь путь начиная прям с оси, это наверно тебе нужно. Пиздуй искать.
Прошел собес в Хуяндекс на Мидла. Ни одного вопроса по технологиям, все вопросы по питону, 2/3 собесов так вообще чисто по алгоритмам с литкода. Ахуенно они хантят. А если я даун и не умеют работать с эластиком, постгресом, кубером, реббитом, кафкой? Все равно возьмут лол, прост потому что алгоритмы надрочил. Каеф.
>>2213821 >Прошел собес в Хуяндекс на Мидла. >А если я даун и не умеют работать с эластиком, постгресом, кубером, реббитом, кафкой? Дык их надо знать не кодеру, а ДевоПсу. Тебе просто дадут гайдлайн, где будет описано, в какие интерфейсы что в каком формате слать и как в stdout выводить.
Поясните, нахуй нужен петон? Куда с ним можно устроиться кроме МЛ и БигДата? Ну выучил я синтаксис питона, что дальше делать? Вот у жскрипетров все понятно - фроненд он и есть фроненд.
Сап, Антоны. В общем, ковыряю я джангу на локалхосте, только учусь. И смотрю я так, там есть всякие удобства для работы с БД, реально круто всё. НО. Мне как-то с базами привычнее общаться на кастомном SQL. В том числе самому рулить вьюшками и функциями с нарезанными правами и обозначенными транзакциями. Видимо, сказывается опыт Operations-универсала и ВУЗовские времена с дипломом на Delphi. Скажите, плиз, работать в джанго будет эффективнее через модели или таки через чистый SQL.
А ещё, пока писал, подумал -- если мне модели никуда не упираются, то, может, проще Flask взять? Я, правда, о нём толком не читал даже, но, вроде, из MVC у него свой Controller, вместо Models я могу использовать чистый скуль, а View наверняка реализуется той же Jinja, только её нужно отдельно подключить?.. А работает Flask вроде бы как быстрее.
>>2214137 >Куда с ним можно устроиться кроме МЛ и БигДата? Технически - куда угодно. Хочешь - в бэк на Django/Flask, хочешь - на десктоп (PyQt, Tkinter), хочешь - в автоматизацию и так далее, и тому подобное. В принципе и на мобилках что-то есть, но там такое... Есть PyQt в Sailfish/Аврора и Kivy, который вроде ругали, но не вполне понятно, за что.
Впрочем, самые традиционные сферы - это backend в том числе крупных проектов: Инстаграм, Пинтерест, Нетфликс, Дропбокс, Реддит и т.д., плюс у многих есть отдельные системы на Python даже если сайт на каком-нибудь позорном .NET и те, где Python используется как "штука, на которой можно быстро набросать ПО для связки": BD, ML, QA и т.п.
Впрочем, есть немало компонентов и крутых систем, написанных на чистом Python, например... нашёл занятный список: https://proglib.io/p/great-python-projects У больших контор ещё всегда есть огромный зоопарк бэк-сервисов (типа "а вот эта хуйня у нас поднимает и настраивает виртуалки, а вон та - следит за актуальностью пользователей и интегрирует 1С:Кадры или как её там? А, похуй! с AD, а вот это наш IdM, тут рулятся права") и они очень часто пишутся на Python потому что просто, быстро и надёжно.
Я лично на нём пишу пэт-проекты для web (в том числе API) и CLI с перспективой в Desktop а, если повезёт, то и в iOS.
Анон, здравствуй. Есть задача на степике: "На вход программе подается два натуральных числа a и b (a < b). Напишите программу, которая находит все простые числа от a до b включительно. Формат входных данных На вход программе подаются два числа, каждое на отдельной строке. Формат выходных данных Программа должна вывести все простые числа от a до b включительно, каждое на отдельной строке."
Объясни, почему работает код на первой картинке, но не работает код на второй картинке(выводит единицу).
>>2214263 Смотри, во втором случае проверка i != 1 не должна увеличивать переменную count, следовательно, не должно выдавать 1. Почему выдает тогда? Ну а в первом вроде понятно, проверка идет уже перед печатью, следовательно если i = 1, то i не будет выводиться.
Ты можешь популярно объяснить? Я что-то не так понял?
>>2214140 >Скажите, плиз, работать в джанго будет эффективнее через модели или таки через чистый SQL. ORM нужны не для упрощения разработки, а для упрощения поддержки. Это промежуточный слой между твоими моделями и таблицами в БД. Благодаря этому у тебя есть возможность что-то дорабатывать в моделях, менять, и всё достаточно прозрачно, без необходимости помнить о всех запросах к БД, которые где-то в коде могут быть.
>А ещё, пока писал, подумал -- если мне модели никуда не упираются, то, может, проще Flask взять? Тогда лучше смотреть на асинхронные решения вроде aiohttp или FastAPI. С последним не работал. Асинхронность как раз на таких задачах очень хорошо работает. И это то, с чем проблема у синхронной джанги.
>>2214444 фастапи. В джанге технически теперь есть асинхронность, но судя по коду юзают ее не то чтобы часто, да и в целом на таком старом комбайне это больше похоже на приколоченный сбоку костыль.
Не могу разобраться с блядским тайп хинтингом. Вот смотри, анон, есть у меня родительский класс Base и два наследника Foo и Bar. И в некотором классе Application я хочу аттрибут с инстансом либо Foo() либо Bar(). Как мне указать тип этого аттрибута, чтобы пайчарм и mypy не ебали мозг ворнингами, что ожидается тип Base, а я ему пихаю Foo и т.п.
>>2214657 Все равно было бы неплохо разобраться, чем заменить Union на случай, если вариантов наследников будет становиться со временем больше. Хотелось бы как-то раз и навсегда обозначить, что в этом аттрибуте могут быть любые наследники Base.
>>2214669 А, я понял. Вчерашний пердолинг с этой хуйней был вызван тем, что я пытался в аттрибут запихнуть не инстанс, а класс Foo или Bar, чтобы позже дернуть self.foo_or_bar() Если не выебываться, то простые хинтинги работают, как ожидается.
>>2214254 > Для этого надо жс знать все равно же? So-so. Чтобы натыкать в нужные места страницы bootstrap'овские стили и скрипты прямо ЗНАТЬ не надо, достаточно базового HTML и примеров из интернетов. Впрочем, я выкручиваюсь ещё проще: я сам делаю рабочую, полнофункциональную заготовку, а потом обращаюсь либо по приятелям из сети, либо на фрилансовых ресурсах, чтобы они мне за копеечку малую красиво всё обернули: говорю "видишь это работающее дерьмо? Сделай фронт красивым, вот тебе мои шаблоны на Jinja2, держи, там есть все вызовы." Я так-то и CSS не знаю и даже, стыдно признаться, с вёрсткой div'ами не до конца освоился. Я отличаю "хорошо" от "плохо", но сделать по красоте не получается потому, что не знаю, "что именно нужно сделать, чтобы было хорошо", так что пусть это сделают за меня. Главное, что я решил для себя -- не жадничать и в первый раз, особенно новому человеку, можно заказать просто сделать "по красоте" на его вкус, но потом за каждую конкретную доработку (там, где его вкус дал маху) не сраться, а отдельно доплачивать.
Я написал скрипт для рефраша апи хайпикселя https://api.hypixel.net/skyblock/auctions Заставил его в общем то выписывать акции и цены но возникла проблемка в том что сайт не дает скрипту работать если он работает больше нескольких часов и у меня вопрос как это обойти? Насколько я понимаю мне надо вставить туда прокси а как это сделать ибо мне нужно все еще хорошее интернет соединение для того что-б у скрипта был смысл работы и возник вопрос а как в скрипт прокси пришить? В txt формате любые
>>2214760 на апи через requests ходишь? ему параметром можно прокси передать алсо хедер меняешь в запросе? там вроде по дефолту чето типа python-request было, мб из за этого мозги ебет
>>2214712 Ну офк спрос на джангу больше, фул асинхронщина реже требуется (хотя честно говоря там все оч просто и можно дохера чего быстро накидывать не хуже, ем в джанге, любители перегруженных монстрофреймов заебали).
>>2214777 >любители перегруженных монстрофреймов сеймыч, на джанге только какие нибудь интернет магазины и бложики клепать, как люди в одной вакансии употребляют "микросервисная архитектура" и "джанга" я просто хуй знает, там такой ебаный монстр делается после startproject, что я просто хуй знает почему его до сих пор все юзают ну удобный там DRF, и хули? сейчас не 2015 год, есть сваггеры-хуягеры и рест строится как два пальца
>>2214787 можешь написать отдельный скрипт, который будет проверять живы ли прокси, и если их слишком мало живых осталось идти на какой нибудь сайт где они лежать и парсить еще пачку оттуда
Можно ли в стандартном логгере сделать уровни "независимыми" друг от друга? Чтобы вместо установки уровня "дебаг" и получения всего, что выше, я мог отдельно включить логгирование, скажем, обращений к базе, отдельно логгирование каких-то расчётов и т.д.? А то запихивая всё в один debug, куча лишнего когда хочется проверить лишь одну функцию, которая вполне себе независима. Грубо говоря, чтобы была проверка не на log_level >= logger.level, а log_level in logger.enabled_levels? Если нет, есть ли какой другой общепризнанный модуль, где это реализовано?
Сап двач. Решил сделать пет-проект с целью изучения Джанго. Взял готовую учебную базу Northwind с сайта мелкомягких(в ней есть такие сущности как товары, клиенты, поставщики, сотрудники - классика), сделал несколько соответствующих приложений с крудами, валидацией формочек, моделей, админку делаю. Посоветуйте, пожалуйста, каких ещё можно фич реализовать? Думаю поиграть с созданием отчётов или с REST API - никогда с этим не работал, как и файлами формата json. Т.к. нет реального опыта, не знаю, что ещё можно тут придумать.
>>2214783 >как люди в одной вакансии употребляют "микросервисная архитектура" и "джанга" я просто хуй знает Это от непонимания. Тобой. Что значит "микросервис". Микросервис не обязательно маленький и юркий, он может быть сколь угодно монструозным. НО! Он должен решать (и решать хорошо) одну конкретную задачу. Тогда проект, разделённый на массу микросервисов, будет иметь преимущества при разработке, масштабировании до всяких HighLoad и т.п. Например, ты пишешь тот же магазин, но выделяешь сервисы авторизации отдельно, оплаты отдельно, взаимодействия с базой склада - отдельно. И каждый из них может быть хоть на джанге (если в этом есть какой-то смысл), хоть на хаскеле, хоть на Асме. В какой-то момент начинаются проблемы, затыкается и тормозит сервис оплаты, ты берёшь и увеличиваешь scale для payment-подов в ReplicaSets и всё. Иногда это дешевле (и всегда - быстрее), чем оптимизировать код.
Тут надо оговориться, что джангу можно засунуть в микросервис. С одной стороны. А с другой там архитектурно создаётся проект, а внутри проекта - приложения, которые по большому счёту и должны быть микросервисами. То есть архитектурно джанга плохо адаптирована для микросервисов, хотя это и не делает такую разработку невозможной.
>>2214440 >ORM нужны не для упрощения разработки, а для упрощения поддержки... В целом понятно. Если мне в каком-то запросе нужны будут данные, не предусмотренные вьюшкой, то мне придётся править и представление и приложение, а в случае со штатными инструментами -- можно обойтись только приложением... Я подумаю ещё раз, но пока склоняюсь к SQL. > Тогда лучше смотреть на асинхронные решения вроде aiohttp или FastAPI. Посмотрел. Первое и мельком. Но если с Джангой я понял, как получить сайт за пару часов (а полный проект на видосах был часов на 14) и все инструкции были последовательны, с Фласком до Jinja дошло ещё быстрее, минут за 30 (правда, без баз, настроек, админки и прочего), а вот для aiohttp всё начинается откуда-то с середины и сразу городится неслабый огород из несвязанных файлов с непонятным кодом. Возможно, все авторы манов, которые мне попались исходят из того, что вкатыш уже съел целую овчарню в веб-кодинге и асинхронщине, но у меня кейс другой. Пойду, покурю второе.
В любом случае спасибо за совет. Не уверен, что асинхронщина мне прям сильно понадобится, но почему бы и не освоить.
Как вариант -- напишу API на Flask для начала, а там -- буду думать и, может, даже перепишу. На то оно и пэт.
>>2215022 > Микросервисы на питоне это что? То же, что и на C++, Rust или чём угодно ещё: небольшая часть системы, решающая конкретные задачи. При этом микросервисная архитектура подразумевает, что вся система должна состоять из таких небольших кусочков, общающихся друг-с-другом по оговорённому API.
Как правило современные микросервисы реализуются таким образом, чтобы быть упакованными в контейнер наподобие Docker и управляться системой оркестрации наподобие Kubernetes.
Для больших, огромных и гигантских проектов такое разделение решает уйму вопросов: 1. Упрощает разработку и поддержку (небольшие куски проще реализовать); 2. Упрощает тестирование (если у тебя есть конкретный кусок кода, отвечающий, за конкретный функцонал, то тебе нужно просто убедиться, что он правильно отвечает на правильные вопросы (и выдаёт понятные системе ошибки если вопросы некорректны) и для этого достаточно гонять его API, а не всю систему и каждое место, откуда может быть такое обращение) 3. Упрощает масштабирование, как описано выше: >>2214955 >ты берёшь и увеличиваешь scale для payment-подов в ReplicaSets и всё.
А ещё это модно, поэтому даже крохотные, маленькие и средние проекты теперь стараются делать по микросервисной архитектуре. Хотя под с двумя страничками и рядом HA-кластер DB смтрятся довольно смешно.
>>2215166 Графоний не пишут, а какую-то внутреннюю логику можно, хули нет? Но он несколько тяжеловесен для этого, обычно берут какие-то луа или подобные залупки.
>>2215166 Смотря что понимать под играми. Графику? Ее врядли пишут, тут только низкоуровневая хрень, только хардкор. Логику клиента? Можно, если она не слишком тяжелая. Логику веб-серверов? Да пожалуйста. Для этой цели вообще любой язык подойдет. И да, это тоже игра. У меня бек в игре по объему в 6 раз больше клиента, потому что вся логика по сути там происходит, а клиент только ее пользует.
анимация в pyqt
Аноним17/11/21 Срд 18:56:48№221524273
Как сделать такую же анимацию руки с мышью как в bongo cat cam. Если кто знает подскажите хотяб название этого эффекта или анимаций
анимация в pyqt
Аноним17/11/21 Срд 18:57:36№221524374
Как сделать такую же анимацию руки с мышью как в bongo cat cam. Если кто знает подскажите хотяб название этого эффекта или анимаций
>>2215072 А как это в практическом смысле выглядит? Типа папка для авторизации, где свой какой-то докерфайл с подниманием сервера и aiohttp, далее там папка оплаты какая-то и опять aiohttp какой-то, который выдаёт свои странички... и оно всё как между собой потом общается типа подписи какие-то цифровые между сервисами или типа просто потому что в одной сети находится и...? И потом типа все это собирается в докер композ или чем-то сложнее.
>>2215568 У меня нет никаких файлов с логами, и нет никаких модулей. Есть лишь один среднего размера скрипт, в котором иногда что-то надо отследить (при обновлениях ошибки в результатах появляются, скажем). Выбор между фильтрацией кучи лишнего говна и ручным проставленим безусловных принтов в тех местах, где нужны подробные данные (вплоть до значений в каждом цикле и т.д.). А хотелось бы просто активировать нужный тип логов и получить только то, что надо. Я просто даже не знаю, как искать, ничего толкового не гуглится, кроме примитивной работы с logging модулем. Даже аналоги не упоминаются, будто их нет.
>>2215603 >где нужны подробные данные В смысле, там, где они нужны прямо сейчас, с последующим удаленим после отладки. Разумеется, вариант не очень удобный.
>>2215603 У меня в принципе другое задание, но чтоб не копипастить код, вырезал конкретный кусок и упростил до той постановки что скинул. Самому же буит милее если адаптирую и пойму
>>2213582 Только сейчас заметил твой ответ. Спасибо. Проверил. Везде MainThread. Возможно, после каждой загрузки файла весь интерфейс виснет на пару секунд по каким-то не зависящим от меня причинам.
>>2213693 Видел на ютубе одно видео, не знаю, как называется, но очень хорошее видео, пойди, посмотри, ну поищешь там сам, найдёшь, там ещё парень такой в пиджаке что-то рассказывает. мимо
>>2215629 Этот плейлист гуглится по запросу "асинхронность python" прямо на первой же странице одной из первых строчек. Не ебу, как он умудрился его пропустить, если так загорелся желанием понять кишки асинхронности.
Простой вопрос, есть строки в python str = '☽ Луна' print(str) в результате что-то не то с кодировкой и на выходе вместо символа луны прямоугольник, сам код в кодировке utf-8
>>2215780 Там в компоузе поднимается контейнер с редисом. Думаю, это намек на Celery, оно же через редис работает. Ну чтобы остальные не ждали пока поток занят обработкой одной картинки
>>2215633 Так а откуда ж ему знать, что первый результат — это именно то, что имели в виду, если никаких конкретных опозновательных знаков не дали ("не очень популярный чел" это хуйня)? Если так просто ищется, мог бы и скинуть ссылку сразу, если уж влез "помогать".
>>2215788 Ну збс. У тебя там еще и докер. Но само наличие редиса нихуя не говорит о асинхронности. И даже не требует наличия селери. Это разные вещи вообще. В т.з. ни слова про асинхронность. Джанга в проде умеет в несколько воркеров, так что ждать никому не придется. если ты только не запустишь туда 50 одновременных загрузок гигабайтных картинок.
Узнай что конкретно нужно и уже тогда спрашивай. Если будешь делать то, что тебе кажется, можешь сделать хуйню.
>>2215594 >Или как это? Что-то не особо представил себе. Можно папка, можно целый сервак, можно что угодно. Вот, допустим, у тебя есть сервис авторизации и управления доступом, с неким API, пользователь открывает страницу/карточку в системе/ещё какую-нибудь хурму, большой сервис берёт и по API спрашивает "SIDSession ID, PathЧто пытаются открыть: можно?" и получает "да"/"нет"/"пусть сначала авторизуется". Если получил "да", то открывает запрошенный ресурс, если "нет" -- выдаёт access deny, если третий -- открывает окошко логина. Так вот, для внешней системы не интересно, как внутри сервиса авторизации устроено назначение и разграничение доступов, проверка пароля и прочее, оно знает только как спросить за доступ и как реагировать на ответы. Если сервис авторизации и контроля доступа кроме этого ничего не делает, то это микросервис вне зависимости от того, насколько он большой. И ещё раз, неважно, есть ли там папочки, Docker (который вообще говоря хоть и позволяет удобно работать с микросервиами не заточен именно на них), Swarm/Kubernetes или ещё что, хотя они дают свои плюшки (про них я отдельно кое-что могу рассказать, конечно, но сейчас не важно).
С другой стороны -- монолит. В монолите нет выделенного сервиса, авторизацией занимается совокупность методов, находящихся в основном коде системы.
Итак, о профитах: > Упрощает разработку и поддержку Когда приходит тикет на доработку системы авторизации ты берёшь ограниченную часть кода, которая ничем кроме разграничения доступа не занимается. Кода меньше, связей с внешними системами меньше, разобраться проще, наделать ошибок -- сложнее. Бонус: повышается качество и надёжность системы в целом. > Упрощает тестирование Ты запустил этот сервис в тестовом контуре с тестовой БД и шлёшь ему по API разные запросы и слушаешь всякие ответы. Это легче, чем взять целиком сайт или программу и тыкать в разные её куски, чтобы понять, не сбойнёт ли где контроль доступа. > Упрощает масштабирование Пусть даже без кубера. Система контроля доступа изолирована и может быть запущена отдельно от остальной системы, а значит, если ей не хватает ресурсов можно поднять 2, 3,...100 инстансов и настроить балансировщик (DNS Round-robin, NGINX или аппаратный балансер, HA-Proxy, ReplicaSets -- не важно, главное, чтобы Ops это умел).
О недостатках: 1. Накладные расходы ВЫШЕ. Передать значения в свою же функцию проще и быстрее, чем обернуть их в запрос, передать, дождаться ответа, распарсить этот ответ... 2. Повышается общая сложность проекта. Иметь разрозненные куски и поддерживать связи между ними, вовремя актуализировать API в случае изменений... В общем, возни уйма.
Реально профиты от микросервисов превышают недостатки только в больших и выше проектах, они прекрасно живут в огромных, иногда приживаются в крупных, в гигантских это просто единственный пристойный путь потому что там внутренних связей OVER ДОХУЯ. В мелких же, небольших и даже средних проектах (вплоть до интернет-магазина со средней нагрузкой, примерно) лучше не заморачиваться. Но это не значит, что нужно класть хуй на HA-DB, CDN, DDoS-Protection и прочее.
>>2216165 Я уважаемый разработчик на фрилансе. В данный момент пишу из Мельбурна. Сейчас допью бутылочку Dow's, "Quinta Senhora da Ribeira" и пойду спать
>>2213498 (OP) Я пишу класс который при инициализации объекта шуршит по ФС считывает файлы и делает всяческие проверки внешнего мира. Соответственно я не могу гарантировать что все эти проверки закончатся корректно. Есть какой-нибудь механизм который скажет, что объект не инициализировался? Типа вместо объекта взять и вернуть None. Если сделать return None в __init__() - не работает. В голову приходит добавить свойство .status, в который писать статус, но имхо это костыли.
Привет. Несколько лет назад я учился в университете (онлайн), но не доучился. Я изучал полный стек, java и C ++. Сейчас я начал 7-месячный курс Python. Раз в неделю будет домашнее задание. Я учился много лет назад и все забросил. Не могли бы вы, добрые люди, помочь мне с домашним заданием раз в неделю?
>>2216490 Что ты имеешь в виду? Чтоб за тебя домашку всю делали? Тут дураков нет. Если какие-то конкретные вопросы будут, задавай, добрые люди ответят, так и быть.
>>2216611 Ничего особо сложного там нет, а смотря на остальной детско-тиктокерской понос у него в аккаунте, он и это где-то подрезал и собрал по кускам для видяшки.
>>2216693 Где есть коммерческая ценность. Всякие рилетерские штуки, маркетплейсы, каталоги с контактами, соцсети. Там заодно есть защита от дурака, так что можно попрактиковаться с асинронщиной, очередями, распределенностью, анонимизацией и прочими актуальными ништяками.
Через пару дней нужно провести собеседование для соискателя на позицию Python-разраба с уклоном в Pandas. Антош, какие бы ты вопросы задал по Pandas для уровня junior+ ?
Джанго при тестах отправляет почту в каком-то особом режиме? Когда посылаю запросы с локала всё отправляется, когда запускаю тест, тоже пишет, что всё отправляется, но на почту уже нихуя не приходит.
Если вызывать sys.stdout.write(msg) то моя msg вбрасывается в стандартный вывод без всякого форматирования, в то время как print(msg) печатает сообщение с новой строки
Конечно была идея писать: msg = '\n' + msg + '\n'
Сообщение в конце и в начале получает перевод строки, но если выводить несколько таких подряд, то получаются двойные переводы строк, а в print такого нет. Как фиксить блэт?
>>2216879 >junior Как отрыть csv, excel Чем отличается loc от iloc как сделать сводную таблицу сортировка использование pd.merge >+ Подключение к sql Что такое groupby перевод столбца во временные ряды, как извлечь кол-во дней из даты использование pd.concat создание мультииндекса использование pd.cut, отличие от pd.qcut как создать именование агрирование по groupby
Асинхронный словарь/демультиплексор. Если значения в нем нет то повисаем и ждем пока оно появится, как только появится - возвращаем. Норм тема? Какие подводные такое юзать на реальном проекте вместо постоянного опрашивания через while True и time.sleep?
>>2216243 >Я пишу класс который при инициализации объекта шуршит по ФС считывает файлы и делает всяческие проверки внешнего мира Проводишь эти операции отдельной функцией, и от её результата зависит, присвоится ли инстанс класса в переменную или None. Если тебе прям пиздец как нужна инкостыляция, пишешь эту функцию классовым методом.
>>2216632 >Ничего особо сложного там нет Для синьора типо тебя или парня с видео - бесспорно. А для новичка или вообще человека не связаного с айти это rocket science.
>>2216888 Очевидно же писать обёртку над sys.stdout.write(), которая у входной строки убирает все ньюлайны в начале и добавляет один в конце, если его нету.
>>2217049 Знаний самого питона-то там не так много надо, в основном сторонние вещи. Из чего видео устроено, как с этим хромкастом связать, как получать изображение с камеры и как там эти данные расположены (чтобы координаты точки получать), и т.д. Ну а дальше в питоне ты складываешь и умножаешь пару чисел и готово.
Черт возьми, по заданию нужно было юзать wraps, написал вместо этого декоратор класса. Теперь сижу и искренне не понимаю как впихнуть wraps и не юзать классы.
А как в питоне принято "по-красивому" писать, когда функция может возвращать результаты нескольких разных видов, которые нужно обрабатывать по-разному? Ну, скажем, некая функция возвращает либо кнопку, либо лошадь. И если возвращает кнопку, то кнопку надо нажать, а если лошадь, то её надо покормить. В паскале это было бы что-то вроде пикрила. Хотя не сказать, чтобы это было красиво, но пользоваться можно было. Может быть какой-то класс есть, который содержит в себе инстанс enum и меняет свой функционал в зависимости от этого инстанса?
>>2217640 Не подойдёт. В данном случае типы у лошади и кнопки могут совпадать. Это может быть, например, словарь в обоих случаях. Только в одном случае словарь представляет кнопку, а в другом - лошадь. Можно, конечно, возвращать помимо него отдельную переменную со значением "там в словаре лошадь". Но как-то некрасиво получается.
>>2217647 Дело в том, что классы лошади и кнопки не мои. И отличить один от другого я могу только зная, откуда взят конкретный экземпляр. Поэтому их надо снабдить каким-то признаком. Вопрос в том, как это передать наружу из процедуры. Можно, например, передать как-то так: return {type:'horse',var:my_thing) Но это как-то мерзко выглядит, как по мне.
Сап двач. Объясните плиз, почему в первом варианте input() только один раз просит у меня ввести значение, а во втором варианте два раза? Это же по идее одно и тоже, просто заместо переменной икс, я сразу вписал функции.
>>2217795 Ты троллишь тупостью? В первом случае ты один раз вызываешь input и пишешь считанное значение в переменную. Потом делай с ней что хочешь, значение лежит в памяти и все. Во втором случае ты ничего в x не записываешь, а два раза вызываешь input, результат вызова которого ты обрабатываешь. Контрольный вопрос - что делает оператор присваивания?
>>2217807 > В первом случае ты один раз вызываешь input и пишешь считанное значение в переменную. Всё понял, спс. В переменную икс заносится уже всё посчитанное и обработанное. > Контрольный вопрос - что делает оператор присваивания? Оператор присваивания помещает значение выражения в место, отведённое переменной. Я не знал этого, вот только сейчас понял.
> актуальность примерно 2015 года А в чем прикол? Самый популярный яп же щас, а шапка плесенью покрыта. Есть смысл читать "укус питона"? Или официальной документации достаточно?
>>2218245 Итак, рассказываю. Питон популярен и распространен, потому что его в базовой форме легко освоить. Поэтому, изучив эту базу, любой профессионал может получить значительное увеличение своей производительности. А если ты рандомное хуйло, то изучив питон ты так и останешься хуйлом. Есть вариант стать питон-разработчиком для серьезного бизнеса, но для этого требуется дрочить не базовый питон, а весьма углубленно, плюс дрочить никсы, с которыми он тесно связан, плюч дрочить тулчейны в виде гитов-докеров-CI и ещё кучу всего. Тут дел не на один год, а если ты вообще пришел со стороны, то шансы стремятся к нулю. Теперь про укус питона. Это или толстый троллинг, или вот такие рандомные долбоебы всерьез верят, что туалетная брошурка на пару часов позволяет выучить питон. Документация дает список возможностей, а не как их применить. Для этого опять же надо дрочить очень долго или прийти из другого языка, в котором ты уже научился.
Подучил питон чтобы работать с данными и автоматизации своей работы. Заставляют делать парсеры данных и автоматизацию на аирфлоу для других отделов. Платят столько же. Где я проебался?
>>2218632 >Где я проебался? Не надо было говорить про автоматизацию, если начальник не убежден, что нужно заебываться на работе, то ты бы мог чилить спокойно и ничего не делать.
>>2218645 А ты в резюме должность сменил с момента как начал датамайнить и подвиги свои описал?
>>2219342 Эрик Мэтиз - Изучаем Питон, он же Питон краш курс на инглише. У них 2 редакция, у нас - 3. Курсы на Степике посмотри от Бигика, потом просто статьи, доки и видео по конкретным либам, фреймворкам и так далее.
>>2219437 >>2219440 Та погодите вы, не газуйте, я питон для самых маленьких пока изучаю. Просто подумал, а что если вот так вот сделать, но нормально нагуглить не смог, вот и решил у вас спросить пока не забыл. Но думаю лучше пока об этом не думать, похоже рано еще, буду просто дальше по урокам идти.
Понавставляют своих переменных в строчку, пособирают листы в строчке, потрахаются с диктами в строчку, сделают циклы в строчку, а потом сиди и пытайся понять, что за хуйню они накодили. Вы хоть понимаете что таким образом код вообще не читабелен?
>>2219442 Ты воспринимаешь input как всемогущий и единственный способ передать данные программе
Можешь вообще через input ничего не хуячить, обозначь входные данные в самом начале проги, если нужно будет что-то поменять - измени их и перезапусти скрипт, для тестирования пойдет
Сторонний модуль (import) http-запрос, в том числе на localhost Базу данных (Postgres, Mysql, MongoDB и т.п.) Системы кеша (Redis) Файл в файловой системе (csv, json, yaml, ini, txt ...)
>>2219436 если ты их вводишь по ходу дела то аргс и кваргс вроде, там можно вводить до жопы если из файла то инпут - файл Это если я не путаю ничего, подзабыл питон пиздец
>>2219463 Имеется ввиду передача данных в программу извне
Еще есть такая херь как multiprocessing.Pipe - позволяет связать несколько разных интерпретаторов Питона. Один скрипт работает как Producer и передает данные второму (Consumer) через Pipe
Вопрос по Django.Делаю сайт,есть базовый html шаблон страницы,и несколько шаблонов,которые его расширяют.Как мне к этим расширяющим шаблонам подключить общий файл css стилей?Он подключается в базовом шаблоне,и в остальных должен работать автоматически,или его нужно подключать в каждом html шаблоне?Или вообще нужно сделать отдельные css файлы для каждого шаблона?Фреймворк PyCharm,если что.
Котаны, подскажите. Читаю csv файл. Надо отредактировать его. Файл не маленький, 1Гб примерно. Можно в сырую читать его. Можно через csv. Но как через csv читать и писать одновременно? Т.е. отредактировать строчку какую-то. Без временных файлов. В сырую надо проверять на валидность строку, что длинна одна и та же, что разделитель не сменился. С ридером csv проще, но хз как прочитать и записать и без кучи переоткрываний файла.
>>2219522 У тебя не получится нормально редактировать существующий файл. Просто открываешь на чтение и новый на запись, потом молотишь построчно и пишешь, в конце новый переименовываешь на старый, заменяя его.
>>2219528 Или может прочитать файл, найти строки на редактирование. Закрыть файл и открыть на чтение, пройтись и заменить. Какие подводные? Редактировать никто файл не будет, кроме этого скрипта.
Такая хуйня: хочу в скрипте слушать пользовательский input и класть его результат в асинхронную очередь. Также в этом скрипте мы слушаем эту очередь через queue.get и обрабатываем данные, которые оттуда вытащим. Замутил вот это:
>>2219535 Есть варик чисто на асинхронке, но это наверное не совсем то. Тут несколько воркеров сразу тащат данные из очереди, но мы блокируемся на вызове input()
>>2219545 Если никому кроме тебя и скрипта этот файл не нужен и он по сути просто является базой данных, то почему ты просто не развернешь какой-нибудь sqlite?
Вопрос по Pillow. Есть изображение canvas_image (пик1), изображение fade (пик 2), когда я выполняю canvas_image.paste(fade, (0,0), mask=fade) на выходе получается пик3. Как видно, альфа канал странно смешался и выходит хуйня с полупрозрачным ореолом, хотя альфа в таком случае должна быть на нуле, так как прозрачные части вставляются на полностью непрозрачные. Оба изображения PNG в режиме RGBA. ЧЯДНТ?
>>2219704 Дата сайенс - огромный блок. Сейчас роли еще больше делятся. Есть майнеры, есть etl, есть инженеры, есть аналитики и есть, непосредственно уже, сатанисты. Во что-то легче, во что-то сложнее. На деле 60% всех задач у сатанистов - скрапинг, майнинг и валидация, затем 30% - инжинеринг и etl, затем 5% - дашборды и отчетность и только 5% - внезапно сатанизм.
Мужики, посоветуйте самый просто пет проект на джанге что бы базу закрепить. Просто вроде читаю документацию но идеи как все закреплять нет. И правильно ли я понимаю что для лучшего изучения фреймворка будет самому пытаться что то мутить а не тупо копипастить готовые решения?
Насколько много надо нарешать задачек, прежде че приступить пилить что-то реальное, с фреймворками например, вот у меня 5 kyu на кодварс и хакерранк решал + задачки из разных книг, могу ли я теперь сосредоточиться на джанге и конкретно на самом бекенде или дальше нарешивать всякие алгоритмические задачи?
>>2220088 Как научиться джанго до такого уровня? Если это джун, должно быть просто и быстро же? Мне по сути сильно не хватает микросервисов в своей работе, чтобы не скриптами и компилятором страдать. Развернул и люди пользуются. Что учить, что читать?
>>2219520 У тебя из шаблонов собирается целая страница. Сделай так что бы в ней был подключен этот css > Фреймворк PyCharm Это не фреймворк, а ИДЭ Иди доки читай.
>>2220079 Все эти сайты исключительно для членодрочерства. Обычно сперва ты пишешь проекты, а уже потом идешь туда решать задачи, чтоб все охуели как ты можешь. Если хочешь что то написать, то бери и пишы.
Вопрос простой. GDB или PDB? Пишу плагины для gedit программы, нашёл такую штуку ddd, она в режим отладки gedit переходит (при этом никаких исходников не видит, ибо их нет), но что-то я не догоняю, как из плагине на питоне там вызвать останов. Нашёл модуль gdb_utils, но ему нужен ещё модуль gdm. Где его взять? Гугл упорно предлагает pdb, как и сам питон, в котором breakpoint() стандартно делает останов для передачи управления pdb. А зачем тогда на сайте gedit предлагают его отлаживать с помощью ddd? inb4 Да потому что он сам написан не на питоне А как же тогда, для одной программы использовать сразу несколько отладчиков? Это вообще законно?
>>2220106 >Как научиться джанго до такого уровня? Это вообще энтри левол. Джанги тут по минимуму, ты просто получаешь параметры в реквесте и отдаешь красиво сложеннный жсончик >микросервисов пока забей >чтобы не скриптами и компилятором страдать. Развернул и люди пользуются. Что учить, что читать? докер
Есть некая сущность my_object и обозначенный класс SomeClass. Как средствами питона проверить что объект my_object удовлетворяет интерфейсу SomeClass? Проверка через isinstance не катит, т.к. в таком случае мы напрямую проверяем, является ли объект экземпляром класса (или его потомка)
>>2220365 >>2220376 Хм, а почему когда я создаю такой итератор и пытаюсь его гонять в отдельном скрипте (очевидно что sys.stdin пустой), у меня ни ошибок не вылезает, но прога не завершает, а просто бесконечно ждет?
>>2220286 Ты заигрываешь с функциональность, которая не от языка сего. Брось это дело. лучше просто дергай метод который должен быть и падай если его все таки нет. Как вариант можешь в классе создать некую специфическую переменную class_name = 'SomeClass' и по ней чекать.
>>2220404 Блять, я чисто эмпирически тыками дошел что это надо нахучить вот так
Какого хуя интерфейс вызовов абсолютно разный в зависимости от того указываем мы sentinel или нет?? Мне никаких лямбд не надо было совать в первом случае
>>2220447 Не, мне просто интересно где меня наебали, когда в книгах или на том же Степике мне сказали, что в Питоне есть и ФП и ООП, а тут мне говорят тип "нет у вас ни хуя". Ну я могу понять, что ООП в Питоне может какой-то неполноценный, но ФП то с какого хуя нет?
>>2220451 >а тут мне говорят тип "нет у вас ни хуя" Ну а ты им и отвечай: "Хуй будешь?". И сразу же просекут они, у кого что есть, а у кого нет. А то ты больно мягко с ними
>>2220408 >чисто эмпирически тыками А мог бы просто прочитать документацию, ссылку на которую я тебе уже дал. >object must be a callable object >The iterator created will call object for each call o its __next__() method
>>2220379 >чевидно что sys.stdin пустой Потому что stdin не выдаёт пустную строку, когда он пустой, а блокирует и ждёт прихода-то чего-то. Пустую строку он, как сказал >>2220437, он может выдать только если бы закрыт (как и любой другой поток, в общем случае).
>>2220480 Пробегаешься по списку ключей, где для каждого i в этом списке добавляешь в новый список (список значений) значение из словаря. Ты же знаешь как обращаться к значению в словаре по ключу?
>>2220490 >Пробегаешься по списку ключей, где для каждого i в этом списке добавляешь в новый список (список значений) Подсказать сколько у тебя итераций будет в худшем случае? Особенно если словарь большой?
Хочу вкатиться сразу на мидла в бэкэнд. Интервью на джуна уже спокойно прохожу, но предлагают мало 80к максимум и у меня не устраивает. Есть несколько пет проджектов: имиджборда, клон инстаграмма, тикет система на вебсокетах, поэтому думаю что вполне потяну Короче, интересует литература, которая не для нюфагов предназначена, что нибудь по проектированию реста, middleware, асинхронщину и вот это вот всё есть че нибудь такое?
Так а все таки по какой книге лучше всего учить Python, по большей части ООП. Основы знаю, выбираю между 2 Томом Лутца, Саммерфилдом и Кнутом, посмотрел оглавления, у лутца мне кажется все более подробнее описано, что скажете, или какую другую книгу посоветуете?
Парни, всем привет. Есть такой вопрос. Я ручная макака, хочу в автоматизацию вкатиться. Выбираю из двух стульев: 1. Выучить базово js (месяц максимум) + Cypress 2. Выучить питон базово (месяц - три) + Selenium
Хочу дальше развиваться онли в вебе. Как думаете, что выбрать? И на каком уровне вообще надо знать питон/js для автоматизации тестирования?
>>2220860 QA automation - это полные овощи, которым хватило мозгов для того, чтобы быть программистами, но в тоже время они не могут работать полноценными аналитиками. Это полная хуйня, за тебя пишут все основные абстракции для тестов твои соплеменники-программисты, потому что они банально больше шарят в области и могут по-быстрому запилить мини-либу для тебя, чтобы твоя производительность повысилась в разы. Так что если тебе похуй на работу, на карьеру, смело иди в аутомейшн, если нет, то или прокачивай аналитический склад ума, изучай ту часть бизнеса, где ты планируешь работать и иди в аналитики. Или развивай аналитический склад ума, подкачивай технические навыки и иди в погроммисты.
>>2220734 Кекнул с фантазий. Сразу страшим разработчиком тебя сделать могут, если к другу на фирму пойдешь. В других случаях именно из-за отсутствия коммерческого опыта тебя выше джуна не позовут.
>>2220465 >Потому что stdin не выдаёт пустную строку, когда он пустой, а блокирует и ждёт прихода-то чего-то Нихера себе, то есть получается что функция next здесь является асинхронной? Как правило если итератор не может выдавать значения он не "ждет" а просто истощается, например очередь collections.dequeu - если вытаскивать элемент из пустой очереди она не будет ничего "ждать" а сразу вернет результат (ошибку вернее), чтобы ждать надо заюзать asyncio.Queue, вот там метод get через await остановится и будет ждать поступления элементов в очередь
>>2221053 Да я мелкими шажочками иду к куаа. Просто по жизни проебался знатно. 25 лет, а щас зп всего лишь 60к. Хочу через полгода вкатиться в qaa и уже иметь 100к. Спустя время вырасти до 150-200 и мне вообще хватит в принципе. Я никогда не был фанатиком разработки. Типа, знаешь, есть код, а ты его можешь упростить и усовершенствовать и получаешь от этого оргазм, типа такого - у меня этого нет. Хоть я и учился на прогера, в вузе я нихуя не делал, да и обучение было пиздец уёбищным - никакого интереса. Сразу с плюсов начали. По началу было здорово в многопоточном программировании там заюзать по локалке 10 компов и скомпилить код быстрее, интересно было хотеть понять, как это работает и всё такое. Но потом началась хуета. Диффуры программировать заставляли, тервер (я это всё не любил лично и меня вечно тянуло в веб). Короче блять прогать полноценно и ебать голову этим не хочу. В автоматизации можно иметь дохуя бабла и прогать по минимуму. Я просто не могу определиться со стеком.
>>2221130 >Нихера себе, то есть получается что функция next здесь является асинхронной? С чего бы? Я же сказал, что блокирует. Это противоположность асинхронности.
"Ждать" это не только await, но и обычным циклом. Я это слово вообще в самом обычном смысле имел в виду, что он из функции не выйдет, пока либо данных не будет, либо не закроется. Запусти у себя вот этот код — https://ideone.com/gSglv2 и увидишь, что пока ты что-то не введёшь (и вероятно enter нажать надо будет из-за буферизации в терминале), принт не вызовется. Никакой асинхронности тут нет.
>>2221178 >150-200 мне вообще хватит. До следующего падения рубля через пару лет, если только.
:q all! Учусь на заочке для корочки, в которой написано "Информатика и вычислительная техника". Есть предмет "основы дискретной математики". Ведут его, мягко говоря, не очень. Посоветуйте какие-нибудь видосики на ютубе или книги, в которых очень сжато и по существу рассказано об основах предмета. Если что, то понятия множества, кругов Эйлера и теорему Кантора я понимаю нормально.
>>2221188 До следующего падения рубля через пару лет, если только. Да, согласен с тобой. Года 3 назад думал, что 60к хорошая средняя зп... Щас по подсчётам, если съёбывать от мамки, нужно минимум 100к БЛЯТЬ СУКА Я ЕБАНЫЙ НИЩИЙ КЛОУН БЛЯТЬ!!!!!!!!!!!!!!
>>2221462 Я понимаю, что я со своими 850 долларами (пиздец в долларах ещё меньше звучит) клоун для вас. Но я же не могу ни с хуя потребовать 3к бачей, лол. Хочется к этому прийти, да, но не сразу же. Меня в принципе, щас зовут на ручного тестера с зп 1600 долларов, но там коллектив хуета и я отказываюсь. Через полгода сам хочу выйти уже в автоматизаторы и иметь хотя бы ~1500 долларов. Ещё переживаю из-за возраста. Типа мне 25.5, а я в говне сижу. Проебался в доте в своё время вообще пиздец((
Есть пара сотен тысяч записей в бд джанго, записанные пачками по 15 штук раз в час. Надо все их выгрести и округлить в каждой из записей одно поле created = models.DateTimeField(auto_now=True) в меньшую сторону до ровного часа убрав минуты и секунды.
>>2220860 Питон очевидный. Без фанатизма. На уровне автотестов глубины языка и эти ваши ООП тебе нахуй не нужны. Пойми что такое примитивные типы данных, цикл, функция, логические ветвления ИЛИ. Самая важная тайна: Научись грамотно оформлять дефекты, делать скриншоты и тыкать в них мордой девелоперов.
>>2221481 >я жа не могу не с хуя потґебовац 3к бацей, лол Когда типа программист просит $800 - это тем более подозрительно. Найми такого, обучай, а через 3 месяца он свалит на большую зарплату. С другой стороны, если он не программист, то и даром не нужен. Зарплату нужно просить адекватно рынку. Могут предложить поменьше - вот и поторгуетесь. Алсо, тестировщик в 25 - это хороший трамплин для вката, мот и зря отказываешься.
Как редис работает с celery? Понятно если там rabbitmq какой нибудь, в канал передается сообщение с бэка и целери его обрабатывает. У редиса такой же механизм есть? Это же просто бд которая в озу хранит, не?
Сап двач,зеленый в треде.23 лвл Месяц активно занимаюсь вкатом.Купил пикрил книгу и скачал обучалку.Смотрю курс по теме,прохожусь по книге и практикую.Я бы был рад и зп 100к ибо по больше интересует сам вкат и тот факт что на учебу я забил из-за отсутствия денег. Собственно вопрос. Не поздно ли в 23?Сам я с пк давно практикую и не только в игорах. И правильно ли я делаю?
>>2221818 Есть второе издание оригинальное от 2018. В целом, это нормальная базовая книжка, но она не особо даст тебе знаний для реальных задач, там нужно практиковать и искать решения самому, никто таких материалов не делает.
>>2221499 >Надо все их выгрести и округлить Что делать-то с ними будешь? Просто в оперативную память выгрузить или заапдейтить все строчки прямо в базе?
Тупой вопрос сейчас задам. Поставил eclipse, в нём pydev. Успешно отлаживаю свой файлик, и вдруг он завершается с исключениями. Обнаруживаю в нём две строчки, которые я не писал: from sos.report.plugins import stratis from cloudinit.sources.DataSourceLXD import description Это что это? Это откуда? Это зачем? Я куда-то не туда нажал? Куда?
Вот раньше сталкивался я с delphy7. Там можно было в опциях указать host application, чтобы, например, отлаживать плагин total commander. Соответственно, пишешь library, настраиваешь total commander работать с этой dll как с плагином, и запускаешь её прямо из IDE, но стартует, естественно, не dll, а total commander, но как только выполнение передаётся внутрь твоей dll (плагина), можно вывалиться в отладчик. А вот тут ситуация чем-то похожая. Пишу на питоне плагин для gedit. Мне бы вывалиться в отладчик внутри своего плагина, запустив gedit, который этот плагин подключит. Но как? Это вообще возможно? Насколько я вижу в htop, gedit никаких питонопроцессов не запускает. А запускает он плагины через LibPeas, который я без понятия как работает. Никто это не ковырял?
>>2222051 А как учить тогда? Я вкатыш, офкорс. Уже скоро джанго 4 выходит, а книжек по джанго 3 на русском нет(есть только от русских авторов, но это говно). Доку читать скучно и все равно без практики ее не запомнишь.
Немного подотстал от технологий. На одном проекте у нас самописный фреймворк. Это гигант, вряд ли когда перепишется на что-то полуготовое. Новые делаем на aiohttp/flask. Что там сейчас модно, что если через месяца 4-5 свалю в свободное плавание, на собесах показать скилл?
Функция hash в Пистоне возвращает хеш объекта (если он хешируем). Как выяснилось, функции и генераторы хешируемы. Однако если создать несколько разных генераторов с одними значениями, например:
[range(3), range(3)]
то у них будут разные хеши.... как сделать свою хеш-функцию, которая будет принимать во внимание не только сам генератор но и его аргументы? И если они одинаковы то считать хеш одинаковым, вне зависимости от состояния генератора?
>>2222075 Да ты заебёшь бампать вопросы, которые даже ещё не уплыли
>А как учить тогда? Практикой. Читаешь доки, параллельно пилишь что-то. Можешь просто примеры джанги брать и использовать. Не в тупую копировать-вставлять, а именно что использовать. Делать проект, наступать на грабли, разбираться в проблеме, искать решение, запоминать, исправлять. И так по кругу. Без кода ты и по книжке нихуя не выучишь.
>>2222159 Кекнул. Тебе интерпретатор говорит - у тебя говно вместо пирога, убери его, а ты ему такой - знаю что говно, что хочу, то и ем
Далее, не юзаешь await - у тебя варнинг сыплется. Погугли в чем дело, но я тебе итак скажу: ты тупой долбаеб, который даже не знает как юзать async/await, но делает это когда хочет hash(await f('x'))
>>2222175 Пчел, я Папка на проекте нахуй. Недавно собесил одного вкатыша и завернул его, потому что тот как раз уссался на асинхронке и на генераторах. Знай Папку.
>hash(await f('x')) долбоеб даже не понимает что он считает hash того что вернула его future/корутина а не самой корутины
блять, как отучить себя ебашить все в одну строчку. Посмотрел как-то чела, который написал, что тип использовать генераторы и лист-comprehension где только можно, это хороший, годный питоновский способ писать код. Но через какое-то время, когда начал возвращаться к старым блокнотам, понял что можно нормально читать только нормальный цикл и не сложные, в одну строчку, comprehension'ы. Пиздец, кто вообще придумал этих монстров
>>2222551 Учись чувствовать, когда вещь достаточно сложная для такого. А простые заебись. Видел как-то компрехеншены через компрехеншены на 18 строк, блядь, с кучей логики внутри и по факту это один стейтмент, который можно и в строку свернуть вместо 18 - вот так не надо, это больная тема. А в роли мап/фильтр/инициализаций простеньких легко все читается.
Мне нужно похулиганить сайт с помощью питона (наплодить 404 страниц надо) как это можно сделать? Есть сайт краш.сом условно и мне надо сделать чтоб открывалось и переходилось по рандомным краш.сом/тутнуженрандом таким образом после закрытия сайта 404 страница не удаляется и если сделать скрипт который переходить по таким ссылкам выходит большое число 404 страниц как мне такое написать в принципе?
>>2222683 >таким образом после закрытия сайта 404 страница не удаляется и если сделать скрипт который переходить по таким ссылкам выходит большое число 404 страниц
>>2222697 Так, я не силен в языке шизов, но мне кажется, он хочет написать скрипт, который берет имя сайта, добавляет рандомные символы в конец, чтобы получилось вот так: shique.ug/dfsd3ea Скрипт должен наплодить кучу таких ссылок и открыть их в браузере?
>>2223007 Ну, если тебе потом эти файлы не будут нужны - то сохранять их плохая идея, по сути это будет костыль вместо io, но работающий медленнее из-за системных вызовов. Так и не понимаю, чем тебе он не угодил, ибо он часть стандартной либы, да и работает быстро, т.к. написан на C.
Пытаюсь в django. Выполняю простейшую инструкцию https://help reg ru/hc/ru/articles/4408047456785-%D0%9A%D0%B0%D0%BA-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C-Django-%D0%BD%D0%B0-%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3 по установке. Результат на пике. Я понимаю, что ответ может быть каким угодно, но я не понимаю, что и как поправить, а так же как проверить. Пожалуйста, дайте общие указания по отладке. Я подозреваю, что напутал что то в шагах 11-13, мб в полях, где нужно было указывать информацию о БД.
>>2222202 Да в любом случае, где доступность аргументов варьируется на момент вызова. Тут проблема в том, что примеры каррирования в учебных материалах обычно или слишком простые или слишком ебанутые. Вызовы func(1)(2)(3) выглядят намного понятнее, если рассматривать их в контексте проекта. В проекте каррирование выглядит так: module1.py: def func1(arg): ... exported_func = func1(1) module2.py: from .module1 import exported_func exported_func2 = exported_func(2) module3.py: from .module2 import exported_func2 result = exported_func2(3)
>>2213498 (OP) Объясните в чем подвох пасты "Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. " я уже дошел до написания своей собственной имиджборды и внезапно подумал, а нет ли там какой-то наебки?
>>2223145 >я уже дошел до написания своей собственной имиджборды и внезапно подумал, а нет ли там какой-то наебки? Нет конечно никакой наёбки, главное не задумывайся, почему сидишь на дваче и может быть ещё на каком-нибудь условном форчане, когда борду может запилить любой вкатыш.
Ребята, такая проблема. Я забыл пароль от контейнера veracrypt, но помню только его середину, там в конце и начале и были знаки типа #!. Так вот, дайте простой скриптик, который сгенерирует все возможные вариации этого пароля, чтобы посередине была та часть, которую я введу, а по концам вставились в различном порядке !#.
Единственный нормальный шедулер на питоне это целери, да? Обычный кронтаб мне не подходит, ибо нужно мониторить как завершились прошлые задания Или есть что то попизже?
>>2223232 >>2223229 Я с нулевым знанием питона что-то да наскреб. Можете подсказать, как сделать так, чтобы цикл for остановился только тогда, когда прогенерируются все возможные вариации?
>>2223305 Спасибо, но немного не так должно быть. Нужно чтобы минимальное значение было равно одному. Чтобы прогенерировались варианты с !2ch# и #!2ch. и тд.
>>2223270 Мне надо, чтобы не просто всевозможные комбинации !#. и звездочки проставились, а чтобы прогенерировались варианты, в которых в начале или в конце только один символ. Я просто не помню, как я символы в конце и начале расположил, но точно помню середину.
>>2223616 Я ничего не трогал в алгоритмах, оставил как есть. Там же даже в скрипте написано hashtype="13721" # hash SHA-512 encryption AES (VeraCrypt 1.24 default)
Как нормально, но не слишком заёбно отладить подсчёт ссылок в расширении на C? Билдить дебаг-версию питона с этой целью не очень хочется, сыпать в коде printf("DEBUG refcnt=%d\n", Py_REFCNT(obj)) тоже. Не уверен, что по адресу вопрос задаю, но может стояла перед кем такая проблема.
Если я напишу print("\U0001f600"), то получу эмоджи этого юникода. Если я юникод этот по кускам соберу, а в принте укажу сумму этих кусков - получу юникод, а не эмодзи. Почему так ? Как получить эмодзю, а не юникод ? Питон 3й.
Пишу скрипт, который будет копировать определенный файл n раз и подставлять в название итерацию. Как сделать так, чтобы итерация добавлялась не в конце файла image.jpg1, а до точки image1.jpg?
Так, я написал скрипт, которому можно указать картинку и кол-во копий и он сгенерирует для каждой разный хэш, путем добавления рандомных цифр в конец. Оцените его, пожалуйста. https://pastebin.com/cqBdCJHs
>>2224070 >разный хэш Твой скрипт этого не гарантирует (randint может вернуть одинаковые значения). Если число заказанных копий больше 9000, то, очевидно, будут коллизии.
>>2224173 Я уже исправил код, чтобы рандом генерировался в самом начале и потом уже в цикле к рандому прибавлялся номер итерации. Кстати, не подскажите, как по быстрому сделать это консольным приложением? Чтобы написал в консоль python hash.py image.jpg 10 и всё выполнилось.
>>2224379 if len(sys.argv[1]) <= 1: IndexError: list index out of range Он сразу на действии с пустой строкой крашится. Или это так и должно быть? Типа нельзя чтоли вывести своё сообщение об этом и закрыть программу без крашлога от самого питона?
Есть такая задача: нужно сделать динамическую форму через Фласк. Идея в следующем.
Есть переключатель. Если переключатель в положении "1", то на вход подается значение из поля ввода form_1. Если переключатель в положении "2", то пользователь нажимает кнопку "Enter form", открывается модальное окно и в нём появляется пачка форм form_2, form_3 etc.
Вопрос: как это реализовать? Интуитивно я понимаю, что flask bootstrap что-то такое должен уметь, но я не понимаю, как по изменению переключателя динамически можно подавать на вход инпут из двух разных типов форм.
Есть книжки, где конкретно будет ставиться какая-то задача и будут описываться все действия. По типу написания калькулятора, тетриса или змейки. Я не могу в сухую всё зазубривать.
>>2224628 Ну, на питоне это делать - не лучшая затея, но если очень хочется, то можешь написать простое while True: pass И прикрутить к этому multiprocessing, чтобы все ядра грузить
>>2224589 Нахуя ты их зубришь? Совсем ебанутый? Ты на уроках труда тоже зубрил хуйню в духе "рубанок для того, чтобы сделать доску ровной, отвертка чтобы закручивать шурупы, молоток чтобы забивать гвозди"? >>2224597 Я не знаю нахуя вы нарешиваете задачи на кодварсе. Чтобы что? Если человека сортировку пузырьком достаточно понимаета не зазубрил блять, то на этом алгоритмы уже можно стопать и изучать их после устройства на работу
>>2213498 (OP) ребят, а где можно порешать задачки? Ну что то вроде спортивного программирования. Я кстати думал, что в шапке будут ссылки. Буду очень благодраен, если кто нибудь поделится. Сейчас нету идей писать что нибудь конкретное, но хочется все же прогрессировать в языке. А я заметил, что легче учиться, когда стоит некая задача, которую надо решить.
>>2224691 codewars, leetcode Прогрессировать начнешь когда найдешь работу. Спортивное программирование в том виде, в котором оно на соревнованиях присутствует вредно.
>>2224647 Да просто по приколу. Захожу каждый вечер и делаю 1-2-3 задачки перед сном. Как такая долгозарабатываемая ачивка "нарастить длинный хуй кью на Кодеварсе".
>>2214257 Ограничения есть? Есть да, то проще захардкодить все простые числа, разбить на массивы равного размера и сжать. А зная a и b можешь узнать какие массивы нужно разжимать и только их разжать и посчитать числа. А те, что разжимать не надо просто прибавь размер массива к результату. Работать будет быстро. С учёт сжатия будет 50-100 мегабайт дискового места на все числа до миллиарда. До трилиона понадобится десятки гигов места на диске, но поиск всё равно будет быстрый т.к. только 2 массива придётся декомпресить. Содержащий a и содержащий b.
>>2224668 Неверно. Например, корень квадратный из 22 это 4,69... При этом делители у него 2 и 11, и только 2 меньше квадратного корня, а 11 - больше. Я понял, что ты имел в виду, но твоё утверждение ошибочно.
>>2225140 Эммм, нет. Ты делишь на два, получаешь одиннадцать. Проверяешь одиннадцать до 3 и узнаешь что это просто число. Все. Или ты считаешь, что перебирать нужно все числа по порядку, чтобы два раза получить разложение 2*11?
Помощь по питону
килька29/11/21 Пнд 20:28:27№2225470524
>>2225448 Ещё раз, 11 является делителем числа 22? Да или нет? Вот что ты написал: >все делители числа n меньше, чем корень квадратный из n 11 меньше, чем корень квадратный из 22? Да или нет? И, как итог, твоё утверждение верно или нет?
>>2225470 glossary={} б) glossary[term]=interpretation в) del glossary[term] г) for t in glossary: print('%s:%s' % (t,glossary[t])) д) print(glossary[term]) Ну и так далее. В чём сложности? Непонятно, чем пункт а) вообще должен заниматься. Если он создаёт глоссарий из текстового файла, чем это отличается от загрузки из файла (пункт з)? Что вообще тут имеется в виду? Без понятия. Но я уверен, что ваш препод сам понятия не имеет, что он имел в виду, когда это задание составлял. Ну может быть имеется в виду "создать на диске новый пустой файл с типа будущим глоссарием". Короче, привыкай, у тебя такого дебилизма ещё много лет впереди. А может лучше ну его на фиг и пойти работать на завод? Там хоть деньги платят. А то будешь у родни на шее сидеть. А мог бы за это время на квартиру заработать.