F.A.Q. https://github.com/TheKnightsWhoSayNi/info/wiki/HatДля кода https://repl.it/languages/python3 Не скидывайте сложные исходники в тред, у двоща ебанутое форматированиеКниги https://yadi.sk/d/tArKKuQu3KejuqВ предыдущей серии >>1182179 (OP)
Опять нумерацию проебали. Это третий раз уже?
>>1188088Номерацию проебали уже раз 20, ты знаешь, сколько тут питон треды существуют?Да и зачем нумерация, если треды все равно никуда не сохраняются, только дрочить на нее
def atata():..try:....return 'пики точены'..finally:....return 'хуи дрочены'print(f'Куда же присядет анон? Да это же {atata()}!')
>>1188099Во-первых синтакс эррор, во-вторых форматирование так не работает.
>>1188101С разморозкой!
>>1188101>Во-первых синтакс эррорЧо? try - пытайся сделатьfinally - сделай в любом случае после блоков \эксепт
>>1188110try\exceptфикс
Кто-нибудь пишет что-то интересное во что можно влиться с вами? Инетересуют сайты, агрегаторы, сервисы. Стек — питон, само собой.
>>1188101>Во-первых синтакс эррорКакой нахуй синтакс эрор если он вернет "пики точеные" и не дойдет до файнали
>>1188141>не дойдет до файналиВам перезвонят. Ну когда ж вы, чёрт возьми, уже научитесь не писать сюда то, в чём не уверены, имея возможность проверить это за 10 секунд в интерпретаторе?
>>1188101> форматирование так не работает.Хах, скоро 3.7 выйдет, а тут еще божественным 3.6 не обмазались.
>>1188153Но интрепретатор как раз показал"Куда же присядет анон? Да это же хуи дрочены!"Ошибки нет
>>1188165Но тот анон с пиками обосрался, да
>>1188165Тот, кому я отвечал, говорил прямо противоположеное же.
>>1188085 (OP)Сап, питонач. Вкатываюсь в ООП потихоньку и нихуя не могу въехать в магические методы.Если с __add__ все более менее понятно, где он назначает первый экземпляр self, второй other и при попытке операции сложения возвращает класс со сложенными значениями. То принцип работы с __truediv__ и дохулиардом других методов у меня не укладывается в голове. Поясните чо да как, с меня как всегда NoneType.
>>1188239Что тебе не понятно-то, блин? Так же вызывается и два аргумента (делимое и делитель) передаются при операции деления (при заимпорченном division'е из __future__). >возвращает класс со сложенными значениями. Что напишешь, то и вернёт.>и дохулиардом других методовНу блядь, возьми да прочитй, когда они вызываются.(5).__sub__(3) == 2
Я тутова это, впервые вкатываюсь в погромирование (хуманитарий типо).Решил начать с Python. Читаю учебник https://automatetheboringstuff.com.Вот, пока в начале, дошел до “Truthy” and “Falsey” Values.И чет нипанятна, там пример такой:name = ' 'while not name: print('Enter your name:') name = input()Можете за это вот эту строку пояснить "While not name".Про операторы while я понимаю, и я бы написал while name=' ' и т.д. А тут непонятно с этим not, и в учебнике нихуя не объясняется.
>>1188284Погугли логические операции.
>>1188284СмариСейчас нейм что - правильно, целое нихуя. Тут целое нихуя равняется к False.После ввода любого name оно уже будет чем-то, хоть там твое имя, хоть хуй собачий. Тут хотя-бы что-то равняется к True.
>>1188296это я понимаю, что int 0, float 0.0, str ' ' - это False.я строку while not name не понимаю.А конкретно этот not, он тут какую функцию выполняет и к чему привязан?
>>1188303https://yandex.ru/search/?text=python логические операции
Очередное "самое лучшее GUI"https://github.com/mherrmann/fbs-tutorial/blob/master/README.md
Здарова пацаны.Сам по жизни фулл стак жс макака, но хочу научиться писать рест апи на питуне, чисто для общего развития.Сегодня пол дня читал доки к джанге, поиграл с чистой джангой и оказалось, что нужна не она, а некий рест фреймворк.Поясните мне, как это должно работать? Вот эта парадигма Model - Serializer - ViewSet.В модели мы описываем схему документа (собираюсь юзать монго).Сериалайзер описывает, как документ, полученный из модели, должен превращаться в JSON (и наоборот).ВьюСет же содержит набор API методов?Может у кого-то есть репозиторий с таким стеком, чтобы я посмотрел, как он устроен, какая там файловая структура и тд?
>>1188360https://github.com/devslaw/django_rest_exampleГуглится за минуту. Основной фарш в папке apps.Говно эта ваша жанга. Говно этот ваш 3д мир. Меня моя вайфу зовёт, некогда мне в такой тухляк вникать.
>>1188360Тебе не нужна джанга, попробуй nodejs или aiohttp
>>1188360Если чисто рест, то возьми Falcon
Аноны, нужно ли писать тесты для своего кода, который и так проверил на возможные варианты?
>>1188303> я строку while not name не понимаю.Дословно - ПОКА НЕ name, что можно трактовать как ПОКА НЕ TRUEВот когда будет уже TRUE, тогда твой цикл перестанет крутиться.
>>1188449Как по мне, нужно обязательно вести чейнжлоги, и в особенности, когда пишешь "на один раз" - краткую документацию по коду. В один момент этот текстовый файлик сэкономит тебе туеву хучу времени.
>>1188284Пока bool(name)== False: do somethingПока ты этим инпутом нихуя не впишешь в имя = будет продолжаться цикл not name означает, что если нейм не ссылается на ненулевое значение - оно Falseхуй знает как пояснить еще понятнее
>>1188369Спасибо.>>1188371Ноду я и так умею. Джанга это первый шаг в мир питуна, который я изучаю фо фан.>>1188396Нужна именно джанга.
>>1188085 (OP)кароче я учу классы, все покашо понятно, селфы там хуелфыИниты Но нахуй они нужны ? ну всмысле зощем ? В каких случаях я не смогу использовать нормальные штуки, а только классы и этот ваш пидор Марк Лутз меня так доебал, невозможно его читать, лучше читайте по оф. докам пайтонаОна у вас на компудахтере даже есть
>>1188470Ну тогда души джангу, ничего там страшного нет
помогите лоху-новичку, хз как гуглитьесли человек отправляет телеграм боту какой-то текст, то как этот текст сделать, например, нулевым элементом массива или первым (добавлять еще ничего не надо), чтобы потом одним списком запринтить все его заметки, например. Вот кусочек кода:notes['tutodin', 'tutdva']... ...if message.text == 'Заметка 1': bot.send_message(message.chat.id, 'Теперь пришли мне ее') ????? = notes[0] elif message.text == 'Заметка 2': bot.send_message(message.chat.id, 'Теперь пришли мне ее') ????? = notes[1]...print('Заметка 1:' + notes[0], '\nЗаметка 2: ' + notes[1])помоги двачик
>>1188502Обычно такие вещи в бд сохраняют и потом читают из нее по надобности
>>1188480Душу потихоньку.Как сделать шоткаты для консоли?У ноды есть npm run scriptname, например, есть какой-либо аналог для жанги?
>>1188502>>1188507Как по мне лучше подзаебаться с pickle, чем начинать дроч с бд
>>1188521Или с shelve.
>>1188507>>1188521>>1188531Ну а как сами данные для хранения принять? или все через pickle надо делать?
>>1188532Тю бля, мне когда-то давно отвечали на то, как принимать хуйню, что пишет клиент, но я все проебал. Попробуй гуглить поперек, пока тебе не ответят.
>>1188521> лучше подзаебаться с pickle, чем начинать дроч с бдC базами данных ему всё равно придётся познакомится, да и особо дроча там нет. Подрубил SQLite, на SQL`е накидал пару команд и всё.А потом уже по желанию через ORM`ку какую всё организует.
>>1188532Как-как.Читай доки своей библиотеки для ТГ, и сообщение юзера в БД
>>1188085 (OP)Сап. Кто-то в этом итт работал с Kivy? Есть пара вопросов:- Можно ли сделать окно прозрачным? Это вообще в принципе возможно сделать не только в рамках сабжа? Или может есть какие-либо костыли?- Есть ли готовый способ сделать возможность перетаскивания окна из любой точки?
Анон помохи! Уже больше недели, а то и двух бьюсь с проблемой. Пишу плагин для коди чтоб удобно смотреть аниме было с ресурса smotret-anime. Дело в том, что на этом сайте большинство видео разбиты на несколько частей. Мне было бы на это похуй, но каждое видео сопровождается субтитрами, собственно для этих двух потоков нужен единый таймлайн, а возможно ли как-то решить это в рамках платформы kodi я пока не нашёл. Я уже совсем отчаялся, не хочется изобретать велосипеды и делать криво работающее дополнение, а хочется шоб запустил и попёр!Ещё проблема конечно же в безграмотности, ведь в мультимедиа я вообще не ебу что куда. В общем.Дано:Две или более ссылки на серию, которые нужно воспроизвести как цельный эпизод с единым таймлайном (из-за тайминга сабов).Идея:После долгих раздумий появилась идея на клиентской машине ставить промежуточный сервер, который бы объединял эти два потока в один, просто каким-то хуем ставя их один за другим. Плеер на сайте просто же проигрывает их один за другим, а таймлайн у них заранее установлен.Реализация:Вот тут анон мне нужна твоя помощь! Подскажи, насколько идея хуёвая и вообще выполнима ли она? Если да, то просто укажи путь на инструменты, реализации чего-нибудь подобного, хоть что-нибудь, просто скажи как это гуглить!
>>1188585Проще формировать плейлист из этих кусков + нарезать сабы для каждого куска.
>>1188587Тоже идея. Пусть это не будет идеалом реализации, но звучит гораздо проще. Точнее в таком решении гораздо меньше неизвестных. Встаёт лишь вопрос как парсить сабы, а звучит он гораздо определённее чем та хуйня что я выше написал, где в реализации я не шарю от слова нихуя.
>>1188590Возможно даже нарезать сабы не придётся, нужно разобраться с форматами плейлистов. Начинай с тех что поддерживаются непосредственно в коди.
>>1188594Ну тут легче спрашивать какие нужны?
>>1188594Kodi supports PLS, Winamp M3U, Cue Sheets, and Kodi Smart Playlist (XSP) playlists.
>>1188458То есть, если я где-то накасячу, то смогу вернуть стабильную версию?
>>1188600Это всё больше похоже на аудиоплейлисты. Вот если честно, я тоже нихера не эксперт по теме, но если будешь скачивать и собирать по частям, бери матрёшку:https://matroska.org/technical/guides/faq/index.html>How can i create Matroska filesТебе нужен именно transmux.https://mkvtoolnix.download/doc/mkvmerge.htmlСтриминг конечно предпочтительнее, меньше возни, но вот не знаю насколько успешно это завяжется в коди, все эти smotri-anime пишут свои плееры чтобы усложнить жизнь тем кто хочет скачать или порезать рекламу. Ну и контент там обычно пережат до безобразия, очень мелкий fps, очень большие искажения, но таки да, всё есть, выбирай и смотри.
>>1188449Нужно. Чтобы можно было изменять код и не бояться что что-то отломалось.
>>1188606Да в том то и дело, что скачивать полностью и переделывать это не вариант абсолютно. Для этого есть торренты встроенные для... Ну в общем всё это не важно, да. Жаль конечно, про плейлисты ща гуглил, пытаюсь всё это дело в m3u загнать и посмотреть что получится.В общем пока ковыряюсь. И на том спасибо
Подскажите, как организовать считывание данных в задаче http://pythontutor.ru/lessons/lists/problems/kegelbahn/
>>1188601>>1188603Не понял тебя. Ты так или иначе можешь вернуть стабильную версию кода. По крайней мере в пайчарме такая хуйня есть.Алсо, возьми за привычку сохранять по отдельности сорцы с крупными изменениями.Назвал там "залупа кентавра 0.3" и в чейнжлоге пишешь "0.3 - добавлено то, убрано другое".
Бля, как задетектить инпут сочетания клавиш? Например пробела и ЛКМ?
Объясните нюфане, почему во второй раз он использует if, а не elif? И так и так вроде работает. Что я упустил?
>>1188633https://repl.it/repls/MistyroseDramaticPrioritiesОтклеилось
>>1188633Ну захотелось ему так, какая разница? В любом случае, если выполнится первое условие, то до второго и не дойдёт. К тому же, условия взаимоисключающие, так что даже если бы там был не break, то тоже разницы бы не было.
>>1188633Лучше конечно элиф, но если в задании автор показывает принцип работы брэйка или еще что, то не зацикливайся, это просто пример
>>1188646>>1188647Спасибо пацаны.Я смышленый, да?
>>1188651НетДа)
>>1188651Ты умничка и у тебя все получится!
Бамп неотвеченному вопросу из предыдущего треда.Хочу вкатиться в бекенд, прочитал Саммерфильда, Лутца, Бьюли. Я сначала думал, что надо теперь прочитать про Джанго, но я так понимаю, она именно про написание самих скриптов-обработчиков-запросов по стандарту wsgi, cgi, я хз уже, а хотелось бы ещё что-то по разработке в общем: как развернуть apache\nginx да и что из двух стульев выбрать, как туда свой Пистон вставить, какую из сотен бд туда пристроить. Что посоветуйте? Пока кончились питоно-книги читаю SICP, алгоритмы, и тереблю свой пистон на codewars.
>>1188709Открываешь docs на официальных сайтах, tutorial и устанавливаешь-разворачиваешь, для этого не надо талмуды читать. БД бери постгрес. А вот как раз алгоритмы почитай. Таненбаума ещё можно про сети, про операционные системы.
>>1188715Плюсую все, кроме бд.Для начала и SQLite хватит, что б не ебаться с разворачиванием/подключением, а потом, как джангу освоишь, сможешь к БД приглядеться, может тебе монго подойдет, может постгрес.
>>1188747SQLite это довольно экстремальный вариант, предназначенный для встраивания в приложения, там есть множество неудобств и отклонений от стандарта. Разворачивание пг это apt-get install, systemctl enable postgres, редактирование пары строк в конфиге если вообще нужно, systemctl start postgres. И всё, psql в зубы и пошёл.
>>1188749Монга так же подключается, например, и интерфейс у неё подружелюбнее, чем скуль.
>>1188770В монге нет транзакций, каскадных удалений и много чего ещё. Да и зачем вообще монга, когда в пг уже завезли json fields?
Привет, анон. Почему этот код не работает для '0000'? Питонить начал недавно, не гнобите, пожалуйста!
>>1188818Можно, конечно, проверить на '0000', но это как-то некрасиво.
>>1188818Потому что 0 это False
>>1188821Уже посмотрел другие решения, оказывается есть метод isdigit, а я-то думал, что я гений.
>>1188553Бамп, что ли.
Аноны, что мне делать?Есть функция которая не всегда принимает file, как мне ее переписать, либо как заменить file?
Привет, анон. Посоветуй какую-нибудь хорошую статейку по работе с API неважно, на русском или на английском, чтобы было хорошо расписано как оно работает и что с ним делать в том же питоне. Я совсем зеленый, информации куча, хочется, чтобы в одном месте и подробно.
>>1188868По созданию АПИ?На сайте джанго рест фреймворка есть туториал, как раз тоже его прохожу. После нодовского экспресса пиздец голову ломаю.
>>1188871Не, именно по получению данных из него, и как он устроен, в целом. Че за токены, че за заголовки, че за json. Всякие серверные фреймворки даже трогать пока боюсь, совсем зеленый. Хочу пока написать парочку парсеров для себя.
>>1188872Тогда не подскажу
>>1188749Ну а для склайта ничего настраивать вообще не надо.Работать он через ОРМ будет и разницу не увидит и проблем не встретит.>>1188786> зачем монгаИдите мат.часть учите и найдете применение
>>1188872Райан Митчелл - Скрапинг веб-сайтов с помощью Pythonмимо ещё более зелёный
>>1188880Храни тебя господь, антоша.
Нужно быстро накидать дешманский интерфейс, но с гуи не дружу. Что лучше, сразу из коробки использовать tkinter или учить qt. И почему tkinter так хейтят?
>>1188859Неси функцию, с контекстом только >>1188872Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.
>>1188715>не надо талмуды читатьА как же "Learning Django with ur mom" и остальные? О чем они?>БД бери постгресА чем она лучше MySQL? >>1188747Уже развернул MySQL и все сделал.>>1188879>Идите мат.часть учите и найдете применениеКакому-то анону из прошлых тредов советовали использовать монгу как кэш между приложением и большой БД. Без понятие, что это как и зачем.
>>1188883>Просто почитай на хабре том же про реализацию АПИ различными сервисами. Ну или зайди на любимый сайт/сервис, и поищи документацию/АПИ и будет тебе живой пример.Там анон выше скинул книжечку, в которой таки все, что мне нужно - от работы с апи, до сохранения данных в базе данных и т.д. Но за совет спасибо.
>>1188859Объяснение проблемы просто пиздец, откуда вы такие берётесь?Ткну в небо и скажу, что тебе нужны дефольные аргументы — https://docs.python.org/3/tutorial/controlflow.html#default-argument-values
>>1188885Развернул? МаладэцСворачивай> использовать как кешВполне хорошая идея.Лучше не задавай здесь глупые вопросы, а возьми загугли, сравнение постгреса и монго, там будет очевидно где юзать постгрес, а где монго.
>>1188892А, ну да, тоже читал, но хуй знает, как по мне лучший опыт - практика.Но книгу прочти, хорошо рассказано про парсинг страниц и инструменты.
Ловите, осваивайте, пасаны с конференции рекомендуютhttps://github.com/pypa/pipenv/blob/master/README.rst
>>1188085 (OP)Анончик, родименький, расскажи что я делаю не так? Чому вк не принимает мою пиктчу в виде байтов? В то время как в виде объекта io.BufferReader принимает аж бегом.
>>1188908BufferedReader* конечноВсе время путаю.
Может ли virtualenv не создаваться из-за кириллицы в пути к питону? https://pastebin.com/D3ratLG7Или причина в чем-то другом? Помогите!
>>1188908> Чому вк не принимает мою пиктчу в виде байтовНу вот хуй знает
>>1188917Да, virtualenv не работал из-за кириллицы в названии, пофиксил.
>>1188879Аж интересно, о какой матчасти идёт речь. docs.mongodb.com я знаю почти наизусть.>>1188885Ну хочешь бери MySQL, пг более цельно сделана и в ней больше фич. MySQL может быть полезной когда у тебя какой-то специфический ворклоад и там ты сможешь выжать дополнительную производительность используя какой-нибудь специфичный storage engine. Для новичка в общем-то большой разницы наверное и нет.>>1188906Работает через раз.
>>1188885>Learning Django with ur momВода водяная. Но если это твой первый фреймворк вообще, наверное смысл есть.
Суп анон. Писал вчера сюда по поводу плагина для коди. Краткая суть: нужно воспроизвести несколько кусков видео как один в рамках платформы kodi. Вот ещё какая идея пришла. Кто-нибудь может подсказать по какому принципу работает YouTube-dl? Ведь он по сути скачивает множество кусочков в один файл. Код читал, разобраться сложновато, но думаю что вполне возможно. В общем идея такова, что может существует такая же возможность как в youtube-dl просто скачать несколько видеофайлов в один? Типа делаешь какой-нибудь with open(video.mp4): write url_video1.mp4, url_video2.mp4, url_video3.mp4... просто в мультимедиа форматах я полный ноль и не знаю, вдруг там какие-либо маркеры начала и конца стоят которые нужно ‘обрезать’, также не знаю где и по каким правилам хранится метадата. В общем я был бы очень рад если бы ты анон подсказал мне здесь и направил на путь истинный. А пока я писал подумал почему бы просто не попробовать. Пойду пока и попробую.
>>1188964На ютубе не нужно сшивание:https://github.com/nficano/pytube/blob/master/pytube/streams.py#L220https://github.com/nficano/pytube/blob/master/pytube/request.pyТам они только переходят на раздельные аудио/видео файлы, но опять же, тайминг у них полный, без сегментирования.
>>1188964Ещё учти, даже если ты напишешь стрим-сервер, могут быть проблемы например с перемоткой.
>>1188964>Ведь он по сути скачивает множество кусочков в один файл.Зависит от формата. Стримы ютуба в.ts, например, можно просто склеить. Не-стримы в mpeg-dash, вроде как, тоже, но обязательно нужен первый фрагмент. На какие-то другие фрагрментированные форматы вызывается ffmpeg для конвертации.Но кажется мне, что тебя не одно из этого, а просто несколько отдельных видео файлов, тогда ffmpeg в помощь.https://stackoverflow.com/questions/7333232/concatenate-two-mp4-files-using-ffmpeg>просто скачать несколько видеофайлов в один?Просто скачать легко:>with open('video.mp4', 'wb') as f:> f.write(urrlib.request.urlopen(url1).read())> #<...>> f.write(urrlib.request.urlopen(urlN).read())Но велика вероятность, что это не сработает если медиа файлы самодостаточны, со своими хедерами и метаданными.Так что, неси прямые ссылки на видео, тогда и сможем помочь. Не зная формата тут ничего, кроме ffmpeg'а, не посоветовать.
>>1188966Получается, что он просто "ложит" эти chunks рядом в один файл. И у меня была надежда что "а вдруг" это и с обычным mp4 сработает ещё не проверил, сейчас буду.>>1188967Они скорее всего будут. Ну, дело сейчас даже не в сервере, а в самой реализации, хз с какой стороны подступиться. Знаний не хватает. Думаю доки стоит по формату почитать, может чего яснее станет.>>1188976Формат mp4. Ссылки например на мадоку, кину качеств похуже если вдруг кто-то тоже захочет поэкспериментироватьhttps://pastebin.com/H40tu43hПросто "положить" файлы вместе не получилось. Скачался и записался один файл. Мб в коде можно что-то придумать, пока поковыряю эту идею, вдруг заработает "всё просто" и с хидерами, и метаданными (вряд ли, но почему бы и не попробовать).Думаю после этого доки на формат почитать, и пытаться выпиливать из файлов метаданные перед записью. mp4 это ведь как раз формат для даша.
>>1188988Лол, конечно один, переменную не переименовал...
>>1188988Блин фигню написал, опозорился в скриншоте. Думаю их нужно просто конкатенировать, после функции read это же просто строки получаются. Не знаю правда, что из этого получится.
>>1188976Да, способ "просто положить их рядом" не сработал. Проигрывается только первый файл.
>>1188924Покажи как это правильно сделать, плес.
>>1188996Разумеется, плеер-то читает метаданные этого первого файла, а что там после него находится уже и плевать. Я об этом и говорил.>>1188992>после функции read это же просто строки получаются.Не строки, а байты.>>1188988В общем, как я и говорил, просто отдельные короткие ролики.Я вижу тут несколько способов:1. Лёгкий. Потерять возможность стриминга, скачать все части, ffmpeg'ом их объединяешь без перекодирования и отдаёшь сервером уже полное. Долго ждать.https://trac.ffmpeg.org/wiki/Concatenate2. Сложнее, но "правильнее". Создаёшь m3u8 плейлист, на сервере скачиваешь и конвертируешь отдельные части в mpeg ts, подправляешь start offset у всех, чтобы плеер нормально загружал одну часть за другой. Так как всё скачивать сразу не надо, #EXT-X-ENDLIST в плейлисте не держишь, и с каждой новой скачанной и сконвертированной частью обновляешь плейлист (так что, с кешами осторожнее). В итоге и таймлайн норм, и стриминг есть.3. Хардкор. Не уверен, что сработает, но ты можешь попробовать: в первой части подправить данные длительности в mvhd и каждом tkhd на полную серию, во всех частях поудалять эти хедеры, соединив данные треков, ну а клиенту высылать данные на один запрос из нескольких источников по порядку. Что там ещё в контейнере нужно будет поменять я без понятия, придётся тебе много всего почитать в интернете и сидеть разбираться. По сути, это будет что-то типа ffmpeg'шного concat'а из пункта 1, но на лету и с возможностью быстрого старта. (Потребуется, правда, параллельно скачивать все серии, чтобы из первые килобайт повыдёргивать длительности треков.)В общем, развлечение на долгие недели ты себе, считай, нашёл.Что такое коди я понятия не имею и гуглить лень, если что.
ЧЯДНТ?
>>1189122Отвалилось.
>>1189122>>1189124Юзаешь виндоус
>>1189128И как фиксить. Посмотрел в sys.path, там пикрил. Это нормально?
>>1189132Причем так - работает. Я не понимаю.
>>1189134
Хочу набросать что-то свое для гарантированного удаления метаданных (включая маркеры которые пихаются в нестандартные места, куда позволяет формат, или вообще дописываются плейнтекстом за конец файла). С картинками просто, скрипт считывает картинку в массив и создает из него новое чистое изображение. А вот как на питоне считать и пересоздать пдфку, mp3, mp4? Суть в том чтобы извлекать только данные относящиесянепосредственно к контенту и избавляться от всего остального.
>>1189132>И как фикситьНакатить линукс или купить макбук, очевидно.
>>1189136Под каждый формат тебе придётся свой скрипт писать. Читать документацию к типу файла и соответственно обрабатывать, либо с помощью сторонних либ. Формально нужно просто перекодировать, тогда лишнее отпадёт. Но на магическую функцию не надейся.
>>1189084Спасибо анончик за старания. Жаль большинство вариантов не подходит. Если брать конвертирование "на лету", то это очень много ресурсов системных забирает. Сервер я планировал делать на клиентской машине, а учитывая что kodi (это ранее xbmc, мультимедийный центр для просмотра кинца\сериалов) ставится на андроид смартфоны\приставки и просто дряхлые домашние серваки, то этот вариант не подходит совершенно, учитывая что пытаюсь я эту хуйню обойти ради видео в качестве 1080р. Качать тоже не очень, т.к. для этого есть хорошие дополнения стриминга торрентов (но они не всегда удобны), тогда моя задумка немного теряет в преимуществах.А вот по хардкору я тоже думал сделать именно так, уже доки на формат нарыл, благо там всего 20 страниц. Да, затея люто геморная, но сейчас помимо этой задачи ещё дел выше крыши, поэтому пока отложу. Там вроде на форуме ответили что эту задачу можно решить в рамках самого этого медиацентра, но звучит прохладно.
Чессказать не понимаю в чём проблема таки взять и скачать. Если есть 1080р стриминг, значит канал нормальный. Зачем именно коди? Берёшь нормальный кудахтер, пишешь скрипт который качает и сшивает всё вместе обычным ffmpeg, с него же стримишь, да хоть в тот же коди. Время проходит — автоматически удаляется. Всё, проблема решена. Разве что ждать какое-то время после "заказа" понадобится. Но обычно это полчаса с таким-то каналом. Зато смотришь и не беспокоишься уже ни о чём.
А элементы среза сложить между собой можно?
>>1188883Переписал функцию уже, но все равно спасибоанон по-поводу файла
>>1189240можно
>>1189286Спасибо.
Аноны, не знаю куда обратиться, подскажите если кто знает хотя бы примерно в какую сторону гуглить и что может быть не так.Пытаюсь развернуть свой проект на впске, настраиваю supervisor + gunicorn, когда пытаюсь стартануть supervisor получаю такой трейсбек в логахFile "/home/svalee/quests_backend/../venv/bin/gunicorn", line 7, in <module> from gunicorn.app.wsgiapp import runModuleNotFoundError: No module named 'gunicorn.app'; 'gunicorn' is not a packageсам gunicorn стартует, если с директории проекта написать:gunicorn system.wsgiпо юрлу два файла с настройками supervisor и gunicorndpaste.de/bF7PВ чем может быть проблема?
>>1189179>то это очень много ресурсов системных забираетНе забирает. Нужно сменить только контейнер, само видео не кодируется.>ffmpeg -i part2.mp4 -acodec copy -vcodec copy -muxdelay 0 -muxpreload 0 -output_ts_offset 251.425 part2.tsВыполняется за доли секунды.ffmpeg умеет скачивать из интернета, и при этом направлять вывод в stdout.После того, как я вышеприведённой командой сконвертировал первые четыре части (мгновенно, напоминаю) и сделал вот такой плейлист https://pastebin.com/1eTE6LdT , можно спокойно запускать>python3 -m http.sever 8000в директории с этими файлами, идти на https://video-dev.github.io/hls.js/demo/?src=http%3A%2F%2F127.0.0.1%3A8000%2Findex1080.m3u8 и радоваться цельному стриму. Ну, главное не забыть указать правильные оффсеты для частей 2-4 (можешь взять для тестов из моего плейлиста, оффсет для части N равен сумме длительностей частей от 1 до N-1).Ну и остаётся дело за малым:1. Скачать первые 200байт видео, узнать длительность очередного видео из mvhdhttps://www.cimarronsystems.com/wp-content/uploads/2017/04/Elements-of-the-H.264-VideoAAC-Audio-MP4-Movie-v2_0.pdf тут легко и подробно расписано где что находится, struct в помощь.2. Запустить ffmpeg с нужными параметрами, ловить выход, перенаправлять в запрос от клиента. Ну или скачивать на диск и потом с него читать, если планируется несколько одинаковых запросов на один сервер.
>>1189317Из минусов, к сожалению, необходимость ожидания полной загрузки куска, по крайней мере в случае с hls.js, а для 4-х минут 1080p это занимает значительно время.Как вариант, оценить скорость скачивания и примерную длительность (я так думаю, там всё на сайте по ~4 минуты идёт), скачать первые 30 секунд и оборвать ffmpeg, а затем же качать целиком первую часть снова.Прелесть плейлиста и .ts (а именно вписанного в него оффсета) в том, что я могу иметь такое плейлист — https://pastebin.com/4iMp42zZ в котором первые 30 секунд p0.ts и p1.ts идентичны, однако так как p0.ts маленький, то и видео играть начнёт раньше, и когда придёт время играть 31-ую секунду, он спокойно переключится на p1.ts и продолжит с нужного места.
Почему я все еще могу получить ответ, будучи незареганым?
А тут получаю "CSRF Failed: CSRF token missing or incorrect." несмотря на AllowAny
>>1189346Собственно, вот всё то, о чём я говорил https://pastebin.com/KSCV7aJ0Ну, кроме короткой первой части. Способ рабочий, вручную проверил, но в коде этого нет (это ж надо из ffmpeg'а stderr перехватывать с длительность, ну его нахуй).Запускаешь, идёшь на всё ту же демку hls.js и направляешь на локальный плейлист и радуешься. По желанию можешь раскомменитить или заменить ссылки (которые в коде на 360, если что).В общем, доводить вещи до конца не моя специальность, свою долю интереса я вынес, дальше уже сам.
>>1189317>>1189346>>1189387Большое спасибо за инфу. У меня настроение уже заебало прыгать от надежд и разочарований с этой темой. Сегодня, спустя неделю после запроса, прислали наконец api к сайту, которое для решения задачи нихуя не поможет. В общем пердолиться по-новой начну уже завтра, сегодня надо передохнуть. Спасибо анон за труды! Сотни нефти!
>>1188553Бамп.
Ребят, помогите с заданием. Кто может решить лучше? Этот код делает что надо, но я постоянно ловлю таймауты. Как сделать его быстрее?
>>1189483Можешь попробовать вместо удаления из одного массива просто создать новый, и переносить туда непротивоположные инструкции в else'е.У меня такое решение там висит с давних времён, только с "лишней" рекурсией спойлер: в отличие от красиво сделанного бест практисес. Всё ок работало, но может ужесточали требования, не знаю.При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно. Добавлять же новый в конец (или удалять из конца), не считая моменты перевыделения памяти, очень дёшево.
>>1188085 (OP)Guten Morgen, Genossen! Heil unser'm Führer Van Rossum! Python Heil!
>>1189483если нет ограничений по памяти, то я бы разбирал последовательность через стек (если попался "противоположный" элемент, то делаем pop и переходим к следующему, иначе push), содержимое которого вернул бы в виде массива.
>>1188360спасаю твою жопу. забей хуй на джангу и бери айоху, забей хуй на рест и бери джейсон-рпц. в добрый путь
>>1189624Поздно, братишка, я уже малёхо разобрался и написал кусок апи.
>>1189627ах ты вонючка ебаная, чтоб у тебя мать сдохла в муках! тьфу блять
>>1189627бросай нахуй, я тебе серьезно говорю ))
>>1189631Что с жангой не так?
Помогите запустить или переписать так, чтобы оно заработало:Это декриптор для DES пароля с известным ключомhttps://pastebin.com/QHKHhFpNПри запуске ошибка:$ python dec.pyTraceback (most recent call last): File "dec.py", line 61, in <module> f_in = open(sys.argv[1],'r')IndexError: list index out of range
>>1189657Бля, ну поставь нолик вместо единички, и зачем вообще так по ебанутому открывать файл?
>>1189661>Бля, ну поставь нолик вместо единичкиПоставил, но чет хуйняpython2 dec.py[] Huawei Password Decryptor[]----------------------- [+] User: ('local-user' [+] Password type: in [+] Password: line)>так по ебанутому открывать файл?Могу еще так
Люди добрые. Как настроить в Visual Studio Code дефолтный дебаггер для питона? Эти суки после какого-то обновления сделали так, что нужно теперь сперва открыть папку, и потом там автоматически внутри создается папка .vscode с конфигурацией launch.json, где и выставлен дебаггер. Но мне нужно, чтобы открыл любой питон файл и сразу можно было дебаггить, собственно как раньше и было. Сейчас же блять после нажатия на зеленую стрелочку, сверху вылазит две опции Python и Python Experimental, которые нужно каждый раз вручную кликать, это бесит.
>>1189657Ты пытаешься добарться до первого аргумента, но при этом не передаёшь ни одного.>py3 dec.py 1 a mamasha>sys.argv[1] == "1">sys.argv[2] == "a">sys.argv[3] == "mamasha"Ты же просто py3 dec.py вызываешь. Какой ты надеешься файл откроется-то в твоём коде?!
3.6.5 or 3.7.0?
>>1189494>При удалении i-ого элемента питону нужно в памяти подвинуть все следующие (n-i) элементов. Соответственно, удалять первый элемент из миллионного списка довольно затратно.Ха, а я думал, что удаление элемента из списка работает так же, как удаление файла на пк: снимаем галочку с 'занято' и никогда больше не видим этот элемент. А оно вот так оказывается. Тогда ясно, почему таймаут был. Спасибо.Не знаю, где ты там смог рекурсию воткнуть, кстати. Я сразу сделал как бест практис, только с try except IndexError вместо if список. Мне кажется поймать IndexError когда он выстрелит из-за пустого списка легче, чем проверять, а не пустой ли список, на каждой итерации.>>1189503Во, вообще классная идея, так и сделал. хотел сначала добавлять по элементу, при этом смотря на следующий, и проверяя, а не противоположны ли они. со стеком намного меньше проблем
>>1189624>джейсон-рпцЕбаный стыд, зачем я загуглил это кирилицей?
Анон, помоги! С меня нихуя.def string_to_date(string): """ Перевод строки формата "ГГГГММДД" в объект datetime """ return datetime.datetime(year=int(string[0:4]), month=int(string[4:6]), day=int(string[6:8]))>>>string_to_date('20180514')ValueError: invalid literal for int() with base 10: '5-'
>>1189814Разобрался
>>1189819И как надо?
>>11897403.6.5 сейчас3.7.х через пару месяцев
>>1189826У меня эта дата идет в другие функции. Косяк там
Подскажите нубу:Есть скрипт на python который выполняется через cron раз в 10 минут.Необходимо вставить условие в скрипт, что бы часть кода выполнялась раз в сутки. Куда копать ? Можно брать unixtime и от него высчитывать но это как то криво, мне кажется.
>>1189879Вынести эту часть кода в отдельную функцию и сделать два крона.
Как мне из bytes объекта получить строку битов вида 0101010?
>>1189881Это очевидно, но у меня нет доступа к крону на хосте.
Добрый вечер, Аноны. Вопрос не сильно подходит по тематике, но надеюсь кто-то из вас сталкивался с таким вопросом. В общем, я купил ноут, и иногда пишу на нем когда не дома. Когда дома - комп. Так вот вопрос - как я могу объединить компьютеры, что бы писать код на ноуте, заливать его куда-то, а дома просто скачав откуда-то продолжать работу.
>>1189891git
>>1189893спасибо
>>1189742>Не знаю, где ты там смог рекурсию воткнутьНу я проверял пару элементов и если они не противоположны — добавлял первый в новый, "чистый" список и шёл дальше проверять следующую пару входного. Соответственно, если противоположными окажутся элементы 1 и 4, в моём "чистом" они всё равно окажутся, а значит нужно пройтись уже нему, чтобы почистить:>вход = ['n', 'w', 'e', 's', 'e', 'n']>выход = ['n', 's', 'e', 'n']>рекурсия>вход = ['n', 's', 'e', 'n']>выход = ['e', 'n']%%глупенький был тогда, топорно решал.%
>>1189657>>$ python dec.pyзапускай так$ python dec.py file
https://repl.it/repls/SorrowfulObeseProfessionalНужно получить из каждого листа в myarr элемент соотвествующий idx, то есть для первого листа нужно получить элемент находящийся по индексу который расположен в myidx на первой позиции, и так далее.Как?
>>1190195myarr[myidx]
>>1190199Ты вопрос не понял. Так мне возвращается лист, а мне нужнодля каждого листа получить элемент по индексу указаному в idx.
>>1189886''.join(bin(b)[2:].ljust(8, '0') for b in b'abc')
>>1190204myarr[np.arange(0, len(myarr), dtype=int), myidx]
Суть такова. Если в конце скрипта не обнулить список, то происходит резкий скачок потребления памяти. Пикрилз.В чем причина такого скачка? Ведь цикл закончился, и, кажется, должно произойти его пимное завершение без очистки списка.
>>1190220*мирное завершение
>>1190220А нет никакого скачка. Вон он там сожрал всю память под этот ебунячий список, дальше поработал с ним, вышел, память освободилась.
>>1190230>А нет никакого скачка/proc/meminfo фиксирует резкую убыль SwapFree
>>1190236Ну возможно. В питонах же каждый новый float это новый объект в памяти, вот и идёт постоянная аллокация. Потом запускается сборка мусора, которая тоже что-нибудь себе аллоцирует, вот и скачок. Под такие задачи нужно numpy использовать.
>>1190220Если хочешь более эксплицитно, то используй ключевое слово del.del x
>>1190205Сраный for. Я сидел и бился в конвульсиях, почему я не могу bin(b'a'), а оказывается bytes объект это сраный контейнер всегда, из которого числа надо доставать. Спасибо.
>>1190238>>1190265спасибо
Анон я заебался. Мне нужно асинхронно загрузить от 2 до 20 линков и сохранить все данные в список, например.С этим отлично справлялся gevent и grequests, но как только я запустил свой код там, где он должен работать, работать он перестал из-за обезъяних патчей и выхода нет.Блядь, как!? КАК? Мне просто нужно загрузить несколько сайтов, сука неужели так сложно написать пример как это сделать асинхронно на twisted или tornado пиздеееец!! Нихуя не понимаю, помоги анон.Питон должен быть 2.7, поэтому либо twisted либо tornado. Просто напиши или дай ссылку, как мне получить параллельно респонсы с двух сайтов, МОЛЮ!
>>1190330А нахуя асинхронно
>>1190334Ну параллельно, асинхронно. Потому что ссылок 20, если они выполняются синхронно, то это занимает 30 секунд, а если асинхронно то 10
>>1190297Ну можно ещё схитрить на самом деле:bin(int.from_bytes(b'abc', byteorder='big'))[2:]
>>1190330https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-exampleВообще вроде бы скрейпи умеет это всё асинхронно тащить. Там как раз для пауков всякая всячина.
>>1190297Ну ещё меня тоже удивило что (b'abc').hex() есть, а bin нет. Можно предложить Гвиде это в интерпретатор.
>>1190388futures вроде для 3 питона. Вот тоже натыкался на scrappy, пиздец. Вот анон, меня прям берёт грусть тоска, вот не знаешь ключевого слова, и хоть какие аналогии пиши в запросах гугла всё равно в ответ он будет говном кормить. Мне часов 4-5 потребовалось, чтобы нарыть, что scrappy умеет в эту хуйню, и то, краем глаза чисто случайно в ответах на стаке увидел. Ну, тащем-та это уже не важно. Буду иметь в виду. Нашёл замену grequests в виде erequests лол. Работает немного дольше, но работает
Двач, помоги. Я хочу сделать небольшой бекенд для своего прожекта. Суть в том, чтобы при обращении к беку, бралась строка со всеми значениями из большой матрицы в csv и отдавалась жсончиком в виде столбец-значение для конкретной строки. И вот я туплю че-то, потому что через django rest framework я делал только по моделям сериалайзеры, а как тут поступить?Нужно какую-то кастомную вьюху пилить, или как?
>>1190437https://github.com/mjumbewu/django-rest-framework-csvгугол никак?
>>1190473Я не понял, что это и нахуя оно вообще.Мне нужен не csv на выходе, а чтобы при обращении к, допустим, /items/[id пользователя] через pandas я находил бы нужную строку и брал оттуда данные. А потом уже возвращал в реакт.С матрицей часть я всю сделал уже необходимую, я не понимаю, как мне это в рест апиху добавить.
Антуаны, скиньте мб заданий каких начального уровня.Вроде разбираюсь, а воображения придумать задание - нет.Не скипайте, с меня как всегда - нихуя
>>1189164Пошёл нахуй, блять, с такими советами.мимо
>>1190552>С матрицей часть я всю сделал уже необходимуюТ.е. вся информация в SQL-базе? Если нет, тогда не сделал.
>>1190563http://www.codeabbey.com/index/task_listЕсли совсем начальный - кодкомбат.>>1189132Попробуй анаконду накатить, говорят хорошо сделали.Сам не питонирую на винде, не знаю.
Анон, помоги мне, я сейчас ебанусь. Как пользоваться VScode'ом ебаным? Вот я прочел их ебаный тутор с официального сайта, поставил venv, pylint, прописал настройки, и блять нихуя. Что написано в настройках? "python.linting.maxNumberOfProblems": 100 . Сколько ошибок он отображает? 1. Одну ебаную ошибку, всегда.Что написано в туториале? "Linting runs automatically when you save a file, and you can run manually using the Python: Run Linting". Что происходит при ctrl+p Python: Run linting? Нихуя. Вот у меня ошибка ALE BLYA, я эту строку делаю пустой, пишу Run linting, и после небольшой прогрузки, эта хуйня отмечает то же самое, теперь уже пустое место. И перемещается на следующую ошибку только посте ctrl+s, т.е. после сохранения файла. Это я ебанутый, или вскод? Я же все сделал так, как указано в официальной документации:https://code.visualstudio.com/docs/python/lintingУстановил, настроил, не работает.Вопрос: как заставить это работать? Как сделать так, чтобы линтер показывал сразу все ошибки, а не только 1? Как сделать так, чтобы линтер работал, когда выполняю 'Python: Run linting', а не только на сохранение файла? Почему все так хуево?
>>1190604Настройки отклеились
>>1190579Обновления на десяточку накатил уже, мань?
>>1190631Прыщеблядь, сгинь. Если не осилил окна - неча и рот открывать. мимо сижу на семерке, не обновлялся несколько лет
>>1190602Это еще зачем?Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.Неужели никто из анонов не знает? :(
>>1188085 (OP)Это снова аноний с удалением/изменением строк в текстовом файле. У меня полторы недели не было интернетов, так что отписываюсь так поздно.Первым делом хочу поблагодарить советчиков за помощь с подсказками для решения этой проблемы. На данный момент я добился следующего кода для замены строки в текстовом документе вида:Скушайещеэтихфранцузскихбулокfrom shutil import copyfrom os import unlinkcopy(textfile.txt, backup.txt)with open(textfile.txt, 'w') as file1, open(backup.txt, 'r') as file2:----for line in file2.readlines():--------file1.write('' if line == 'еще\n' else line)unlink(backup.txt)Итог по файлу:СкушайэтихфранцузскихбулокЧто просто прекрасно. Но после этого я с разбегу впечатался в кирпичную вкладку, когда захотел стереть ДВЕ строки.Я использовал два способа:1) Пытался свести две строки в одну:...--------file1.write('' if line == 'еще\nэтих\n' else line)что не помогло: не изменилось ничего.2) Пытался использовать несколько if'ов одновременно:...--------file1.write('' if line == 'еще\n' or line == 'этих\n' else line)(аналогично, если использовать более громоздкие if'ы для каждой строки отдельно)что привело к тому, что стирается только последняя указанная строка (то есть если if-statement'ов дохуя, сотрется почему-то только последняя из указанных, хотя по логике все if'ы должны срабатывать одновременно, ибо они не elif'ы).У меня остается только последнее решение, к которому я не хочу прибегать совершенно, а именно: для удаления каждой строки использовать весь код, начиная с создания бэкапа и заканчивая его удалением, и так повторять до посинения, пока все нужные строки не исчезнут. Но это пиздец, сами понимаете.Что я упускаю, подскажите, пожалуйста.
>>1190656>Там в матрице и так 6 млн записей, она общитывается секунд 10 на моем пека и так, через бд вообще вечность ждать буду.Парсить + отправлять в базу будет долго, да. Но зато на выходе селектить будет на много быстрее чем сейчас
>>1190635Поссал тебе на ебало. Как там, на неподдерживаемом говне сидеть?
>>1190681> Как там, на неподдерживаемом говне сидеть?Ыы обновка обновочка ням))Самому не противно, дурачок? Даже самые основы основ учат, мол, работает - не трогай.покормил
>>1190681Он же написал, что ему хуёво. Ничего не работает, ааа, помогите...
>>1190724Не противно, я-то обновляюсь с умом, когда не предстоит никакой важной работы. А виндобляди в интернете тут и там горят от внезапных и неотменяемых обновлений.Вообще не знаю, почему ты загорелся от невинного совета попробовать кодить под линуксом, ведь он объективно более удобен для этого.И ты забываешь, что спермёрка уже даже не ЛТР, новое железо под ней уже заводится с плясками.
>>1190727Справедливости ради: отладчик в VS - это сказка. GDB и LLDB - флюгагехаймен по сравнению с VS.Сам сижу на лине и не понимаю, как коллеги юзают винду, но жутко завидую их отладчику, он божественнен. Видать только с таким можно продолжать пилить ось, на которой он работает.
>>1190733Мне нипанять, не юзаю IDE. Атом наше всё.
>>1190635> Если не осилил окнаНу так помоги тому c проблемами тогда, осилятор.>>1190658>('' if line == 'еще\nэтих\n' else line)Вполне работает. https://repl.it/repls/AlienatedUnfoldedWorker Однако, это очень коряво такое в write() вставлять, в любом случае.Лучше сделай проверочную функцию:>if need_to_write(line):> file1.write(line)А внутри уже какие угодно условия делай.Или, если строку нужно изменить, можно>file1.write(process_line(line))А там оно уже вернёт '', неизменённую line или какую другую любую строку.>line == 'еще\n' or line == 'этих\n' Вместо этого можно >line in ['еще\n', 'этих\n']Намного короче получается.>for line in file2.readlines():Совсем не обязательно readlines() делать (который сразу весь файл читаеть и в память загружает). Можно и просто>for line in file2:Тогда в каждой итерации будет читатсья по строке. Полезно для крупных файлов.И последнее>'еще\n'А что, если это последняя строка? Там \n может уже не оказаться. Советую игнорировать переносы (hint: str.strip) при обработке.>-file1.write('' if line == 'еще\nэтих\n' else line)Потому что line у тебя всегда одна строка, в ней не может быть и ещё, и этих, потому что это две строки. Вроде логично же, не?
>>1190330мультитрединг
Каков pythonic way для чтения и обработки только первых строк файла?
>>1190772> Ну так помоги тому c проблемами тогда, осилятор.Тоже ебался с подобной проблемой, фиксил добавлением всевозможных путей к питону.
>>1190966Прочитать и обработать первые строки файла. Что за вопросы, блин? Не читай в память то, чего тебе не нужно, больше ничего тут не ответить.
>>1190979for lineno, line in enumerate(f):....if lineno > 3: breakвот какой ответ я ожидалвот что нужн применять вместо классического счетчика
>>1189164Кстати таки накатил линукс. Виртуленв работает без костылей, в вскоре модно даже выбрать в качестве интерпритатора, ахуенно.
>>1190987> можно, интерпретаторафикс, сижу со смартфона
>>1190992Как же я блядь обосрался, господи. Не пинайте.
>>1190604Нашел ответ человек в телеграмме. Если у кого будет та же проблема: https://github.com/PyCQA/pylint/issues/1021
Сап программач, есть одна переменная. Она парсится из текстового файла. Переменная, должна отдаваться клиенту при каждом запросе. Текстовый файл периодически меняется. Соответственно, переменная должна меняться тоже. Внимание, вопрос: как используя джанго, мне лучше засунуть переменную в память, чтобы при каждом запросе не парсился текстовый файл с диска?
>>1191100Возможно повесить листенер на обновление файла с переменной?
Немного двачну вопрос >>1191100Только меня интересует как написать скрипт который бы получал эвенты изменения файлов в директории. Или это сложно/не кроссплатформенно? Я на винде сижу.
>>1191117Ты это имеешь в виду?https://docs.djangoproject.com/en/2.0/topics/signals/Я нуб просто
какого хуя я не могу сделать map none, а не делать костыль как на втором пике? Я ведь всеравно передаю мап только через конструткор, каково хуя оно матерится даже просто при импортировании данного класса?
>>1191100Засунуть в редис или мемкешд.Другое дело, нахуя тебе это? Прочитать файл с диска – это не дороже, чем в базу один раз сходить.
Где можно почитать про ООП, чтобы было максимально понятно и просто, но при этом подробно?
>>1191166> Прочитать файл с диска – это не дороже, чем в базу один раз сходить.Даже если база на локалхосте?
>>1191171Да
>>1191129Потому что ты блять ебанутый, ты вообще понимаешь, что ты делаешь и зачем?1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.2) У тебя в словаре pos используются операторы доступа к map, вот эти скобочки []. Они подразумевают взятие элемента из контейнера - списка, тупли, вообще из любого объекта, у которого определен метод __getitem__. И внезапно, у None'а этого метода нет, потому что это не список и не тупля.3) Что бы ты в конструктор не передавал, это запишется в self.map инстанца, а в определении класса вне метода __init__ у тебя будет отдельный map, который всегда равняется None. Есть атрибуты инстанца, которые уникальны для каждого объекта класса, а есть атрибуты класса, которые одинаковы для всех экземпляров класса.
>>1190772>Вполне работаетБля, я хз, как это раньше у меня не работало. То же самое повторил: реально пашет.Я думаю, для меня это самый удачный вариант. За>>line in ['еще\n', 'этих\n']отдельное спасибо. Так действительно красивее.Хотя я тут глянул, как я исходно делал, возникает проблема (см. пик). После выполнения стирается только последняя указанная строка. Вот о чем я говорил.Алсо строка выше работает, только если требуется заменить строки под одну копирку (в данном случае если все строки надо удалить). То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять? Потому что если попробовать еще раз через file1.write, то он мне по мне строчки будет в файл записывать.Это бы решалось во втором варианте с кучей if'ов, но строка меняется только последняя, как я и говорил.
>>1191182>то он мне по мне строчки то он мне по ДВЕ строчкиЗапоздалый фикс
>>1191177>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? он подсвечивается только в ебанутом текстовом редакторе, в пичарме такого нет.>2,3Походу понял свою ошибку. Словарь pos инициализируется при создании обьекта и принимает значения для того мап, который None ну или [[1,2],[1,2],[1,2]] с моим неработающим костылем, да? Тогда для этого словаря надо сделать что то типа геттера?
Как решить? str воткнуть перед хелло?
>>1191215>Virna
>>1191209>в пичарме такого нет.Специально запустил свой Пичарм, чтобы пописать тебе на лицо.> Словарь pos инициализируется при создании обьектаСловарь pos инициализируется, когда выполняется определение класса.>Тогда для этого словаря надо сделать что то типа геттера?Оверкилл, мне кажется. можно сделать значениями словаря lambda self: self.map[self.X][self.Y+1], и потом передавать им self инстанцов класса.
>>1191220пидор \(._.(/
>>1191177>1) Тебя не смущает, что твое слово map ПОДСВЕЧИВАЕТСЯ БЛЯТЬ? Охуенно тебе builtin функции ломать? Никогда так не делай, иначе Гвидо отрежет тебе голову и насрет в горло.Ага, только использование имени builtin-функции качестве имени аттрибута (ну и в параметрах конструктора) я регулярно встречал в доках и исходниках крупных библиотек. И PEP8 это не запрещает.мимикрокодил
>>1191243>я регулярно встречал в доках и исходниках крупных библиотек. Я тоже. Но это все равно хуйня полная, зачем так вообще делать?
>>1191220просто я однажды скинула так же, а на меня весь тред кинулся, так что приходиться скрываться. Так объяснишь в чем я обосралась?
>>1191254ПАЦАНЫ, ТУТ ЖИВАЯ ТЯН-ПИТЯН
>>1191269Еще и сокеты трогает руками, а не хелоуворолды
>>1191253А почему бы и не сделать? Уродство вроде id_, max_, len_ - лучше?В случае имени аттрибута - это вообще никак не влияет на builtin'ы.В случае параметра __init__ - в его скоупе использование какого-нибудь id или map маловероятно, а если и вдруг понадобиться - ты никак не сможешь не заметить обосрамс в таком крошечном скоупе и так и быть переименуешь в id_.Но аутистов очень смущает то что map синтаксически выделяется другим цветом по себе знаю.И кстати это проблема VSCode хоть я и сам на нём сижу по многим причинам - подсветка синтаксиса в нём строится только на тупых регулярках и никак не сможет например различить где действительно идентификатор builtin'а и где локальная переменная. Но пример проблемы Питона не особо страшный. А вот в сишке невозможность различать функции и макросы - это пиздец.Всякие йоба-IDE в такую посветку обычно могут, "легковесные" - нет.
У Гвидо типично лицо голландского пидорка.
Кстати, можно ли в питоне перегрузить оператор сравнения для строк, например?
>>1191345Делай свой класс, наследующийся от str и перегружай __lt__, __gt__, остальные.
>>1191348Гавно, т.е. мне всегда придётся оборачивать строки в мой класс. Не катит.
>>1191343Каждый день вижу голландских пидорков, сразу по харе определяю где пидорок, а где ещё сомневается.
>>1191354Шлюха
>>1191182>(см. пик)Ну так ты на свои if'ы ещё раз взгляни. Ты не в курсе elif'ов?Твой код работает так:1. Если "ещё" - пустую строку2. Если "этих" - пустую строку, иначе line.Так вот, "ещё" != "этих", а значит при прочтении этой строки твой код попадает в блок else'а. Тебе нужно было if, elif, else делать.>мне по новой всю часть кода с создания бэкапа повторять?Нет. Я ж для чего и сказал, что нужно сделать отдельную функцию для обработки строки, которую будет возвращать то, что нужно записать в файл. Таким образом у тебя будут отделены блоки чтения-записи и обработки.>>1191345В питоне нет перегрузки. Но ты хотел сказать переопределить, конечно. манки-патчинг тут зашёл бы: ClassName.__eq__ = your_eq_function, но у builtin'ов их изменять нельзя, к сожалению (или к счастью). Так что, да, только оборачивать в свой класс. Но ты лучше задачу опиши, может ты хуйню какую творишь и лучше бы тебе просто функцию нормальную написать, а не гнаться за типа коротким str1 == str2 вместо compare(str1, str2).
>>1191417>у builtin'ов их изменять нельзя, к сожалению (или к счастью)JS'овцы, кстати, на этом уже попались разок и частично подгорают, шумиху какую-то подняли, потому что какая недобиблиотека переопределила что-то в стандартных прототипах, а теперь это имя хотят для другого использовать. Чем закончилось всё не знаю, буду раз, если по хардкору пояснят.
>>1191417>по поводу переопределения.Хотел переопределить операцию сравнения для строк, чтобы попробовать небать тесты.Мой лучший результат 4-попугая, в то время как самый лучший 1.Вот я и подумал, может кто-то сломал тесты.Кстати, задача простая:Есть список objects, надо подсчитать кол-во уникальных объектов в нем.Например:len(set(map(id, objects)))Попугаев дают за эффективность и краткость кода.Как можно эффективно и красиво пробежаться по списку?
>>1191429А зачем тебе тут map? объекты хешируемы? Если да, то сразу set на список и вызывай. Алсо, где тут вообще у тебя строки-то? id так-то число возвращает (адрес в памяти, если CPython).
>>1191432Проблема в том, что у 1 и True один хеш из-за преобразования.А надо либо is либо id сравнивать.
>>1191434А, ну тут проблема, да. А дай ссылку, что ли, поиграться там. Так-то кроме id эти два ничем друг от друга и не отличить, вроде, поэтому даже явное прохождение в лупе со счётчиком и словарём для "встречавшихся" элементов ничего не изменит. Разве что за один проход, а не два.
https://boostlog.io/@anshulc95/making-a-python-script-to-get-desktop-notifications-on-cryptocurrency-prices-5afc499347018500491f481c
Как сделать чтобы мой скрипт устанавливался через pip с гитхаба?
>>1191483Денюжку заплати.
>>1191490Схуя ли? Пип платная хуйня? Да ну нахууууууй.
Учу Питон уже полгода. Постоянно хочу спать и есть, падаю на диван, не могу сконцентрироваться. Сейчас заметил, что пока полчаса читал книгу, постоянно тер правую руку левой. Это нормально?
призывается бородатый бдшникситуация: есть одна sqlite3 бд, в ней 130+ таблиц. В эти таблицы постоянно пишется дата, которая парсится с некого api. В тоже время, из этой базы берется эта же дата на обработку. То есть постоянный insert'ы и select'y. Как бы ускорить это дело? все, конечно, на python
>>1191626PostgreSQL + aiopg/asyncpg = profitЕсли insert`ов больше подумай о хранении в кэше каком, обработка и лишь затем запись обработанного.
>>1191626у скюлайта есть куча настроек, гугли, отключи например журналирование или засунь все в память
>>1191626Ещё один идиот выбрал SQLite не понимая для чего этот самый скулайт создавался. ЗАТО РАЗВОРАЧИВАТЬ НЕ НАДО. Ебись теперь, земля тебе пухом.
>>1191685Для чего он создавался?
>>1191436Держи:stepik .org/lesson/24458/step/9
>>1191436Всё, разобрался exec() оптимизация.
>>1191417Спасибо большое тебе.Я не совсем понял про твои функции, но обошлось и без этого. If'ов - elif'ов достаточно. Все теперь работает как часы.Ты очень милый анончик.
>>1191732>Я не совсем понял про твои функцииhttps://repl.it/repls/WoefulJumboLibrary
>>1191706Хех, ну я вижу уже в описаниях на сайте они там совсем упоролись и рекомендуют пихать скулайт везде кроме бигдаты. Вообще он создавался для встраивания в приложения, в классические десктопные такие, где точно никаких больших нагрузок нет, никакого конкурентного доступа.Ну вон, как видишь тот анон хочет уже ускорить. Осознание поздно, но приходит.
>>1191741Хм, собственно, ничем это и не отличается от моей реализации кроме того, что оно без определения функции и встроено прямо по ходу кода.>if line:> line = line + "\n"Интересное решение. Теперь понятно, почему функция FileInput() автоматически проставляет красные строки после своего завершения. Что-то подобное встроено в нее изначально. Возможно, тогда стоит сразу ее и использовать, чтобы не копировать оригинальный файл отдельной строкой (там встроенный backup есть).
>>1191719>stepik .org/lesson/24458/step/9 Your code complexity score is 6.08 (best for this step is 1.0).Почти закончил курс, большинство задач с best for this step is 1.0, когда я решаю за 3-8 секунд. Или я макака совсем, или в чем там дело?
>>1191767>>1191728
>>1191100Watchdog
>>1191743Ясненько, я раньше ее юзал при разработке, до релиза, а затем перекатывался на постгрес.Сейчас даже таким не занимаюсь.
>>1188284Пустая строка интерпретируется как ложь, то бишь пока ты не выедешь одну букву и не нажмёшь энтер, он будет спрашивать перевод с перехлестом(для хуевиндовщиков, вроде меня) каретки не записывается в строку, можно считывать значения с побайтно, и джойнить их в строку, тогда даже перевод уже будет засчитан
>>1191741я бы так реализовал https://repl.it/repls/HighNeatAngles
>>1191743так на что тогда мигрировать? поглядел кучи рецептов по ускорению, вплоть до эксплоитов на плюсах, кажется. Индиксация мне не подходит, потому что постоянный Insert. Думаю, остановится на многопоточности и реализации шаблона consumer. Еще говорят, есть кучи конфигов, которые не гонятся за производительностью. Может быть вместе и сработает. Ну а еще докучи буду писать в память и только читать. Раз в какое-то время дампить в базу на диске. Если был опыт в этом - коммить, анон
>>1191825как приноровился? бесперебойная анлим РАМ
>>1191904Что именно? Перекатываться на постгрес или юзать склайт?
>>1191490Тебе на лечение?
>>1191910>склайт
>>1191182> За> >>line in ['еще\n', 'этих\n']> отдельное спасибо. Так действительно красивее.Красиво обыденно, но не корректно с точки зрения выделения памяти тут нужна тупла, а не лист
>>1191483Никак. Насколько помню есть какой-то пакет который умеет исходники тянуть с гитхаба и подрубать это говнище в рантайме. Для пипа есть pypi
>>1191483Не уж то анон высрал что-то полезное, чем не стыдно поделиться с комьюнити?
>>1191913Ну так а что, понятно ж о чем речь? Лень раскладку переключать
>>1191925Какой нибудь очередной парсер, который будет с виабушных сайтов пикчи аниме-девочек тянуть.Хули, на что еще способен анон?
>>1191934На обертки над API
>>1191933как принаровился, имею ввиду, юзать склайт? или переход на постгресс и было принаравлением? А щас чем пользуешься? какие профиты?
>>1191939А хули им юзать учиться?Тот же синтаксис +/-, подрубаешься и через курсор погнал ебашить команды.Для постгреса потом другую либу и немного синтаксис подправить, если надо.Профиты?Ну если приложение нагружает БД то склайт сосет, а постгрес работает(хотя иногда и он 16 гигов оперативы сжирал и ложил комп). В склайте нет ilike, если делать поиск, то это критично.Приноровлений никаких не было, все как по маслу.Сейчас постгрес юзаю, все хорошо.
>>1191944звучт отлично
>>1191944зацените на грани бреда: а что если, я сделаю каждую работу с таблицей как отдельную базу данных? И буду в 135 потоках ебашть в них асинхронно? Ну и запрашивать в этом же потоке.Может так быть?
>>1191902То что ты описал похоже на обычную очередь. Там тебе SQL в любом виде не особенно нужен. Не знаю что там за 130 таблиц, обычно 100+ таблиц это невъебенно сложное приложение которое разработывали лет пять. Телепаты в отпуске.
>>1191970агрегатор всякой залупы. Это на бэкенде сервачек парсит все что может. Там много одинаковых объектов: поля и домены ве сейм щит. И к ним даже идут одинаковые запросы из бэкенда. Вот этих таблиц 135. Окола 90 - подобны. Они заполняются в цикле и читаются тоже.
>>1191970а как тогда организовать хранилище и анализ данных? Как быстрее - так мне и лучше
>>1191935а что если это обертка над оберткой с тонной зависимостей и нулевым выхлопом?Как-то рас пришлось беседовать с аноном - супер прогером сеньером помидором и 250к/мс со слов мудозвони, он ява-дрочер и не знал, что такое ООП на принципиальном уровне
Реквестирую практические задачи по типу: бот в дискорд, который будет добавлять сообщения и автора/дату в БД, прогноз погоды в том же боте, не используя API, гуй-окошечки и подобное.Может что на графы, но их пока не освоил нормально.
На скрэпинге вообще возможно заработать? Заказчиками являются всякие чедушные магазинчики, которым нужно базу забить дерьмом с агрегаторов? Кто-нибудь работал в этой сфере?
>>1191985>не знал, что такое ООП на принципиальном уровнеон тебя наебалсхлопотал ооп головного мозга в андроиде
>>1191988Скрепинг это донное днище разработки. Если хочешь этим заниматься иди либо в Scrapinghub сразу работать, либо найди себе команду аналитиков и осваивай бигдату сразу.
Привет, аноны.Подскажите, как мне сделоть удалённое редактирование и отладку (особенно отладку) питоньей программы на удалённом сервере? Локальная машина на дебиане (можно пересесть на вин 10, но не хотелось бы). Джва часа проебался с vscode и ptvsd и в итоге упёрся в баг, который они ещё не пофиксили - не останавливается на брейкпоинтах.
>>1191986Присоединяюсь к господину
>>1191985Ну так можно все обёртки над API вырезать нахуй.Если сервис популярный и API состоит не из парочки методов, то почему бы и не создать заранее готовое решение для работы и упрощения жизни?
>>1192009Логи тебе и тонны боли в помощь
>>1192013Логи не помогут, разрабы vscode/ptvsd признали это багом месяц назад.Как редактируете-отлаживаете удалённые проги в своих проектах?
>>11919771. Оптимизируй свои запросы и ключи в таблицах2. Перекатись на PostgreSQL, это не должно ничего поломать в твоей БД и программе3. Если хочешь больше инфы - неси конкретику о таблицах и данных
>>1192014Причём тут vscode твой?Запускай программу из консоли на том серваке и выводи промежуточные результаты работы.Я так и делаю.А лучше про брейк поинты питоновские почитай, авось поможет.
>>1192016>Запускай программу из консоли на том серваке и выводи промежуточные результаты работы.Ты хочешь сказать, что это обычное дело в питономире? я крестоблядь прост Судя по тому, что такой функционал есть, похоже, только в PyCharm Pro, дохуя кто живёт именно так.
>>1192020> Ты хочешь сказать, что это обычное дело в питономире?Не совсем, я просто таким не страдаю и вообще я быдло.Я же сказал, почитай вот про это:https://docs.python.org/3.6/library/pdb.htmlВдруг тебе поможет.> такой функционал есть, похоже, только в PyCharm ProP.s. О каком функционале речь?
Господа, я ньюфаг в пайтоне, нужна помощь. Суть - не могу узнавать что то новое просто так, обязательно нужна практическая цель. Посему реквестирую список тасков, от самых азов до полноценных приложений. могу конечно универские лабы с плюсов переписывать, но это тупо как по мнеИ еще - в какой иде пишете? Мне удобно когда можно писать код, компилировать его одним кликом и дебажить в той строке, где компилятор ругается. Пока использую компиляцию через консольку, но как то неудобно.
>>1192030VSCode если готов почитать доки чтобы писать таск-конфиг для "запуска одним кликом".Пайчарм я сам не люблю, но там наверное с "одним кликом" проще всё, но менее прозрачно.
>>1192031> менее прозрачноПосле МВС меня это совсем не пугает, спасибо.
>>1191757>кроме того, что оно встроено прямо по ходу кодаНу так я вот именно это и убирал же.Вообще, что именно ты имел в виду под >То есть если мне захочется превратить слово "французских" в "немецких", мне по новой всю часть кода с создания бэкапа повторять?? Если ты хочешь второй раз пройтись по файлу, то в принципе да, всё заново, но смысл в том, чтобы за один раз всё сделать.Ну и про бэкап. Зачем? Просто пиши в другой файл. А то ты копируешь файл 1 в файл 2 и потом, читая файл 2, пишешь в файл 1. Чего бы сразу не читать файл 1 и писать в файл 2-то? Если имя файла так нужно, то переименуй файл1 в файл2, *копирование, не имеет никаго смысла, потому что ты всё равно потом удаляешь и перезаписываешь всё содержимое.
Пиздец, на арифметической (наверное) задаче туплю.Как найти кол-во байт нужное для хранение числа (положительного)?Желательно не используя битовые операторы.Я высрал только ((-x.bit_length() % 8) + x.bit_length()) // 8это норм или хуйня?
Какой стек технологий нужен для удалённой работы?Анализ вакансий для удалёнки немного разочаровал, работы не так много и в основном это бекэнд.Всем нужны JS макаки
>>1192055Байт не обязательно равен 8 битам. Хотя питоний интерпретатор вряд ли портировали на такие пизданутые платформы.
>>1192057Django или Flask/Scrapy/Selenium/Requests/bs4/БД какую, в том числе не реляционную/Англицкий
>>1192009ipdb
>>1192015> неси конкретику есть одна бд (свой агрегатор). В ней 135 таблиц. Все таблицы - подобны (одинаковые домены). Эти таблицы заполняются в цикле по одной. В том же проходе эта таблица читается. 1 insert | 2 select'а. Полный проход цикла занимает от 340 сек до 700сек. Этот бэкенд на фласке питоне создает рест апи.Как проще и доступнее организовать данные, чтобы их можно было легко записывать и тут же запрашивать анализировать?
Чёт я взгруснул когда увидел какой охуенный, ОППшный у пхпшников враппер для ffmpeg: https://github.com/PHP-FFMpeg/PHP-FFMpegА у питона хуйня которая только передаёт аргументы в Popen и проверяет что returncode не нулевой:https://github.com/Ch00k/ffmpy/blob/master/ffmpy.py
https://youtu.be/pMgmKJyWKn8
>>1192168>Полный проход цикла*полный проход всех 135 циклов
>>1192171>Полный проход циклаполный проход всех 135 цикловвсе верно.
>>1192169Хуёво, наверное, быть особенным?https://github.com/readbeyond/aeneas
>>1192170О, круто PyCon уже в этом году был.По-моему даже в JS-мирке аннотация типов (Flow/TS) намного популярнее чем у питонистов.Я пока ни одну либу не встретил с аннотацией в сорсах.
>>1192045Эм, мне нужно изменить исходный документ в том же самом месте, где он первоначально лежит. Если следовать твоей инструкции, мне придется копировать имя оригинального файла, производить основные операции, удалять оригинальный файл, а затем присваивать его имя новому файлу. С бэкапом проще, как по мне.
>>1192177>aeneas is a Python/C library and a set of tools to automagically synchronize audio and text (aka forced alignment).И при чём тут ffmpeg? У него вообще-то функционал намного шире чем >automagically synchronize audio and text
>>1192178Ну это относительно недавно стало вот так вот выкатываться, раньше про такое никто особо не говорил, может взлетит, библиотека для проверки уже есть.Думаю в следующем прожекте попробовать такое, выглядит довольно полезно.
>>1192180> ffmpy is a simplystic FFmpeg command line wrapper.Так а что ты от той библиотеки хотел?Мало функционала? Добавь свой, это же гитхаб.
>>1192188>Так а что ты от той библиотеки хотел?ООП-ориентированный интерфейс к ffmpeg, вместо нечитаемой срани.>ffmpeg -r 1 -loop 1 -i shit.jpg -i piss.mp3 -map 0:v -map 1:a -c:a libvorbis -q:a 9 -c:v vp9 -b:v 0 -crf 16 -g 64 -vf scale=-1:420 -shortest fuck.webm -ystdout которой ещё потом придётся парсить.>Мало функционала? Добавь свой, это же гитхаб.Для того чтобы написать такую либу мне сначала придётся хорошо изучить ffmpeg (и вообще кодирование аудио/видео).А тогда уже мне эта либа будет не нужна.
>>1192192Ну тогда сиди, жди дальше.Удачи
>>1192193Да мне и не сильно нужно было, пока хватает subprocess.run без всяких либ.Просто взгруснулось от того что у пхпшников есть, а у пиздонистов - нет.
>>1192055всего на всего:x.__sizeof__()любой класс унаследованный от object имеет этот метод
Анон, не могу создать Postgres db в Visual Studio 2017 через Python. Поглядел все туторы - и ничего не подходит, я чего-то не догоняю, но не знаю чего
>>1188818Что за сайтец? Или прога? Крч где подобные задачки выполнять с проверкой?
>>1192215codewars
>>1188818int('0000') это 0, то бишь False, а False and True это False
>>1192211Для начала снеси VS и научись, блять, базовой ебле в терминал.Затем $ createdb db_name. И вообще https://www.tutorialspoint.com/postgresql/index.htmНе создают базы "через питон". Создают консольными утилитами и потом подключаются к ним в питоне.Но на твоём уровне вообще не рекомендую трогать psql, будет слишком больно. Для начала научись всё делать без ссаной IDE, потом попердоль sqlite.
>>1192220>без ссаной IDE, потом попердоль sqliteпереезжаю с склайт. Без иде в рот ебал. Все создал через AdPostgress. Да, все происходит на винде. В рот ебал терминал, пользуюсь python. Все норм.пойми, я не ради технологий делаю, а ради результата, который мне нужен чтобы облегчить и автоматизировать другую работу.
>>1192216Добра тебе, анон
>>1192216забавно
>>1192221Ну удачи, надейся что твои остануться достаточно лёгкими под них можно было найти кнопочку в IDE.Просто если ты тратишь часы на то чтобы решить проблему, но реальных знаний не получаешь, только находишь нужную кнопочку - в дальнейшем так и продолжишь тратить время на поиск кнопочек, вместо того чтобы начать понимать что ты вообще делаешь и научиться решать сразу пласт задач.
>>1192225hola vpn
>>1192231пикрил на нордике
>>1192230понимаю о чем ты, прост голова другим занята, самими решениями, а не базой, на чем все работает
>>1192230ты какой-то ярый противник ide и терминалодрочер? что плохого в ideшке? ну vs от мелкомягких не в счет, юзать эту санину - себя не уважать, то же самое касается шарпа и всего .net
>>1192192там особо и паристь нечего, в stdout - строка байтов, просто раздеребань её на список и найди в цикле все нужное, поскольку она айпа, то можно это делать рилтайм в отдельно процессе, сложно ничего нет, но оборетка реально дерьмовая и особого смысла в ней нет, подтверждаю, сам юзал стандартный Popen, к слову, если тебе нужно просканить результат после скачки и неважны ошибки, то резоннее юзать check_output
>>1192236Проблема не в самих IDE, проблема в тех кто юзает IDE на стадии обучения, а потом не понимает даже как скрипт запустить без этой IDE.На "легковесные" IDE вроде VSСode это не распространяется.
>>1192238мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется) и много ещё других плюшек, которые просто облегчают жизнь, тем более, ты ведь знаешь что такое cmd винды и можешь адекватно оценить как вней работать (в сравнении с терминалом юникса), даже по человечески нельзя скопировать и вставить, не говоря уже об отсутствии возможности создавать виртуальные терминальные окна и всего прочего
>>1192240>мне кажется, что как раз в процессе обучения необходимы IDE (ведь речь идет не о бд, а о питоне?), ибо нет геморроя с табуляцией и можно легко посмотреть реализацию метода и документацию (если имеется)Я не предлагал писать код в vim. Всё это есть и в VSCode.А вот запускать код нужно сразу учиться из терминала, а потом автоматизировать запуск/сборку скриптами или средствами >тем более, ты ведь знаешь что такое cmdЮзаю под виндой git-bash + Cmder. Настраивать их было немного больно, зато cmd не трогал никогда.Для обучения лучше сразу ставить линукс, хотя бы на виртуалочку.
Научился писать калькуляторы. Что дальше? Как начать писать приложения? Что почитать, где есть обучение вот этому вот всему(желательно на ангельском).
>>1192247программируем на python Марк Лулзпотоm фрилансеть
>>1192261Я его почти всего прочитал
>>1192276Анализируй проэкты на гитхабе, улучшай их или добавляй фичи
>>1192276ну походу ты тогда какой-то дурачок, раз все прочитал и не знаешь куда приложить умения
>>1192247А что ты хочешь уметь? Для чего питон учил?
>>1188085 (OP)Сам змеяч, хочу вкатиться в джангу, но есть проблема, именно - куда вкатываться?Есть джанга 1.1 но она устаревает, а есть джанга 2.0, но по ней маловато гайдов. И то, что по идее работает в 1.1 в 2.0 уже не работает. Мне надо понять полный принцип работы, но мне неохота курить устаревший материал.
Здраститя. Я мудак, и склеиваю sql-запрос простым сложением строк. Так сложилось исторически. В запрос идут параметры из QueryDict. Никак не могу понять, как мне добавить во входящие строки экранирование, допустим, одинарных ковычек чтобы избежать sql-инъекций
Аноны, на что Celery может ругаться? Когада пытаюсь запустить таски с ключом -B
>>1192352Раньше всё блять работало, прошло два месяца и пиздец, уже где-то что-то проебал.
>>1192347в чем суть вопроса?ты не знаешь как экранировать спецсимволы?ты не знаешь что строки могут обрамляться 3-мя типами символов: ', ", """ ?
>>1192347слепые скульные инъекции до сих пор ещё эксплуатируют?
>>1192356>в чем суть вопроса?Допустим приходит запрос ebola.com/show_me_dvacher?name=karasikСклеиваем запрс:sql_request = 'select dvacher.face from dvacher where dvacher.name like \'% + QueryDict['name] + '%\'Так вот, если придет name=kar`asik, запрос не выполнится. Как сделать так, чтобы в запрос шел не kar`asik, а kar\`asik?
>>1192359Да такто пох эти инъекции, у моей джанги права только на select, просто хочется чтоб запрос все равно выполнился
>>1192170Блять, меня смутило на ~20:04 то что для JSON'а неизвестной "формы" он использует Any.JSON же вполне определённую, хоть и рекурсивную структуру имеет.Погуглил, да, в рекурсивные типы пока не могут:https://github.com/python/mypy/issues/731
>>1192170Решил посмотреть, хотя только вкатываюсь. Если я когда пойду на работу начну везде тайп чекинг кидать, мне скажут, что я молодец или ебанат?
Хелп нуфагу, плес. Как в этом куске кода может меняться массив vals? Я уже голову поломал.
>>1192170Что случилось в мире, что теперь в питоне затребовались типы?Небось ещё скоро объявлять переменные захотят.
>>1192427покажи весь код
>>1192427ты явно выкатился в из СИподобия, в начале тоже такое безумие писал)
>>1192423Все зависит от руководства/коллегк/код стайла принятого. Если адекваты, то не думаю что откажутся от этой идеи.>>1192429У такого подхода к разработке есть свои плюсы, и он тебя ни в чем не ограничивает, это тебе не жесткая типизация.
>>1192438Забыл упомянуть, что это не просто массив, а array из numpy c dtype float, я как понял это просто массив с типом, или я аутист? Сейчас остальное не могу показать. У меня просто в голове не укладывается, где массив может измениться.>>1192439В точку, из С++ в джаву, а на питоне скриптики и прототипы пишу. Очень простой красивый и быстрый в написании язык, завидую питонокодерам, потому что они не мучаются с синтаксисом, а пишут именно то, что должно работать. Есть рекомендации?
>>1192429до сих пор не могу избавится от этой привычки
>>1192444ты хотя бы покажи какие примерно аргументы у функции, какая структура, велика вероятность того, что ты пытаешься изменить тип, который не состоит из ссылок (неизменяемый)
Аноны, есть вопрос, не совсем по питону, но т.к. питонач - дом родной, то пишу сюда.Есть один джун, который работает под моим началом(я сам от джуна не далеко ушел, но этот еще зеленее), так вот, начали мы писать небольшой прожект вместе, пока я был рядом - все хорошо было, минимум костылей, максимум работоспособности, затем меня перекинули на другой проект, а джун остался мелкие примочки дописывать. Я периодически в комиты заглядывал и правил. Вот прошел месяц его самостоятельной работы над примочками и насяльника сказал выкатывать все. Я принялся за дело и охуел от пиздеца который он наворотил. Приложение крашится от минимально не так введенных данных, пользователь не оповещается о действиях совершенных, часть моего функционала не работает, костыль на костыле и на заглушке. Мне говорил, что все ок и готово. Я целую ебучую неделю правил это и так ничего не выкатил, ибо не упел.Что я сделал не так? Что надо делать? Как избежать такого пиздеца? Как научить его быть человеком?Он у нас 7 месяцев работает, вырос конечно, но то что он написал, стало откровением для меня.
>>1192427ты судя по всему где-то в начале инициализируешь vals как-то так vals = exchanger в итоге это приводит к тому что обращаясь к vals ты ссылаешься на exchanger, в питоне в отличии от СИa = [1,2,3]b = aa[0] = 0print(b)>0,2,3если речь идет об изменяемых объектах, вроде листа или массива, нужно делать явное копирование,например такb = a[::]или гугли глубокое копирование
>>1192449дс?может дропнишь его, возьмешь меня?)а если серьезно, то обилие костылей это проблема куратора, это мне явно дал понять мой последний, когда вышвырнул меня с предыдущей работы пинком под зад))
>>1192452Спасибо, анон! Никогда бы сам не догадался, что язык такую мину подложит. Видимо, придётся всё-таки какую-нибудь книжечку по питону осилить. Извиняюсь за платину
>>1192456забавно, что стековерфлоу на 70% усеян такими вопросами
>>1192444> array из numpy c dtype floaСукаблять. Смотри, в обычном Писстоне список и тупля содержат не объекты, а ссылки на объекты. Поэтому, если объект mutable, то с его изменением изменится и список. Пример - пикрил. Так что в обычном Питоне твоя ситуация, когда изменяется float который immutable без явного values = хуй невозможна.Наверное фишка в том, что dtype float numpy мьютабельный и ты на один такой объект указываешь и в values и в exchanger, и когда объект меняется в exchanger+=..., то это изменение видно и в values. Это только предположение, сам numpy никогда не трогал.
>>1192443>У такого подхода к разработке есть свои плюсыЯ ничуть не писатель на Питоне, просто интересно, как до такой жизни докатились.Раньше ведь не задавались такими вопросами.
>>1192456это все ещё я>1192439>1192452нечем занять себя вечером в пятницу слишком интересная и насыщенная жизнь, так что предлагаю тебе переписать этот кусок код под питоновский стильссылаться индексами тут не принято, но это так к слову
>>1192455Местный ДС, да и руководству норм, не уволят, только скажут "ну научи иво, вы жи команда".Получается, что я виноват в его говнокоде? Как это пофиксить?
>>1192459Р-развитие, язык не может стоять на месте или развиваться лишь в одном направлении. Посчитали, что это будет полезно, вот и добавили.Хотя может это и деградация языка, время покажет, как это приживется у пистонистов.
>>1192462посоветовать какую-то литературу, например из шапки поста, где первые 100 страниц одни паттерны, показать другие куски кода, написанные мидлами или сеньорами з.ы.открытых вакансий нет, что вообще значит местный ДС, он же только один, если рассматривать в масштабах РФ?
>>1192460Век живи, век учись. Когда я проходил курс по питону, ничего подобного там не было. Всё-таки не зря тут спросил, спасибо, анон, что ты есть. Не грусти так, ты классный
>>1192429>Что случилось в мире, что теперь в питоне затребовались типы?Гвидо поумнел, наконец-то?
>>1192467А если в Питоне появится отступонезависимый синтаксис?Что же тогда, апокалипсис?
>>1192465> посоветовать какую-то литературуПоробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ли.> показать другие куски кода, написанные мидлами или сеньорамиТолько если носом потыкать> что вообще значит местный ДСБеларашко-ДС Минск
>>1192472> Поробую, но сомневаюсь что вне работы он читать будет, я ему уже кидал книги по пистону и вот не знаю даже, помогло ливозможно стоит более настойчиво это посоветовать, и намекнуть, что в его же интересах это а то джуном можно и просидеть очень долго>Только если носом потыкатьСтранная ситуация (но под предлогом первого можно и потыкать)> Беларашко-ДС Минскпонятно, жаль, как там у вас вообще, на какой ставке у вас там джуны, в раисии говорят, что картошкой платите)
>>1192493> возможно стоит более настойчиво это посоветоватьЯ не препод, даже не знаю как настойчиво ему это сказать, если его это не ебёт особо.> а то джуном можно и просидеть очень долгоа ему и норм, видимо, инициативы нет.> на какой ставке у вас там джуныОт конторы зависит, года два назад знакомый устроился в iTransition на C# разраба и получал 350$, сейчас всё там же, но про зарплату не говорит. У нас джун получает 400$. > картошкой платите)Пиздят )
>>1192496>получает 400$х, как макдаке вобщем. Ебать раки ценники просадили, скоро нрн будут минет включать в пакет услуг
>>1192500Да, но сделай скидку на цены, которые у нас пониже российских.На сколько я понял из общения с хрюшей в одной компании(гораздо крупнее нашей), диапазон з/п для джуна у нас 300-450$
посоветуйте плес тупую, юзерфрендли либу для графики в петоне. Достаточно выводить статичную картинку, состоящую из квадратиков 1-2 раза в секунду. Мне пиздец как лень сейчас учить какието либы, хочется написать три с половиной строчки кода и чтобы все работало.
>>1192502Tkinter, проще ничего нет, для рисования используй Canvas.
>>1192439Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется. >>1192444>В точку, из С++Сомневаюсь, что ты на крестах хоть что-то серьезное кроме калькулятора писал, раз делаешь такие тупые ошибки.
>>1192598>Причем тут вообще Си? Там вообще просто так нельзя копировать массивы типа a = b. Нужно использовать функцию из библиотеки, либо написать свою. А если ты будешь использовать указатели (или ссылки в С++), то получится такая же хуйня как в питоне - когда поменяешь значение переменной в одном массиве, то оно и в другом массиве поменяется. Ну он человек простой, видит, что приравнять можно, приравнивает.Скорее всего в этом случая простота языка, а именно отсутствия явных указателей и потребности в них привели к ошибки.Вывод о си можно легко сделать по организации цикла, все писали по началу такfor i in range(len(somelist)):...вместоfor index, someitem in enumerate(somelist):...
кто нибудь юзал psycopg2? перечитал документацию, но пока так и не смог реализовать Insert с переменными. Это вообще работает?
Где VScode фанатик, когда он так нужен?Как можно отключить проверку линтерами на определенном файле? А то джанго-файлы светятся как рождественская елка, и это бесит. почему производители серьезных вещей хуй кладут на восьмую ПЕПу?
>>1192543По ткинтеру все же придется покурить мануалы. Он не настолько прозрачный, как вывод хэллоуворлда или рисование черепашкой.Ну, и он вообще как бэ говно визуально.
>>1189879Создай файл в котором пиши таймдату последнего выполнения. При вызове скрипта проверяй время сейчас > время_последнего_выполнения + 24, и если условие выполняется то скрипт делается, и в конце в файл пишется текущее время.
Аноны, здравствуйте, пришел с таким вопросом. Сам я учу джанго. Питон знаю нормально, так же знаю html/css, хочу стать бекенд разработчиком. Делаю для себя разные сайты, так потренироваться, разные форумы, магазины и тд, сталкиваюсь с тем что нужен js конкретно jquery и ajax. Вопрос: стоит ли тратить время на изучение фронт составляющей (js, jquery и ajax) или же оттачивать онли django и питон. Питон нравиться, есть желание стать бекенд разработчиком. Еще вопрос, если захочу фрилансить, знание одного бека будет достаточно?
>>11929621. Русский подучи немного2. На одном бэкэнде не выедешь особо, понимание JS понадобится, но он же простой на базовом уровне, быстро выучишь. Тем более Ajax, там же по сути 10 строк кода на фронте, что бы послать реквест и получить успешно/нет ответ. Да и с jQuery тоже самое, если что, по ходу разберешься в нем.
>>1192778Эм. Ты наверное как-то жопой читал документацию, это же простейший кейс. Все ? заменяются переменными в cursor.execute.
>>1192976дело оказалось в том, что при миграции из скулайт банальный int недостаточен для сохранения юникстайм. А он до миллисикунд и нах не нужен. Тем более селект по нему. Обломно 8 бит тратить на это. Урезал с обехи концов просто и встало, как надо. Вобще, конечно, перед началом проекта нужно даже прототайп по уму страться. Ато работает, да ладно. Хотя итеративное улучшение не имеет конца.
>>1192962кароч, не с этого начинаешь. Если три типа фрилансеров. Первый, это когда ты работаешь на крупную кантору, и у тебя боковичек проходит, ато и на удаленку тебя переводят. Там ты по-сути себе хозяин и продаешь свой труд не получая ограничения на локацию. Хоть из леса работай, или с феста какого. Второй тип - это когда ты прошел уровень пидора на апворке и других фриланс конотор, а именно: работал полгода-год за 100-200 баксов в месяц, а потом репу прокачал из крутишься в 6-9 баков, потом в 8-12, потом резко до 20 баксов. Потом просто начинаешь выбирать и торговаться, потому что у тебя есть выбор. Пока выбора в заказах у тебя не будет, ты не сможешь дампить свой ценник. Тут тебе сарафанка в твоей лакации и заказы с апворка. Выбор есть. Это складывается в моем случае в 3 года. По ходу, ты встречаешь много технологий, которые еще продаешь на своей локации. Допустим, ты реализовал рест апи на андоиде под любое устройство, считай пол дела. Потом тебе и таксо и магазины и логисты - ток в путь. И есть третий вид фрилансеров. Это когда ты делаешь для себя и на этом имеешь деньги. Просто свои сервисы. Хорошо заходят агрегаторы, разного рода автоматизация, допустим из моего опыта адаптор для риелторов из крупного агенства, через которое они могли одновременно рассылать объявы на много ресурсов. Если ты фрилансер третьего вида, то ты - менеджер экономист, плюс у тебя есть прог скилл. Ты сам видишь куда что надо, проводишь аналитику, ресерч и дохуя предлагаешь, ну а потом даже можешь повыбирать
>>1193009пардонирую за ошибки, ибо пьян. Конечно не дампить, а задирать
>>1192502>>1192823Там API простенький, остальные варианты сложнее.Можно еще PyGame использовать.Вот пример вывода текста:https://gcup.ru/publ/engines/osnovy_pygame_vvedenie/2-1-0-257Можно выводить и картинки.
>>1188085 (OP)> python> змеи
>>1192975>>1193009Спасибо за ответы.
>>1193021Во-первых, питон - это семейство змей.Во-вторых, на пике именно питон.
os.plock(op)Lock program segments into memory. The value of op (defined in <sys/lock.h>) determines which segments are locked.Availability: Unix.Скажите, пожалуйста, какой эффект дает этот вызов, и каким может быть значение op?Верно ли, что это позволяет предотвратить перекат памяти процесса в подкачку?Спасибо.
Traceback (most recent call last): File "./nh11", line 128, in <module> os.plock()AttributeError: module 'os' has no attribute 'plock'Как это нет атрибута, когда по документации есть? ЧЯДНТ?
>>1192786Если у тебя pylint, то можешь добавить коммент перед блоком с ошибкой #pylint: disable=номер или название ошибкиНапример #pylint: disable=e1011Разные ошибки можешь через запятую перечислять. А если хочешь сразу весь файл проигнорить, то #pylint: disable=all
>>1193091дебил python читается как пайтон и не имеет отношения к змеям вообще никакого
Котаны, никак не могу осилить ООП. Вот тут - https://repl.it/repls/LateComfortableExams - есть 2 класса. NetworkConfig получает протокол, домен и порт и клеит из них базовую урлу. TestSuite наследуется от NetworkConfig, получает имя и эндпоинт, с помощью которого формируется тестовый урл (базовый урл + эндпоинт). Но интерпритатор ругается, говорит что TestSuite тоже должен получить домен, порт, вот это всё. А я хочу чтобы он только базовый урл наследовал. Как правильно?
>>1193301Как ты получишь базовый урл, которому нужен протокол, домен и порт, не передавая ни протокола, ни домена, ни порта? Когда ты делаешь super()__init__() ты просто вызываешь __init__ функцию суперкласса, которая ожидает 3 аргумента, и передаешь ей только 1 - base_url, который к тому же и не определен в __init__ TestSuite
Ребзя, не кинете ссылочку, на годные исходники сеньоров, чтоб набраться опыта и узнать какие-нибудь фишечки и профессиональные фичи использования пайтона? инбифо гитхаб
>>1193284Какой умный малыш. А уроки сделал?
>>1193334Сам задал вопрос, сам и ответил.
Зачем нужен Python, когда есть free pascal? Такой же простой, есть ООП.
>>1193284Ты либо очень тупой, либо тролль несмешной. Если первый вариант, то что ты видишь на логотипе?
>>1193400Комик группу Монти Пайтон
Господа, как в matplotlib отобразить числа у minorticks? Отображаются лишь у мажорных.Делаю такhttps://hastebin.com/upocosenoh.makefile
>>1193354Имплаинг гитхаб не - собрание говнокода дебилов вроде меня. Где я тебе сеньоров с открытыми исходниками найду?
Куда пихать random.seed если в программе много файлов? Влияет ли он на генераторы рандома из других библиотек вроде numpy (у которой есть свой numpy.random.seed(seed=None))?
>>1193327так ведь я думал что создам инстанс класса NetworkConfig, передам его в TestSuite, и вуаля! Соотвественно будет объект с базовым урлом в аттрибутах, откуда он и будет передан. Что я понимаю не так?
>>1193405Ну и шизик.
Ребята, такая задача; нужно найти кубический корень из числа(числа на входе всегда такие, что корень получится целым). Так же результат мне нужен типа инт, тк на его основе буду массив трехмерный строить. Подскажите самое удачное рещение этой задачи, а то гугл столько велосипедов выдал, що я хз. Вот такой способ: x = a(1/3) выдает приблизительное значение. Пока придумал разве что округлять число до целого, но это все костыли какие-то
>>1193434from luboiUchebnikPoPitonu import naitiKubicheskyKorenIzChisla
>>1193431>Что я понимаю не так?Как работают функции, аргументы и наследование. Ты книжки вообще читал? Если ты думаешь, что написав class TestSuite(NetworkConfig) ты как-то указываешь Питону, что ТестСьют должен брать инстанс Нетворка и сам догадаться, как из него все нужное извлечь и записать, то ты неправ совсем.>создам инстанс класса NetworkConfig, передам его в TestSuiteНу значит делаешь инстанс, а в __init__ TestSuite надо будет обращаться к атрибутам\методам инстанса NetworkConfig и что-то с ними делать.
Скажите мне, пожалуйста, как на вашем языке создать простую программу для просмотра изображений jpg png bmp? Хотя бы несколько советов дайте, чтобы было от чего оттолкнуться.
>>1193512Берешь либу pil и выводишь. Для интерфейса юзаешь tk например. Ну или можешь системным в ос показывать просто выполняешь типа так (в линуксе)import osos.system("xdg-open tmp.png")
Вечер в тредю. Имею некоторый бэкграунд разработки на шарпах плюс асп.нет кор, обучаюсь достаточно быстро. Реально ли месяца за три выучить пайтон на уровне, достаточном для работы за 60-70к в ДС?
Что нужно для минимума и куда, собственно, идти искать на джуна вакансию после того как отчислюсь? Или с питоном в СНГ никак?
>>1193515В пиле можно изменять размер?
>>1193584Джанга.
>>1193400Хохлов?
>>1193592Ты б ещё фронтэнд посоветовал. ПО кто-то занимается?
>>1193585Члена? Нет. Картинки? Да.
>>1193597Как-то так.
>>1193515>просто выполняешь типа такimage.show() же, зачем мудрить.
>>1192962Блять, не попадай в эту ловушку. На jquery возможно писать только костыльное неподдерживаемое говно. Иди сразу в vue или react. Не повторяй моих ошибок. Сейчас всё на реакт с этого говна переписываем, уже третий месяц.
>>1193426Модули в питоне это синглтоны
>>1193663Тоесть, надо пихать все и везде отдельно?
>>1193655Не слушай его, никакого реакта и тем более редукса. А vue верно, годнота.
>>1193426>Влияет ли он на генераторы рандома из других библиотекЕсли эти библиотеки его испольуют — да, очевидно. На нампи нет, у них своё.>>1193681>Тоесть, надо пихать все и везде отдельно??!Где ты хочешь засидить генератор, туда и пихай. Где-нибудь близко ко входной точке, например. От задачи зависит же.
>>1193426Не понятен твой вопрос.Ты думаешь функция их твоего модуля повлияет на одноимённую функцию из какой-либо библиотеки?
>>1193694Я запускаю 1.py, который берет функции из 2.py ... N.py, в которых используются рандом генераторы из библиотек random, numpy, etc. Как мне установить один сид на весь проект? Достаточно ли написать random.seed() в 1.py? Или нужно добавить numpy.random.seed() и остальные? Или нужно добавить это во все файлы 1.py ... N.py?
>>1193698Судя по этому вопросу:https://stackoverflow.com/questions/36304187/is-there-a-good-way-to-share-the-seed-of-random-between-modules-in-pythonнет, seed не шарится, если не шарить самому.
>>1192179>копировать имя оригинального файла, Ты и так это имя знаешь, иначе как ты открываешь файл?>производить основные операции, >удалять оригинальный файл,Ты и так удаляешь бэкап>присваивать его имя новому файлу.Ты при открытии файла всё равно указываешь имя.Только в твоём варианте ты просто так данные на диске копируешь, которые тут же перезаписываешь целиком. Представляешь, сначала гигабайт на диске передвинуть, а потом просто удалить это всё, зачем?Вообще, обычно сначала пишут во временный файл, а затем им заменяют оригинал. Не уверен, есть ли нюансы, если исходные данные из этого же файла читаются, но по идее не должно быть. https://repl.it/repls/PreciousDishonestHashmaps
>>1193698>Достаточно ли написать random.seed() в 1.py?Да. Сам генератор-то глобальный, достаточно в одном месте инициализировать.>Или нужно добавить numpy.random.seed() и остальные?Ну ты что используешь, то и вызывай, блин. Выше уже отвечал, что random на numpy.random не влияет. Какие там у тебя ещё другие библиотеки понятия не имею, сам протеструй, на что они опираются.>Или нужно добавить это во все файлы 1.py ... N.py?Не нужно. Ну, точнее, где ты хочешь иметь контроль над состоянием генератора, туда и вставляй. Если у тебя весь скрипт просто отрабатывает один раз после запуска, то для повторяемости хватит и в одном месте где-нибудь в начале.>>1193718Тут о другом речь же — о шаринге значения перемной (а уж сид это или нет разницы никакой).
>>1193814https://repl.it/repls/UntrueNovelGraphsотклеилось
>>1193655>На jquery возможно писать только костыльное неподдерживаемое говноСовсем долбоеб? Ты хоть понимаешь как оно работает?
>>1188085 (OP)Имеется ли некое подобие autoexec для консоли Python (в Pycharm) и как вообще из консоли вызывать файлы с кодом ?Я редактирую некий скрипт в открытом в Pycharm файле, но иногда нужно попробовать какую-то операцию/и в консоли, т.к. это удобней, чем запускать часть скрипта . Однако, предварительно нужно как минимум ввести команды загрузить нужные модули, подключить директории, открыть файлы. Как сделать, чтобы скрипт с этими действиями (import xxxx,yyy; open (myfile1); open (myfile2);..) , например, autoexec1.py можно было вызывать сразу из самой консоли ? Прописывать скрипт в settings-Build & Exection - Python Console не совсем подходит, т.к. для разных задач такие автоэкзеки могут быть разными.Пока используют костыль типа import autoexec1 as a, но получается, что все объекты я должен использовать как a.x1, a.x2...., что неудобноВ общем, можно ли такое (запуск набора команд через короткую команду) сделать в консоли или проще записать их где-то и ctrl-c ctrl-v в консоль ?
>>11940801. python -i script.py Выполнит скрипт и оставит тебя в интерактивной консоли.2.>все объекты я должен использовать как a.x1, a.x2....,>from autoexec1 import *3. exec(open("./path/to/script.py").read(), globals())Бонус:4. export PYTHONSTARTUP="path/to/script.py"И будет выполняться при каждом запуске интерпретатора. Удобно всякие частоиспользуемые urllib'ы и нампи там подгружать, например.
>>1194103>все объекты я должен использовать как a.x1, a.x2....,>from autoexec1 import *>exec(open("./path/to/script.py").read(), globals())пасиб братюнь. Только пришлось еше open (... , encoding='utf-8') сделать, хотя Python 3 должен жи файлы в UTF без доп настроек открывать>python -i script.py
А возможна ли такая запись если в библиотеке несколько элементов которые можно отдать функции :somepr = someffunc.somef
>>1194156ладно потом сам провепб прийду
>>1194156>>1194162Иди проспись лучше.
>>1194179Не могу , всегда сплю одмнаковое количество времени 4 часа не могу не больше не меньше может бывает у кого думаю из-за нагрузки
>>1192449ну, во-первых - тесты. никакая хуйня не пушиться в репу без тестов, автоматизированных с помощью CI. во-вторых, грумить таски на мелкие фичи. в-третьих, каждая фича - отдельный мердж реквест. четвертое и последнее - код ревью каждого реквеста. тщательное блять. джун завтра зассыт и съебет, а разгребать тебе, так что не пропускай даже маленький кусочек говно, заставь его навести порядок. покрытие тестами ни при каких условиях падать не должно. внимательно проверяй насколько хорошо разобраны кейсы. обращай внимание на цикломатическую сложность написанного джуном кода - если у него там ольше двух уровней вложенности или несколько ифов - он через пару суток уже не поймет собственный код и разгребать это опять таки тебе. в общем, говно легче разгребать ложечкой, а не ведрами таскать.
>>1194211Спасибо тебе, антош, учту на будущее.
Где там на гитхабе искать проекты, в которых покапаться, разобраться какие решения и как всё работает? Через поиск что-то мусор один, чёрт ногу сломит.
>>1194356Ищи что тебя интересует, не ищи рандом. Веб — ищи веб, геймдев — ищи геймдев, итд.
Ребзи, спасайте, угораздило вкатиться в питон при написании диплома. Есть текстовый файл, в каждой строке которого 4 пробела, а затем число вида 3.890190741743E-02 Мне нужно записать число из каждой строки в трехмерный массив. Я уже почти наговнокодил алгоритм для обработки этих данных, время поджимает, а я не могу нормально из файла данные переписать. Подскажите как без подводных камней нормально создать массив, допустим 30х30х30 Я так понял что для многомерных массивов нужно NumPy юзать и корректно забивать построчно в него данные из документа(нужно чтобы это были вещественные числа как в примере выше. Короче самое главное, обьясните пожалуйста как правильно к конкретной строке файла обращаться, как не обосраться из за пробелов(если они являются проблемой конеш) и как преобразовать эту строку в соответствующее число. А то мне блядь еще обработку этих данных неделю дописывать, а я их даже забить в массив нормально не могу
>>1194416Что такое трехмерный массив? Как он должен выглядеть?
>>1194434В пакете пакет с карпом в пакете.
>>1194441>>1194416Я тупой в общем, не знаю вашего пистона, алгоритмов и проче хуеты.Генератор твоего файла с числами вида 3.1224Е-1488 - https://ideone.com/Nk5lCsГенератор трёхмерного массива если я его правильно понял, нихуя не учил ж макака с переводом твоих богомерских чисел в нормальный float, но там не работает чтение из файла построчно, прогоняет только первые 30 строк и всё, лень разбираться - https://ideone.com/pEGbUGМожно попробовать заколхозить readlines() и генераторами добавлять по единице в какую нибудь внешнюю переменную чтобы по ней читать массив со строками. Всем споки ноки. Можете обоссать мой код и сказать где косяки, будет полезно.
>>1194416>конкретной строке файла обращатьсяfor line in open('suka'). Если надо несколько раз обращаться suka = open('suka').splitlines(); suka[0] но тебе не надо>как не обосраться из за пробеловА как ты из-за них можешь обосраться? Если у тебя 4 пробела, потом число, то: line.lstrip()>как преобразовать эту строку в соответствующее числоfloat спокойно переваривает такие записи
>>11944161. readline2. float(str.strip()) - и strip может даже не нуженА вообще пандас или сам нампи должен уже уметь считать и распарить всё в numpy.array самостоятельно, если сможешь объяснить ему что ты хочешь.> Как создать массив...Просто берёшь и создаёшь. Хоть блядь файл в numpy.array считай и передай его в numpy.ndarray(shape=(30,30,30), dtype=float, buffer=datafromfile).Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача?
>>1194452Перед отходом ко сну осенило, что 30х30 = 90 - двумерный массив а нужен 30х30х30 и это нихуя не 90.https://ideone.com/yqMVlB - генератор файлаhttps://ideone.com/L9g4Op - генератор массива>>1194453сяп за float('govnoE-1')
Как запустить многопоточность? Надо, чтобы startGUI в определенное время чекал что там сделал start, и выводил это на экран. Попытался сделать поток для start - нихуя, в итоге сначала запускается start, который отрабатывает вечный цыкл, и ничего не доходит до mainloop. Вопрос, какого хуя? И как это решить?
>>1194452>>1194455>>1194454Спасибо парни, после работы разбрусь с тем что вы написали>Может нехуй вкатываться в незнакомый язык за месяц до защиты диплома/курсача? Нет выбора, мне нужно наколхозить алгоритм который расположит эти данные в массиве в нужном порядке, посчитает их координаты в модельном обьеме и выберет только нужны. Там буквально на 8 часов беспрерывного ковнокодинга если знаеь язык, но бля за паскаль меня бы защита санными тряпками закидала. Плюс нет разницы во что вкатываться, когда за месяц до защиты у тебя нихуя не сделаноэтому конечно есть рациональное обьяснение, но кому это нахуй интересно а пиздовать еще год хуи пинать ради защитыили ваще сапоги топтать совсем нет желания, лучще уж я потеряю сон на пару недель
>>1192247Изучи графический интерфейс и пиши, что тебе надо, если конечно основную базу знаешь.
>>1194471Мне плевать, что твой map живет пару секунд, не ломает ничего глобально, и вообще никак не мешает, ведь ты не пытаешься вызвать оригинальный map как функцию. Я найду и выебу тебя прямо в рот.>Как запустить многопоточность?Смотри картинки. Твой sim это ни разу не главный тред, а его таргет функция вызывает ГУИшный canvas. Это плохо.>определенное время чекал
Поясните долбаебу почему при выполнении скрипта через терминал мне не возврашается True или False? Хотя если писать этот же код в терминале напряму - всем все возвращается?
>>1194586Ты с ума сошёл, куда тебе true должен верунться, в шелл, что ли? Током ёбнуть?
>>1194586А если ты просто про то, что ничего на экране не появляется — так ты и не выводишь. Это только в интерактивном режиме всегда пишется возвращённое значение. print() тебе в помощь.
>>1194602Спасибо, теперь буду знать.
>>1194586Всем всё платится.
Суп анон. Посоветуй что-нибудь для решения моей задачи. Типа теги для поиска, алгоритмы, просто укажи сторону в которую стоит смотреть чтобы не изобретать велосипед на костылях.В общем пишу плагин для kodi(медиаплеер типа smart tv) для анимца со скрапером ссылок на видео с shikimori.На shikimori на каждый эпизод может быть много(думаю может доходить до 50 и это только на один эпизод) ссылок с разными командами локализации и разными хостингами. Когда пользователь выбирает эпизод в интерфейсе kodi который хочет посмотреть, то выбор ссылки для скачивания должен происходить автоматически, а эпизод сразу должен воспроизводится без лишних дополнительных пунктов и диалоговых окон.Задача:Сделать автоматический подбор ссылок релевантным для пользователя.В настройках дополнения планирую добавить выбор типа локализации (озвучка, саб), и сейчас думаю добавить настройку "приоритетного списка" в котором будут находиться предпочтения пользователя, какие команды локализации ему больше нравятся.В общем анон насоветуй хоть что-нибудь, а то кривые велосипеды изобретать не хочется
>>1193810Я тебя не понимаю совершенно.Я копирую исходный файл в виде бэкапа, потому что записывать сразу же в исходник нельзя (при открытии на запись все стирается). Я беру и читаю бэкап, и строки оттуда переношу в уже голенький исходник.Если же я буду записывать строки из оригинала в бэкап, то мне потом все равно придется взять все строки из бэкапа и поместить обратно в исходник.Так зачем заставлять программу гонять по строкам вдвое больше, если я могу с самого начала просто создать копию оригинала и помещать строки из нее в исходник?
Как запустить firefox селениумом с browsec?
Меня этот Питон доебал уже своими заходами.На одном компьютере скрипт с записью файла работает. Наьдругом тот же самый скрипт не работает, пока ему encoding utf8 не прописать. Причем этот же инкодинг нетработает на первом компе.А сейчас просто какая-то поебень. Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть. Всегда работал, щас не хочет. Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден. Ебанутый что ли? Вообще охуеть.
>>1194774> Какой-то трейсбек на долю секунды высвечивается, чет тип файл не найден./0
>>1194774>Скрипт работает, если запускать его через ИДЕ. И он же, сука, не работает, если его просто даблкликом открыть.Окружение?
>>1194537откуда картинки? скажи плес
>>1194793>не уметь в гуглМарк Лутц
Ананасы, начал осваивать пайтон и сразу же столкнулся с проблемой. При вводе:exec(open('myfile.py').read())мне выдает ошибку :FileNotFoundError: [Errno 2] No such file or directory: 'myfile.py'хотя этот файл лежит в директории которая прописана в sys.pathЧому он не может найти файл?
>>11948061. Пропиши полный путь к файлу2. Найди способ посмотреть текущую дерикторию
>>1194809>Пропиши полный путь к файлупомогло, но неужели мне каждый раз при обращении к модулю вводить полный путь к нему?
>>1194812Говорю же, найди способ посмотреть дерикторию, в которой на данный момент находишься. В пайчарме, к примеру, сразу показывается путь, в котором работаешь.
>>1194788Винда, ноутпад два креста.
>>1194835>ide>notepad++
Столкнулся с проблемой с неработающим выводом графика с построенными фигурами. Вернее на долю секунды окошко вывода появляется, но оно пустое. Код довольно объемный, поэтому оставлю ссылку на него - http://scikit-learn.org/stable/auto_examples/cluster/plot_cluster_iris.htmlТак как код с сайта с документацией, а не с форума, поэтому, должно быть, проблема на моей стороне. Да, я понимаю что кинуть ссылку и написать "разберитесь за меня" - это ужасно некрасиво.
Вот вы говорите ньюфаги, а я и сам полтора года плюсопайтоно макакингом отзанимался а всё так же ньюфаг в плане общего знания, т.е. например так и не понимаю как компоновать своё приложение. Нихуя в этой куче директорий на типичном репозитории на гитхабе не понимаю, нахуя всё это вместо пары файликов с нужным функционалом. Чё запускать то бля.
>>1194806open() не имеет никакого отношения к sys.path или PYTHONPATH, он всегда >каждый раз при обращении к модулю Модули загружаются через import. Если ты вручную читаешь файл, то ответ да, каждый раз. Либо положить свой "модуль" куда-то поближе и читать через относительный путь.
>>1194913>он всегда Он всегда относительно текущей директории идёт.
Привет аноны. JS-фронт-макакий хочет вкотиться в питон. Скажите - доки из оп-поста актуальны?
>>1188085 (OP)Анон, а как это лучше сократить, чтобы держать лимит в 79 символов? Я все правильно сделал, по пепейту, питон вей?
Аноны, столкнулся очень давно с такой проблемой, что не могу записать 2 и больше переменных в файл:file.writer(firstarg, secondarg)Знаю что можно сделать отдельную переменную, и там воссоединить firstarg и secondarg. Но есть ли более изящный вариант?
>>1194846Какая разница? Работает через запуск из блокнота, не работает по клику на файл в папке.Черная магия, ей-богу.
Предлагаю включить в ОП-пост следующего треда:https://instagram.com/p/BjFD7O6lO-3/
>>1195023Врушка. Сделай open('./файл') и покаж ошибку
>>1194990if some is not None замени на просто if some. И новом блоке уже пиши if some.gettext bla bla.Либо try используй, либо ту строку в переменную засунь, но там вроде всё равно не влезет.
>>1194968У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально. Что именно там в шапке я, если честно, не в курсе.>>1195020file.write(firstarg+secondarg) ? Пишутся же в любом случае либо строки, либо байты, а значит и соединить их можно элементарно.>>1194774Вставь ты, блин, try/catch с input()'ом да прочитай эту ошибку. А ещё лучше просто из консоли его запусти, вангую проебался ты с путями.>>1194990is not None тебе там зачем? И раз уж всё равно на 3 строки, так и сделал бы лучше>result = bs.find() and bs.find().get_text()>if result == "Nothing found":> print("Нихуя нет, блядь")Многострочные if'ы, по-моему, это почти самое убогое, что можно сделать. Но лучше ещё мнения послушай.Алсо, 79 знаков для лохов.
>>1195071Сделал, все-таки, как этот >>1195070анон сказал, вроде звучит логично.Я тут скриптик написал, чтобы анимешные картиночки качать, может посмотрите, аноны, оцените? https://pastebin.com/JVvviYE0 над чем стоит поработать? над английским точно нужно, не судите строго за этоДумаю, что синтаксис я уже освоил, в каком направлении двигаться дальше?
>>1195080В целом пойдет, но условия и генераторы вырвиглазно выглядят с этим tqdm. Нужн рефакторинг, sys.argv и по мелочам. почему не requests?
>>1195090Юрллиб мне больше нравится.
>>1195095Сделай проверку на пустые теги\папку
крестоблядь врывается с тупым вопросом:есть список arr = [хуй, пизда, джигурда]я хочу выкинуть "хуй" из него:arr = arr[1:]куда физически денется объект "хуй", который был по arr[0]? будет существовать неприкаянный до конца процесса? этим можно как-то управлять?
>>1195104Пока его не соберёт сборщик мусора. В принципе можно его(gc) явно вызывать,но не советую.
>>1195106спасибо
>>1195098Ты об этом? Добавил. https://pastebin.com/BCSP4uxmКстати, есть ли смысл возвращать None после сис.еррора?
>>1195108>Ты об этом?Не об этом. У тебя на 54 строке идёт tags = input() и tags сразу идёт в дело без проверки. Если я не введу никаких тегов - меня кинет на "главную", так задумано? Аналогично с folder = input(), я не знаю как пайтон реагирует на os.mkdir('./images//'), но ты глянь там.
>>1195108а sys.error это что вообще такое?
>>1195090Пойду ещё напишу CLI версию, тогда так же это называется? ну, типо, с параметрами из командной строки.
>>1195113Da. Исправляй
>>1195111И правда, блядь, что это, где я это отрыл, пиздец.
>>1195118Да, пойду-ка почищу все.
>>1195108>https://pastebin.com/BCSP4uxm1. Коментарии кто писать будет? (нужно больше, не жалей "бумагу")2. Проверка наличия/создания папки, лучше так будет:if not os.path.exists(img_path):____os.mkdir(img_path)3. Я б заменил sys.error на:try:____....except SomeError as error:____ print(error)3. Немного адок из-за съехавшей разметкиА так вполне себе неплохо.P.s. В будущем перепиши на asyncio/aiohttp скачку.
>>1195123P.p.s Ну или заюзай sys.exit([arg]) и для каждой ошибки номер свой заюзай
>>1195123>>1195124Спасибо за советы, анон.
>>1194774Вот именно для этого придумали докер.>даблкликПод виндами да, боль. Но обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8, даже виндоюзеров.
>>1194911Открой для себя setuptools entrypoints. Ещё нормальные люди обычно в README пишут как запустить.
Ку всем, джава господин макака итт.Дайте самую новую самую годную книжку по питону 3 на английском без разжевываний для вкатывальщиков. Скажу сразу, я его рассматриваю не как язык для разработки, а скорее для скриптов как замена башу и хобби типа "хакинга". Если еще будет книжка по сетевому программированию в питоне – вообще отлично.
>>1195183Пiшов вон
>>1194735Мне кажется, либо ты не понимаешь, о чём я говорю, либо ты не понимаешь, как работают операции с файлам.>при открытии на запись все стираетсяТ.е. ты скопировал кучу данных и тут же всё удалил. Тебе не кажется это немного бесполезным?>Я копирую исходный файл в виде бэкапаНе копирий, просто сделай исходник бэкапом, переименовав его.>os.rename(source, backup); open(source, 'w')>copy(source, backup); open(source, 'w')Дадут один и тот же результат, но первое не делает ненужной работы.>заставлять программу гонять по строкам вдвое большеЭто как раз таки ты вдвое больше нужного делаешь.Сложно привести аналогию, так как в реальном мире "копирования" не существует, но вот представь, что тебе нужно перебрать игрушки в ящике, причём так, чтобы в конце всё оказалось в ящике с надписью "Болты", в которой они изначально и лежат. Одновременно две коробки с такой подписью иметь нельзя.Итак, что разумнее:1. (Твой) Взять коробку с напистаь на ней "временное", переложить в неё все игрушки (тут я как бы соединил копирование и очистку файла) а затем уже начать перекладывать игрушки обратно в уже пустую коробку "Болты", заменяя сломанные на новые, а затем сжечь коробки "временное"2. (Мой) Фломастером заменить надпись "Болты" на "Старые Болты", взять новую коробку и написать на ней "Болты". Затем уже перекладывать игрушки из "Старых" в "Болты", заменяя сломанные на новые. Сжечь коробку "Старые Болты".Видишь тут лишний шаг?
>>1194742Ты ебнишься засовывать расширения, которые должны работать после открытия я когда-то с этим ебался более 5 часов, потом просто плюнул и прокинул трафик через проксю (кстати в селениум хроме для прокси с лог:пассом отдельная ебень с плясками)
>>1195209>Мне кажется, либо ты не понимаешь, о чём я говорюВнезапно!>Я тебя не понимаю совершенноНо я тебя понял наконец-то. Спасибо снова.Почему ты подписываешь ящик с игрушками как "Болты"
>>1195129>обещают в 3.7 поправить и выпилить нахуй всю эту дрисню с кодировками и посадить всех на UTF-8Это очень хорошие новости. Держу кулачки.
>>1194774Docker.Тут где-то тред про него был, а твой вопрос прямо таки отвечает ОПу на его вопрос.
>>1195433Опять убивают совместимость, хорошего тут мало
>>1195561Нужно было ставить linux
В функцию поочередно идет переменная, и вместо того что бы строки добавлялись в файл, они заменяютсяdef writer(ips, e = "default"):__try:____file = open("ips.txt", "w+")____if e == "default":______file.write(ips+"\n")____if e == "______file.write(ips + " - p\n")__except:____print("Some problems with writing to file")__finally:____file.close()Аноны, как фиксить?
Люди, я ньюфаг. Есть окно Tk(), в нём две кнопки, имеющие соответственно две функции (для результата нажатия на каждую кнопку). Функции работают, но результат отображается в IDE, а не в окне Tk() где сами кнопки приложения. Как отображать результат функций в самом окне под кнопками, а не выводить его в IDE?
Антоши, скажите - гайд в ОП посте не устарел? Планирую вкотиться в питон, курить мануалы, и следующие полгода не заебывать вас тупыми вопросами.
>>1195687Сука,содомит.Гугли "вывод текста tkinter">>1195688Нет, не устарел.
>>1195687>результат отображается в IDEЭто называется консоль. IDE - это то, где ты пишешь код.
>>1195688>и следующие полгода не заебывать вас тупыми вопросамиАга, держи карман шире.
>>1195713Нет, именно в IDE. Я нажимаю на кнопку - а в результат выводит на след. строку IDE.
>>1195719Интересно девки пляшут.
>>1195683w+ будет затирать все строчки, используй a+ что бы добавлять в файл.вместо try/catch используй менеджер контекста(with).Да и ты понимаешь что при вызове функции ты будешь открывать/закрывать файл постоянно? Намного логичнее открыть файл -> записать всё что нужно -> закрыть.
>>1195756>a+ Почему не просто "а"?
>>1195764+ означает что если файла нет, его нужно создать.
>>1195776оу, нет обосрался чутка. + означает открыть для чтения/записи. Так что да, + тебе не нужно.
Парни, скорую помщь мне по братскиКак записать в файл переменную типа float и turple? а в идеале еще и результат этой строки max = np.unravel_index(np.argmax(ar, axis=None), ar.shape)
>>1195791pickle?
>>1195791>Как записать в файл переменную типа float и turple?str() или json.dump() в зависимости от задач.>Экземпляр какого-то np классаСкорее всего >>1195793 подойдет, если этот файл ты будешь читать тоже питоном. Иначе - преобразуй его в json или yaml. yaml - если его будут читать люди, иначе - json.
>>1188085 (OP)Как изменить maximum recursion depth ?
А помимо джанги и монги какие обычно самые распространённые библиотеки подразумеваются?
>>1195923бэкбон
Начал читать книгу по питону 2017 года и дошел до комплексных чисел. Я вообще не знаю что это такое.Это сильно нужно?Это ведь вроде какая-то сложная математика, блин, я думал таких вещей в питоне не будет, там же вроде без знания математики можно изучать, не?Какие еще комплексные числа...погуглил и нихуя не понял. Короче, комплексные числа нужно изучать отдельно?Все это делают?
Как в бесконечном цикле обновлять plt.show() графика из matplotlib?
>>1195961Да, учи отдельно, вдруг пригодится.>>1195981Никак, ты будешь рисовать каждый раз новый в новом окне. Если тебе нужны динамические графики - почитай про Dash.
>>1195988Спасибо, но это веб-макакинг какой-то, попробую matplotlib.animation.FuncAnimation
>>1195990Веб-макакинг уже не провославно?Удачи
>>1195688У нас тут не ЖС, каждый день по новому фреймворку не выходит, так что почти всё (кроме питона 2.х и всяких доисторических статей) актуально.
>>1195914import syssys.getrecursionlimit() # актуальный лимитsys.setrecursionlimit(100) # ставишь свойНо осторожно, если выставишь слишком много, то программа может вылететь.
>>1195561Бетку уже выкатили, можно пробовать.
>>1195961Если ты не знаешь, что такое комплексные числа, даже погуглив, то могу гарантировать, что в жизни, и уж тем более в твоём программировании на питоне, они тебе не будут нужны.>>1195981https://bastibe.de/2013-05-30-speeding-up-matplotlib.htmlдемка подобного метода когда-то давно стыренная откуда-то https://pastebin.com/JVfALYKq>>1196089Эй, ты зачем мой пост украл?
А сколько сейчас средняя по рынку для джуна в дс?
>>1196385Я кстати тот JS макакий что вкатываетсч в питон. Прочел относительно бегло "кусь питона". Хочу сказать что все же для новичка она не полна. Не очень подробно развернута система классов. Как передается в экземпляры класса self. Как определяется контекст вызова. Как работает все это ? В js прототипы . Короче маловато )
>>1196499https://www.youtube.com/watch?v=SJ8z-TF07s4https://www.youtube.com/watch?v=mTp2pLEoDaIИ вообще отсмотриhttps://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruWАлсо, я тоже начал изучать Питон после JS и как же мне блять горит от того что хотя они очень похоже внутри, даже в плане ООП, но в Питоне всё няшно и удобно, а в JS - ёбанный пиздец.Ящитаю корень всех зол - то что JS трясётся над обратной совместимостью, а так бы давно все косяки поправили. А Питон на совместимость срёт и правильно делает.
>>1196499Ну так это не исчерпывающее руководство, а лишь краткий обзор фич и возможностей питона. Она ведь и совсем тонкая. За подробностями надо в другие книги лезть.
Посоветуйте какой фреймворк выбрать для api тестов. Есть вариант с behave, но я незнаю насколько это подойдет именно для api тестов
>>1196092Спасибо анон !
>>1196499>Не очень подробно развернута система классовТак там всё интуитивно понятно же.>Как передается в экземпляры класса self. У нас ебли с this'ами. self явно передаётся в метод класса (соответственно, и имя может иметь любое), т.е. при вызове obj.method(a, b) питон на самом деле под капотом просто вызывает Class.method(obj, a, b). >Как определяется контекст вызова.Опять же, у нас нет ебли с this'ами, так что того контекста можно сказать и нет. Вызванные у объекта методы всегда будут иметь этот объект в качестве self'а.Есть всякие контекстные менеджеры, но там всегда всё явно указывается.
>>1196632Falcon
>>1196654мне для тестирования
А что почитать по этому вашему DATA SCIENCE и ALGORITHMS? Чтобы с примерами на питончике и понятным языком? Неважно, на каком языке. Желательно, чтобы можно было купить бумажную версию в каком-нибудь чиай-городе или на озоне в моей мухосране другого нет.
>>1196774SICP.
>>1188085 (OP)А есть какая-нибудь короткая книжечка по фуллстэку без воды чтоб прочитать всё за 15 минут и научиться, ну, для тех кто умный такой?
Ребятушки, помогите плес нубу. Суть в том, что пишу игру текстовую, очень простенькая. Вопрос, как эту хуйню запустить? https://repl.it/repls/WiryGrowingHexadecimal
>>1197183забыл. Суть игры в том. что она рандомно выбирает фигуру и рандомно присваивает параметры. Далее спрашивает у пользователя площадь и периметр. Должно быть, конечно, еще так, что если отвечают неправильно, но она прекращает работу, но я нихуя не понял как это сделать и хочу хотя бы ее запустить.
>>1197141Иди нахуй, если не осилил литературу в шапке глянуть.>>1197183> Game()И что должно выполняться, по твоей логике?
>>1197243Я хз, мне нужно запустить выполнение функций из класса Game. Есть шанс это запустить?
>>1196957там же ЛИСП, не?
>>1196774
>>1197261> Я хз> мне нужноМожет быть для начала хоть одну книжку по основам прочтёшь?Даже если ты запустишь - оно не будет работать вообще никак. У тебя синтаксические ошибки там. > функций из класса> функция > из классаЕщё раз - читай литературу вначале.Для запуска метода класса, нужно к нему обратиться, обращение делается через точку Game().StartSosat()
>>1197272Окей. понял. Буду курить литературу, спасибо, анончик.
>>1197290Не за что.А тот код удали и напиши заново, соблюдая всякие PEP`ы и здравый смысл.
Суп питонусы. Простой вопрос.Есть список который нужно обработать.Нужна функция которая будет обрабатывать этот список.Как лучше реализовать это? Сделать функцию, которая будет работать с одним элементом списка, и зацикливать этот список на уровень выше, или сделать цикл внутри функции?Меня интересует скорость таких подходов, влияет ли на скорость многократный вызов функции или нет? Если нет, то сделаю функцию для обработки одного элемента, а не списка, т.к. это гибче.
>>1197347map()
>>1197349И точно! С моим стремлением к однострочным выражениям странно, что я так редко использую map.
s = ["asd","das","asdas"]def ppp(x): print(x)map(ppp,s)И какого хера оно ничего не показывает? Объясните тупому начинающему на пальцах
Sup, петушки питонщики.Ну ка поясните быстро по полочкам что бы я не перерывал гугл.1) Норм 2D движок для реализации карточной игры2) Норм GUI для Шиндос.Писал давно и тогда были ебаные PyGTK и Tkinter. PyGame в принципе полностью устраивает меня для моих целей а вот интерфейс хотелось бы посимпатичнее так как вышеуказанные говно полнейшее. Отказываюсь верить что в 2018 все еще не делают красивый интерфейс на питоне и я не о PyQt.
>>1197404Tkinter, PyGTK, PyQT5
>>1197370Попробуй ещё распулить по ядрам через мультипроцессинговый аналог, сразу раза в 4 быстрее.
Как реализовать графический редактор в GTK? Есть только DrawArea, в которой только и можно линии рисовать програмно.
Никто не хочет совместно поучавствовать в соревнованиях kagel, попробовать свои силы в простых испытаниях, набить портфолио?
Обновление is comminghttps://blog.jetbrains.com/pycharm/2018/05/pycharm-2018-2-eap-1/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+Pycharm+%28JetBrains+PyCharm+Blog%29
>>1197596Оставь фейкопочту, через две недели отпишу.
>>1197602Школьник, плез
>>1197596моя телега@Valenso56Пишите по делу и сразу пару строк о вашем бэке
А как правильно обновлять питон, чтобы не проебать все установленные модули и не устанавливать всё заново по мере необходимости? Они ведь все лежат в директории определённой версии питона.
>>1197616Все через pipНо не факт что не проебешь все, так как совместимости то нет.
Как на Django правильно реализовать авторизацию через проверку auth_key из вк-приложения?https://vk.com/dev/apps_init?f=3.%20auth_keyГде производить эту проверку?
Есть ли смысл учить джангу в 2018-м?
>>1197604Хуёльник. Отпуск у меня.
>>1197630Есть же django social auth, там куча готовых виджетов для такого>>1197634Нет, учи JS-стэк
>>1197653Так теперь называют подготовку к ЕГЭ? Школоло, не агрись. Будет и на твлей улице проект. Готовься к экзаменам.
>>1197662Ох, зеленый у нас тут объявилсяМолодец, продолжай
>>1197669Ну на хуй ты маняврируешь то? Дохуя взрослым хочешь показаться?
>>1197672Я не понимаю, схуяли ты доебался к тем двум неделям? С чего ты взял что у мен ЕГЭ?Я в принципе из беларахи и, у нас ЦТ Но тем не менее, я школку уже закончил, как и универ, а ты проецируешь свои фантазии на окружающих, пиздуй назад в /б/ к сородичам и там "тралль"
>>1197676Не указывай куда мне идти. Мне допизды как вы в potato republic называете ЕГЭ. Хорошо, я поверю, что у тебя 2 недели «отпуска» и ты закончил ВУЗ. А теперь успешный погромизд отъебись от меня.
>>1197677Напоминаю, что это ты ко мне доебался, унтерок
>>1197689Коммунист, отъебись от меня. Иди интернационал петь в центральном парке.
>>1197656>Нет, учи JS-стэк Но я хочу стать питон-разработчиком, а aiohttp на hh упоминается только в вакансиях сеньоров с 200к+
>>1197595Бамп
>>1197595а че ты хочешь? Что бы всё готовенькое было? только симпортить и всё?
>>1197768Нет, я хочу знать как это вообще работает. Как получить координаты нажатия, например? Координаты при зажатии, в конце. Как сохранять одновременно и на холсте и в памяти чтобы работать с буфером обмена?
>>1197694Если нужно сделать обычносайт, то твой выбор лишь Django/Flask. Aiohttp тоже учи, но как дополнение, под узкие задачи, ну и в принципе его юзать вместо requests, если нужно делать много долгоиграющих запросов.
>>1197796Как раз вот, может там поинтересуйся:https://www.reddit.com/r/Python/comments/8mhzzq/we_are_programming_a_game_in_tkinter_70done_and/
Есть ли модуль для асинхронного ввода и обработки команд? Чтобы питон что-то там делал, выводил текст и так далее, а если я ввожу что-то, что ранее/в коде обозначено как команда, то некая функция вызывается. Доступа к переменным не нужно, этакий интерфейс для управления получается.Я, конечно, могу и сам накостылять через треды или https://repolinux.wordpress.com/2012/10/09/non-blocking-read-from-stdin-in-python/ но хочется уже готовое и красивенькое, с историей, поиском, копи-пастом, автокомплитом, чтобы нормально передвижение курсора работало, отдельная строка для ввода и так далее. Пилил такое на ЖСе себе, на питоне уже лень, хоть там и пара сотен строк всего был.Сама задача: хочу запилить себе интерактивную обёртку над телнет либой с плюшками.
Как скопировать и вставить любой файл из буфера обмена? Пытаюсь нагуглить способы, но там жуткая и не очень понятная ебля
>>1197974win32clipboard
Джангоебы, хочу чтоб с админки можно было несколько фоток в модель заливать. Есть ли какой-нибудь гайд для нубов? Нашел такое, но чет не выходит -https://blog.rousek.name/2017/08/11/uploading-multiple-files-in-django-admin/
>>1198062Да, только из говна и палок там можно сделать работу с текстом. А вот как работу с файлами организовать - вообще не получается
Го меряться, наконец статистика подъехала:http://pepy.tech/
>>1198117А вот, кстати, и применение подобной няши(не так давно поднималась тема типизации такой) на практике(выглядит непривычно):> def find_random_projects(self, nr_items: int = 10) -> List[Project]:https://github.com/psincraian/pepy
>>1198118бесполезная хрень.
Вызываю в отдельном треде через subprocess.run баш-скрипт, в котором после некоторых манипуляций с именами переменых и ffprobe'а вызывается ffmpeg, выдирающий первый кадр из видео (в ffmpeg ссылка передаётся).Всё работает прекрасно, кроме того, что почти всегда после вызова питоньего скрипта ломается терминал: нажатие enter'а не переносит на новую строку, а добавляет "user@host:path $" на ту же, введённый текст не отображается, а нажатие стрелки вверх не показывается предыдущую команду (хотя если нажать enter, то она выполнится).Что и где ломается? Упрощённо выглядит примерно так: https://pastebin.com/C9NQvEV4
Двач, выручай!Как в этой задаче считать входные данные?http://pythontutor.ru/lessons/lists/problems/kegelbahn/
>>1198065Файл в буфере обмена это на самом деле текстовый путь до этого файла, так что не вижу проблем. >>1198129>Вызываю в отдельном треде через subprocess.run баш-скриптВ отдельном процессе>после вызова питоньего скрипта ломается терминалА если запустить башскрипт, то такого не происходит?>stdout=subprocess.PIPEЗачем это?Вообще, что тебе в итоге нужно получить? Только скриншот?
>>1198167> не вижу проблем.А можно пример тогда?
>>1198220Мне лень качать, устанавливать и запускать винду в виртуалке ради этого. Скопированный в буфер обмена файл - это не весь файлик, выгруженный в оперативку, это только строка вида "file:///path/to/file"Соответственно, если тебе нужно с указанным файлом что-то сделать - делаешь сплит по 3 слешам, берешь 1-й элемент массива. А дальше что тебе нужно сделать - ты не сказал.
Для любой операции с файлом тебе нужен либо путь (желательно абсолютный), либо открытый файловый объект. Путь у тебя есть, что тебе еще нужно?
>>1198167>В отдельном процессеНе, я в отедельном треде запускаю отдельный процесс :3 и дожидаюсь прямо там его выполнения. Их 50 штук просто, а сетевых запросов много. В питоне жонглировать Popen'ами как-то было лень, вот и въебал тредов. >А если запустить башскрипт, то такого не происходит?Нет. Проблема именно в использовании stdout/stderr. Я там забыл упомянуть, в ffprobe 2>&1, а в ffmepg 2>/dev/null ещё присутствуют, но это так-то только на одну команду же должно распространятся в любом случае.>stdout=subprocess.PIPE Зачем это?А, ну там в конце echo $out_filename ещё делается, мне его захватить надо.>Вообще, что тебе в итоге нужно получить? Только скриншот? Да, получить скриншот (названный по длительности видео) и его имя (путь к файлу) для дальнейшей работы.Я и ранее встречался с подобной поломкой текущей вкладки/сессии терминала, и тоже к субпроцессами было связано, где-то какой-то поток не закрывается правильно, видимо.
Есть два модуля и основная программа, к которой эти модули привязаны. Программа и два модуля имеют 3 разных окна. Сами модули и программа работают, но не в том порядке: сначала действуют два модуля и только в конце основная программа. Как задать порядок программа-модуль1-модуль2? Просто при запуске файла сразу начинает работать модуль1, а основная программа действует лишь после двух модулей и из-за этого не несёт никакого смысла.
Решил вкатится в питонпрограмиринг. Пошел по гайду, судя с статьи на хабре стоит начинать с лутца 4 издания питонг лернинг.Так вот само издание вышло в 2009г, статья с хабра 2013. Уже есть 6 издание, не лучше начать с него. Или особой разницы нет?
>>1198231Мне бы его скопировать в другую дерикторию
>>1198250Что за поток сознания?Как ты запускаешь всё?Код неси.>>1198260Нет. Ты всё равно не прочтёшь и забьёшь хуй.
>>1198294program.pyfrom tkinter import import module1import module2def b5(): return module1def b6(): return module2root = Tk()root.title("Семён оказался на мели")root.geometry("380x250")btn4 = Button(text="Семён пошёл на работу", command=b5)btn5 = Button(text="Семён остался дома", command=b6)btn4.pack()btn5.pack()root.mainloop()module1.pyfrom tkinter import def b1(): label = Label(text="Семён win") label.place(relx=.2, rely=.3) return labeldef b2(): label1 = Label(text="Семён fail") label1.place(relx=.2, rely=.3) return label1root1 = Tk()root1.title("Семён работает")root1.geometry("380x250")btn = Button(text="Семён работал усердно", command=b1)btn1 = Button(text="Семён ленился", command=b2)btn.pack()btn1.pack()root1.mainloop()module2.pyfrom tkinter import *def b3(): label2 = Label(text="Семён win") label2.place(relx=.2, rely=.3) return label2def b4(): label3 = Label(text="Семён fail") label3.place(relx=.2, rely=.3) return label3root2 = Tk()root2.title("Семён остался дома")root2.geometry("350x280")btn2 = Button(text="Семён стал мангакой", command=b3)btn3 = Button(text="Семён воровал еду", command=b4)btn2.pack()btn3.pack()root2.mainloop()
>>1198313Ебать ты шутник.На Pastebin лей.
>>1198313Ты сделал какое-то говно. Ты запускаешь три разных ткинтера, три разных мейнлупа. Если тебе нужно несколько окон, то погугли, как это сделать.
>>1198313И насчёт>def f(): return module1Это хуета несусветная. На строке>import module1У тебя уже исполняется весь файл.Запихни всё, что в глобале из модулей в функцию и вызывай её когда надо. Того, что у тебя хуёвая архитектура это не отменяет.
>>1198363Мне бы всё наоборот в одном окне, но не знаю, как сделать.
>>1197831А чем плох асинхронный пул реквестов?у вашей обсосанной aiohttp совместимости с более старыми версиями нет из-за того что какой-то дятел решил ввести типизацию нерабочую
>>1195183automating boring stuff
>>1198129>>1198167Хех, пока решал другие проблемы случайно нашёл, как воспроизвести синдром: перевести stdin в raw режим:>import sys>import tty>tty.setraw(sys.stdin)И будет достигнут тот эффект, который я описывал.Ну а дальше мысль легко пошла: ffmpeg же действительно имеет интерактивный режим (по-дефолту), видимо и менявший режим stdin'а, но почему-то не возвращавший его назад. Добавил -nostdin в вызов и всё стало окей. Спасибо мне.
А перекат-то будет?
ньюфажный вопрос, не кидайтесь говном:for i in list: list[i+1] = 'какая-то хуйня'Выйдет string index out of range, конечно. Как без лишних if по достижению конца списка перейти в начало списка? Чтобы list[0] = 'какая-то хуйня'
>>1199271У тебя i принимает значения из списка, если что
>>1199273Ладно, я имел в виду вот что:for i in range(len(list)):if list[i+1] == 'какая-то хуйня':list = 'такая-то хуйня'Мне нужно, чтобы последний элемент менялся, если выполнено условие для первого элемента.
>>1188085 (OP)Есть тут аноны, которые шарят в pyqt?Добавляю в qgridlayout n-ое количество кнопок,на определённые позиции, после чего мне нужно удалить их и добавить столько же на те же самые позиции, но после удаления кнопок, визуально они стоят где надо, но их индекс в qgridlayout стал вышеНапример у меня поле было из кнопок 4 на 4, индекс левой верхней = 0, после удаления и добавления новых кнопок её индекс стал 4/8/хуй пойми какой. Уже второй день ебусь и не могу понять что не так(дебагером прошёлся, удаляю все кнопки)Кто-нибудь с подобным сталкивался?
>>1199282for i in range(len(list)):if list[i + 1] == 'одна штука':list[-1] = 'другая штука'Ты это имеешь в виду?
>>1199293бля, опять проебался.Вот:for i in range(len(list)):if list[i+1] == 'какая-то хуйня' and list[i-1] == 'какая-то хуйня':list = 'такая-то хуйня'
>>1199293Фу, черт, как ты первую строку переписал. Ну и это, ты бы лучше спискам имя list не давал
>>1199295Я не называю списки listами, естественно. У меня там вообще матрица.
>>1199271>Как без лишних if по достижению конца списка перейти в начало списка?lst[(idx+n) % len(lst)]Можешь ещё обратить внимание на itertools.cycle, но это не совсем подходит для твоей задачи присвоения значений.Теоретически, если тебе нужно только одина раз зациклить, можно схитрить и обходить в обратном порядке, тогда отрицательные индексы как раз зациклят https://repl.it/repls/SpicyAdvancedRectangle >>1199294на последнем элементе i+1 же эксепшн вызовет, нужно range(len(lst)-1).
>>1199306>lst[(idx+n) % len(lst)]Бля, вот оно! Спасибо, братуха, от души!
def add(n): if n == 0: return 1 return add(n - 1) + add(n - 1)анонуши, обьясните принцип работы этой функции плес. Нихуя не могу понять как он возвращает значение, почему тут не получается бесконечное количество операций?
>>1199435def add(n):...if n == 0:......return 1...return add(n - 1) + add(n - 1)
>>1199436>return add(n - 1) + add(n - 1)вот конкретно тут, что он возвращает?
>>1199438>вот конкретно тут, что он возвращает?add(n-2)2 + add(n-2)2"Почитай про рекурсию, добавь print(n) в начало функции и вызови её, посмотри, что происходит.
>>1199458Там умножить на два было. Но это всё равно шутеечка, не обращай внимания.
>>1199458смотрел. Я правильно понимаю, что в итоге функция возвращает количество сложенных единиц от >in f == 0: return 1 ?
Так блять, что-то я запутался с __hash__ и мутабельностью.Вот есть к меня мутабельный класс.Внезапно, по-дефолту он является хешируемым, наследует object.__hash__, который насколько я понимаю что-то вроде return hash(id(self)).Это нормально что мутабельный класс является хешируемым и может например в качестве ключей dict'а использоваться?
>>1199524Аноны есть ли у кого нормальная инструкция по деплою FLASK +nginx +uwsgi максимально простая?!?
https://2ch.hk/pr/res/1182179.html#1182179https://2ch.hk/pr/res/1188085.html#1188085
>>1199460>количество сложенных единиц от >in f == 0: return 1 ? Нихуя не понял, что это значит, но в развёрнутом виде да, там будет какое-то количество "1+1"-ов.add(3) = add(2) + add(2)add(2) = add(1) + add(1)add(1) = add(0) + add(0)add(0) = 1=>add(3) = add(2) + add(2) = (add(1) + add(1)) + (add(1) + add(1)) = ((add(0) + add(0)) + (add(0) + add(0))) + ((add(0) + add(0)) + (add(0) + add(0))) = ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) = 8.
>>1199566ну да. это и имел ввиду. Получается что ((1 + 1) + (1 + 1)) + ((1 + 1) + (1 + 1)) исходят от >in f == 0: return 1. вот я до этого не мог допереть. Спасибо. анон
>>1199757только начал учить пайтон, еще мозги не мыслят как надо. До этого был гуманитарий до мозга костей.
Вообще я перекатами не занимаюсь, но т.к. больше никто перекатить не желает - перекатил я:>>1199814 (OP)>>1199814 (OP)>>1199814 (OP)>>1199814 (OP)>>1199814 (OP)
вопрос к каноничному пайтон анону.есть ли какие предписания, сколько методов, функций следует объединять в один класс?
Настоящий перекат, если что:>>1199534 (OP)
Ищу человека, шарящего в Python для помощи ньюфагу в его работах. Телега: @bitardtg.
>>1199282итерируй по два или сколько тебе нужно элемента за разне изменяй список в цикле, а создавай новый
Хелп, вообще не ставятся пакеты в Питоне с помощью pip из-за того, что у меня имя пользователя (и папка пользователя) на 10 сперме на кириллице, не ставятся ни скачанные самостоятельно, ни скачанные pip, везде ошибка при установке из-за вышеуказанной проблемы. Как избежать этих проблем без смены имени пользователя и имени папки (пару раз таки удавалось пакет поставить даже с этим, но это чудо было просто)?
>>1204156не вижу связи... поставь питон в C:\PYTHON и пакеты будут ставиться туда... не в %USERPROFILE% дело как мне кажется
>>1204242У меня конкретно ошибку из-за папки с названием на кириллице выдаёт, да и на форуме говорят, что в этом у многих проблема и этим вызвана эта ошибка.
>>1204242Всё, переустановил на жёсткий диск, отлично работает.