Программирование

Ответить в тред Ответить в тред
Питон тред №93 /python/ Аноним 04/07/20 Суб 15:34:29 17417141
145152.jpg 268Кб, 1920x1080
1920x1080
ep-vanrossum2.jpg 199Кб, 484x1024
484x1024
033a095bc04fe14[...].jpeg 1443Кб, 1840x1169
1840x1169
Тред, посвящённый языку программирования Питон, #93

Предыдущий: >>1733222 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться

#######################################

ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года

Вопросы-ответы:
— А стоит ли читать Лутца, том номер N?
Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.

— Стоит ли читать %книга_нейм%, если там питон версии 2.х?
Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х

— А что ещё можно читать?
Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4

— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.

https://dumpz.org/bASGKD8cCFDf
Аноним 04/07/20 Суб 18:05:17 17419302
Флудера отправили на порашу? Гуд. в следующий раз, гайз: каждому такому ребенку, сходящему с ума на карантине, кидается репорт с формулировкой "систематический шитпостинг и флуд", модер приходит и отправляет его назад в /b

По теме: где-то объясняется как намутить fullstack приложение на Джанго и каким-нибудь js-фреймворке? Туториалы, что находятся в сети, представляют собой в основном видосы длительностью 1-3 часа. Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта
Аноним 04/07/20 Суб 18:11:32 17419393
>>1741930
>Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта
Ну так возьми любую статью по фреймовку на ЖС, начни с какого-нибудь Вью, он очень дружелюбен для вката. Дальше пишешь апи для джанго. Фронт раздаешь Nginx`ом как статику, все запросы к беку перенаправляешь к Джанго - все
Аноним 04/07/20 Суб 18:54:46 17419704
Аноним 04/07/20 Суб 18:55:52 17419725
Аноним 04/07/20 Суб 20:01:57 17420086
>>1741613 →
> Это равносильно выключению https, когда возникли "какие-то проблемы с сертификатом"

Нет.
Csrf-атака это когда админу-человеку подсовывают url и он радостно тыкает своими куками и дропает базу.
Нет человека - нет запроса.

Пробуй в любом api яндекса(аппелирование к авторитету на анонимной борде) найти csrf-токен или что-то подобное. Его там нет.
Аноним 04/07/20 Суб 20:35:25 17420487
yandex-csrf.png 40Кб, 564x265
564x265
>>1742008
В api csrf токен не нужен, там уже есть oauth и http-заголовок для него. На фронтах у Яндекса есть csrf-токены или проверка каптчи во всех мутирующих запросах. На скрине я пошёл в passport.yandex.ru и поменял свой адрес.
Аноним 04/07/20 Суб 20:59:03 17420588
>>1742048
Документацию на любой машинный с csrf покажи
Аноним 04/07/20 Суб 21:10:54 17420669
Аноним 05/07/20 Вск 00:16:32 174215510
>>1741275 →
Насколько я знаю, да.
Но т.к. издательтво орайли захватили успешные менеджеры и они скатились от локомотива опенсорса к типовому инфобарыге по подписке, то сам понимаешь.
Аноним 05/07/20 Вск 02:36:19 174220511
93585de07f310b0[...].jpg 3Кб, 965x405
965x405
Месяц назад зашел в тред, к программированию имел никакое отношение. Спасибо анонам которые помогали и отвечали на вопросы. Сегодня написал классическую "змейку", поле игры организовал через двумерный список с словарем внутри, для состояний каждой клетки, в главном цикле пару раз пробегал по каждому элементу списка. Собственно вопрос, такая организация "Ок" или "неОк"?
Аноним 05/07/20 Вск 02:46:20 174220712
>>1742205
>Собственно вопрос, такая организация "Ок" или "неОк"?
Сам как думаешь, это игрушка для портативного железа 80-х
Аноним 05/07/20 Вск 02:50:40 174221013
15939057799100.jpg 19Кб, 965x405
965x405
>>1742205
>поле игры организовал через двумерный список с словарем внутри, для состояний каждой клетки, в главном цикле пару раз пробегал по каждому элементу списка
Зачем хранить все поле игры? Достаточно хранить отмеченные точки и направление движения.
Аноним 05/07/20 Вск 04:43:58 174223614
>>1741714 (OP)
Господа питонисты, здравствуйте.
В общем, посмотрел я в шапке информацию о вкате на хабре, посмотрел еще пару статей и видео о том, что читать/смотреть для вката. Ну, думаю, есть пара книжек и курсов, которые мелькают у всех в рекомендациях, начну, наверное, с них. Потом решил проверить треды, что писали ананасы, – и вы то поносите одну книгу, то другую. То укус питона - говно для говноедов, то Лутц уебище водяное. То какие-то курсы хороши, то это вообще говнище ебаное. Я вообще нихуя не понял в итоге, с чего начинать.
Посоветуйте, пожалуйста, аноны, какие книги читать для начала, да и с заделом на продолжение? Может, какие курсы можно посмотреть? Я так понял, российские курсы вы поносите. А какие пиндосские курсы посоветуете? С английским всё хорошо.
Питон мне понадобится довольно сильно, и нужны довольно хорошие в нем знания. Зарабатывать питоном вообще не собираюсь пока. Сейчас он нужен в качестве приложения к основной области, для курсовой.
Аноним 05/07/20 Вск 05:01:26 174223715
>>1742236
Насчёт книг:
В прошлый тред ворвалась маня и поносила топ книгу - укус питона. Не слушай маню, слушай шапку треда. Недавно обновил укус питона до свежей версии.
Лутц - долго и нужно, если диплом у тебя через 5 лет, то можешь начать читать лутца.

Курсы анон оьосрал из-за цены и "обещаний" трудоустройства, да и на них ничего оригинального не дают, все тоже самое ты найдешь в нете(видео/статьи/документация). Мимо провел пару лекций по пистону на курсах, и ушел.

Хорошие зарубежные курсы, может кто-то подскажет. Было бы неплохо их в шапку добавить

С хорошим знанием англицкого - учиться будет легко.
Аноним 05/07/20 Вск 07:02:34 174224716
>>1742237
Спасибо! То есть, получается, начинать с укуса питона, а дальше что читать? Насколько я понимаю, там совсем базовые знания для новичков, а что дальше после этого читать, если не Лутца на 1000 страниц? В ЧаВо есть ссылка на хабр, там человек сразу говорит читать Лутца, потом говорит еще про 2 книги, ссылки на которые не открываются, а авторы не приведены насколько я понял, под "Язык программирования Python" он имел в виду книгу Россума, Дрейка, Оркидача? это что-то из разряда маст рид? что он имел в виду под "Основы программирования на Python. Учебник. Вводный курс" я так и не понял а потом уже справочник по питону, опять, на ~900 страниц.
В итоге я в смятении, что читать после укуса питона.

Аноны, кто ещё знает, подскажите, пожалуйста, курсы русские/пиндосские по питону для начинающих ну и, собственно, с заделом на углубленное изучение. Просто я совсем не ебу, гикбрейнсы, хуейнсы, датакэпмы, что из них хорошее, а что плохое.
Аноним 05/07/20 Вск 09:56:00 174227817
image.png 6Кб, 965x405
965x405
>>1742210
пфффф че за лох бля. нормальные пацаны хранят так
Аноним 05/07/20 Вск 12:02:46 174236718
>>1742247
Ты для начала полностью прочти укус питона, сделай все примеры и задания, дальше принимайся за Джанго, потом уже можешь потихоньку искать работку, я сам так вкатился, на следующей неделе будет год как работаю бекенд разработчиком, время очень быстро летит.

Аноним 05/07/20 Вск 12:13:52 174237719
1532115766144.png 71Кб, 1379x855
1379x855
1492351714067.png 11Кб, 766x158
766x158
Памагити, у меня питон не выводится в терминале. Делал всё по инструкции в видеокурсе.
Аноним 05/07/20 Вск 12:15:46 174238120
>>1742377
поставь анаконду и не выебывайся
Аноним 05/07/20 Вск 12:17:58 174238221
>>1742381
Всё заработало. Я тыкнул Run на альшифте и теперь могу тыкать Run просто на шифте. Магия какая-то.
Аноним 05/07/20 Вск 12:43:44 174239422
>>1742247
После укуса могу посоветовать саммерфилда немного почитать. Но вообще, быстрее начинай решать задачки и писать программы, в шапке есть для этого неплохие платформы.
Что читать дальше - зависит от области которая тебя интересует.

>>1742367
Какая зп?
Аноним 05/07/20 Вск 13:34:17 174243123
>>1742377
пиши в консоль python lesson4.py а не просто lesson4.py
Аноним 05/07/20 Вск 13:43:54 174244824
Обращаюсь за помощью. Я вкатывальщик ньюфаг, сейчас прохожу курс от JetBrains и за проект выбрал крестики-нолики. Вот сейчас у меня задача определить победа\проигрыш\ничья и т.д. И стал вопрос как это сделать. Я то могу сделать это через множество if-else, но мне кажется это не очень. Что мне нужно подтянуть чтобы решить? Алгоритмы или что?
Аноним 05/07/20 Вск 15:18:19 174252825
>>1742448
По другому в общем и не сделаешь.
Можно сделать тупли проверяемых позиций и проверять в цикле, например.
Аноним 05/07/20 Вск 16:47:14 174261326
Объясните пожалуйста на языке доступном для пятилетнего ребёнка.
print("text" + "text" \ + "text") - выдаёт ошибку
print("text" + "text" \
+ "text") - работает

Почему выдаёт ошибку в первом варианте и зачем вообще нужен этот слэш? Я разобрался с \a, \n, \t но в остальных ситуация, я не понимаю зачем он вообще.
Например зачем при написании
print(" \'text\' "), если можно просто написать print(" 'text' ")?
Аноним 05/07/20 Вск 17:11:19 174266527
>>1742613
Можешь воспринимать / в конце строки как экранирование перевода строки.
Аноним 05/07/20 Вск 17:31:29 174269128
Спасибо!
Аноним 05/07/20 Вск 19:07:08 174277529
>>1742448
Паттерн такой может быть. Делаешь функцию-отображение
field_line(num) --> line
то есть занумеровать все возможные линии, их в случае поля 3x3 будет 8 штук, и получать эту линию по номеру

А линию уже легко проверять на то, выигрышная она или проигрышная. Просто циклом по ней проходишь и считаешь, сколько там крестиков и ноликов. Можно и для 3x3, и для больших полей и линий длины 5.

На этом же принципе ты можешь и стратегию игры строить, простейший алгоритм. В частности, предотвращать возможность противнику собрать линию, находить хорошие ходы и т.п.
Аноним 05/07/20 Вск 19:11:30 174278230
(оффтоп) А что за сочная мадам приспускает трусики на оп-пике?
И где найти её фуллфронт?
Аноним 05/07/20 Вск 19:48:01 174282231
Аноним 05/07/20 Вск 21:31:07 174288532
54156847684105.png 14Кб, 1022x460
1022x460
>>1741714 (OP)
У меня есть пара мыслей насчет парсера: еще после прошлого треда наклепал небольшую версию парсера, реализованную на пайпах subprocess.Popen и как следствие - мультипроцессинге. Походу мультипроцессинг в Питоне на пайпах весьма годный (но только если не выходить за рамки конвеера)

У нас есть Leacher, который отправляет запросы к сторонним ресурсами и получает json-ы либо html страницы, если ситуация позволяет, то он может даже работать в асинхронном loop, есть Worker он осуществляет парсинг документа (с помощью bs4 если это html) и передает результат к Writer, который создает нужные директории, файлы и осуществляет запись (также может работать через aiofiles)

Большая доля нагрузки ложится именно на Worker, документов может приходить разом много и их надо вовремя распарсить, так почему бы не сделать 2го или 3го Worker-а? Можно ли с помощью subprocess перенаправить вывод сразу в 3 места так, чтобы результат отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена)
Аноним 05/07/20 Вск 21:53:54 174289833
блять какие есть вакансии питониста кроме обоссанного мной же бэкэнда и обдистаного моим преподом дата сайнсом как панацеей 21 века. Я ебал. Охуенный язык, охуенно читабельный, охуенно много библиотек, охуенно много проектов на гит хабе, охуенно много качественного по но блять ебучий хх ру не знает нихуя кроме бэкЭнда и искусственного интеллекта в моей жопе Урал если че екб там челик
Аноним 05/07/20 Вск 21:55:15 174289934
>>1742898
А нахуй он ещё нужен? Скрипты писать?
Аноним 05/07/20 Вск 21:58:57 174290435
>>1742899
Я ебу что-ли? Знал бы не спрашивал. Тесты на селениуме, боты всяких телег дискордов, парсеры, многопоточные обработчики, спамеры, какая-нибудь хуйня с безопасностью.
Аноним 05/07/20 Вск 22:01:20 174290736
>>1742898
QA, бэк, дата инжиниринг, машоб, прикладнйо скриптинг. Все.
Еще остаются: десктоп (плавно отмирающий и явно не для питона), фронт (за жсом целиком), геймдев (зашкварная хуйня сама по себе), мобилки (тут изощряются но в основном кроме Жабы/Котлина/Свифта тут ничто не живет)
Аноним 05/07/20 Вск 22:03:34 174290937
>>1742907
На что из этого реально устроиться имея диплом и около начальные знания ?
Аноним 05/07/20 Вск 22:06:47 174291038
>>1742909
Какой еще "диплом" лол? Бакалавр заборостроительного по специальности "кампухтир саинз" это потешная степень и не более

>около начальные знания
Сразу нахуй
Аноним 05/07/20 Вск 22:12:56 174291239
>>1742910
Ну блять не заборостроительного конечно но около того нас и всяким алгоритмам учат, графы хуяфы, машинное обучение тоже было правда называлось искуссвенным интеллектом че такое класы знаю про всякие наследования вкурсе, пару залуп для упрощения жизни писал мб этого хватит для Джуна-нихуя-не-знаю плотите зп пожалуйста
Аноним 05/07/20 Вск 22:13:49 174291340
>>1742885
>отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена)
RabbitMQ какой-нибудь прихуярь, где твой личер будет продюсером, а воркеров перенести на косьюмеров
Аноним 05/07/20 Вск 22:54:00 174293141
>>1742885
>>1742913
Двачую этого.
Если рэбит зажирно - ЗероМК есть.
Аноним 05/07/20 Вск 23:27:43 174296542
Аноним 06/07/20 Пнд 00:31:27 174298743
Аноним 06/07/20 Пнд 00:57:52 174300544
>>1742987
Тебе и простого Реббита хватит
Аноним 06/07/20 Пнд 01:30:42 174301545
>>1742987
Ну бери и Селери если надо периодичные задания пилить.
Не забудь про Flower тогда уж.
Аноним 06/07/20 Пнд 04:35:02 174303046
Аноним 06/07/20 Пнд 04:49:44 174303247
image.png 63Кб, 1209x213
1209x213
Аноны, сервис на запрос возвращает вот такую штуку, на что это больше похоже и как можно расшифровать?
Аноним 06/07/20 Пнд 05:08:04 174303348
>>1743032
iv это initialization vector, а ct можно предположить, что ciphertext, т.е. зашифрованное значение в base64.
Вероятно, AES. Так что ищи ключик.
Аноним 06/07/20 Пнд 05:54:43 174303449
>>1743033
Угу, и правда AES.
Я правильно понимаю что ключ должен лежать где-то в ЖС-коде?
Ибо структура такая:
На фронте жму кнопку, делается аякс-запрос на сервер, оттуда приходят эти данные(ключи что скинул) и затем на фронте выводится инфа.
Больше никаких запросов на бэк не ходит.

Опытным путем вычислил, что ключ секретный - `cp` пикрил, но вот место где эта переменная инициализируется не нашел, видимо в ЖС-тред надо идти.
Я охуел от ЖСа, после пистона - просто пиздец.
Аноним 06/07/20 Пнд 06:23:31 174303550
IMG202007060600[...].png 111Кб, 1836x512
1836x512
Аноним 06/07/20 Пнд 06:47:57 174303751
>>1743034
Посмотри на самой странице, скорее всего оно динамеческое для сессии, например, как csrf-токен.
Аноним 06/07/20 Пнд 11:53:09 174308152
Изучаю нейросети по мануалам, столкнулся с проблемой схоронения меток классификатора
https://pastebin.com/uayHYSxQ
Суть в том что если поставить exit(0) до функции
model.add(Dense(1024, input_shape=(3072,), activation="sigmoid"))
метки сохраняются, если не ставить то файл пустой, в чём может быть проблема?
Аноним 06/07/20 Пнд 12:01:17 174308453
>>1743081
P.S.
Переписал код на:
with open(args["label_bin"], 'wb') as f:
pickle.dump(lb, f)
Сохраняет нормально
Аноним 06/07/20 Пнд 13:15:50 174313354
памагити, как реализовать в джанге выкладывание постов с пикчами через админку. Проблема в пикчах, способы с форумов 2015 года не помогают
Аноним 06/07/20 Пнд 14:49:03 174317755
>>1743133
Очень дельная инфа, бро (нет)
Вангую у тебя не скачан Pillow или ты не поставил в поле blank=True

>>1741714 (OP)
Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу
Аноним 06/07/20 Пнд 14:52:10 174318056
никто не знает как проект pycharm запускать на компе без данного ПО? т.к. чтобы было окружение для простого запуска главного файла.py
Аноним 06/07/20 Пнд 14:57:24 174318557
>>1743180
Пучарм делает стандартный venv, его и используй.
Аноним 06/07/20 Пнд 15:17:59 174319658
>>1743177
> Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу
А нагрузка какая? Все от етого зависит.
Но я бы БД не запускал на том же сервере что и аппа.
Аноним 06/07/20 Пнд 16:02:24 174321059
Аноним 06/07/20 Пнд 16:49:58 174323860
Котаны, изучаю корутины и теоретическую основу async io.
Правильно ли я понимаю, что чтобы добиться конкурентности в рамках одного треда на корутинах - необходимо чтобы все времязатратные функции были не блокирующими? Т.е. корутины не решают проблему блокирующих операций, они вместо этого требуют, чтобы все длительные операции были неблокирующими, и все подключенные либы соответственно тоже?
Аноним 06/07/20 Пнд 17:22:20 174326361
Аноним 06/07/20 Пнд 17:25:00 174326662
>>1743196
> Но я бы БД не запускал на том же сервере что и аппа.
Но это как? Как они будут обращаться к друг другу. Это же виртуальные серваки, а не реальные соединенные проводами.
Аноним 06/07/20 Пнд 17:29:02 174327063
>>1743263
Тогда вопрос в догонку:
Нахер нужен мультитрединг, если там все равно GIL тру асинхронности не дает, а накладных расходов больше?
Аноним 06/07/20 Пнд 17:35:36 174327364
>>1743266
Пиздец.
Иди основы про БД почитай.
Аноним 06/07/20 Пнд 17:42:42 174327665
money=int(input("..."))
if money:
print("...")
else:
print("...")

Выражение: if money > 0 ,было бы для меня понятно.
Я правильно понимаю, что переменная с функцией int и аргументом 0, для интерпритатора false по дефолту?
Спасибо.
Аноним 06/07/20 Пнд 17:46:06 174328166
>>1743273
Какие? У меня был курс бд.
Ответь нормально, зачем выебываешься
Аноним 06/07/20 Пнд 17:47:25 174328467
>>1743281
> У меня был курс бд.
Я ебал, курс у него был, а ты наверное на курсе том и не был.
> Какие?
Как подключаться к БД.
Аноним 06/07/20 Пнд 17:48:01 174328668
>>1743177
SuspiciousFileOperation at ПУТЬ
Аноним 06/07/20 Пнд 17:52:09 174328969
>>1743284
А, точно. Но удаленный доступ вообще не для этого нужен. Какой в этом смысл, это же просто задержку работы увеличит.

> Я ебал, курс у него был, а ты наверное на курсе том и не был.
Курс про бд это ACID, аномалии, нормальные формы, какие структуры лежат за бд и тд.
Аноним 06/07/20 Пнд 17:56:01 174329570
>>1743289
> Но удаленный доступ вообще не для этого нужен.
Нет.
> Какой в этом смысл, это же просто задержку работы увеличит.
Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки?
Смысл в распределении нагрузок.
Аноним 06/07/20 Пнд 18:02:43 174330371
>>1743295
> Нет.
Как нет, если речь шла о нагрузке. Если у тебя приложение коннектится к бд через сеть, это долго будет с тз высокой нагрузки.
Ладно если ты с дома на бд с работы что-то перемешиваешь, отравляя только текст транзакций.

> Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки?
> Смысл в распределении нагрузок.
Ват? Виртуальные серваки объединены в сеть? Это если наверное только специально заказывать у хостинга такие. А так смысл виртуальных серваков как раз в том, что они изолированы. Коннект будет через интернет, очень весело да.
Аноним 06/07/20 Пнд 18:12:22 174331072
>>1743276
>Я правильно понимаю, что переменная с функцией int и аргументом 0, для интерпритатора false по дефолту?
Да. Но лучше так не делать.
Аноним 06/07/20 Пнд 18:25:54 174331473
>>1743303
Сто лет уже можно строить внутренние инфраструктуры у облачных провайдеров.
Да и если спавнить отдельные серваки в одной локации, они всё равно будут в одной автономной системе провайдера без оверхеда по сети.
Аноним 06/07/20 Пнд 18:34:13 174331974
>>1743303
>Виртуальные серваки объединены в сеть?
Пока ты не хостишь базу данных и веб-сервер у разных провайдеров - да, они объеденные, о какой изоляции ты говоришь? Ну да, на пол миллисекунды будет медленнее, чем если два компа напрямую соеденить шнурком, но все равно ты хуй заметишь. А если использовать серверлесс БД то еще и быстрее может выйти.
Аноним 06/07/20 Пнд 18:34:48 174332075
>>1743310
По-моему, везде рекомендуются эти неявные проверки.
Единственное, что я предпочитаю, это записи вроде num % 1000 == 0, в этом случае действительно наглянее, чем not.
Аноним 06/07/20 Пнд 18:47:56 174332776
А куда в джанго можно вставить код, который будет в цикле выполнятся?
Аноним 06/07/20 Пнд 20:24:46 174340077
>>1743196
>Но я бы БД не запускал на том же сервере что и аппа.
Почему нет? Что за карго-культ?

На отдельный сервер есть смысл выносить тогда, когда сервер БД каким-то специальным образом сконфигурирован, там специальные диски-raid, и т.п. При этом один сервер БД обслуживает много разных приложений.

Потому что главная задача БД обеспечить надёжность хранения данных и быстрый доступ к ним, а задача прикладных серверов обслуживать нагрузку, надёжность там не важна.

Это требует разных конфигураций.

Разделять на виртуальные сервера смысла почти нет. Это не увеличит ни надёжность, ни производительность. Может упростить обслуживание и развёртывание в каких-то случаях.

При этом проблемы добавляются. Например если БД на отдельном сервере, то по-хорошему уже должен быть защищённый коннект. А это дополнительные ресурсы и возня. И не только это.
Аноним 06/07/20 Пнд 20:32:41 174340478
>>1743314
>они всё равно будут в одной автономной системе провайдера
Не мешай понятия. Автономная система, AS, это понятие из маршрутизации (BGP семейство), как определять политику доставки пакетов по группам сетей. В одной автономной сети могут находиться сети, физически очень далёкие друг от друга, с очень большим пингом.

Особого оверхеда в сети нет, подключение по tcp с рамках localhost сравнимо по скорости с unix-сокетами, unix-сокеты сейчас даже не сколько для скорости, сколько для защиты используют, можно выставить владельца и права доступа на unix-сокет, а на tcp порт нельзя (точнее только с помощью специальных файерволлов можно, система-зависимых). Но если у тебя соединения между разными серверами, то их надо защищать, это стандарты безопасности просто, а вот это требует дополнительной работы.

Локальная сеть гипотетически тоже может быть перегружена, тут тоже риски добавляются.
Аноним 06/07/20 Пнд 21:32:26 174342979
>>1743081
У тебя ошибка: вместо f.close надо f.close(). Нафига ты полез в нейросети делая такие глупые ошибки я не понимаю.
Аноним 06/07/20 Пнд 23:57:56 174348680
>>1743400
>Почему нет?
Ох, видел сколько кушоет Постгрес когда запускает вакуум и прочее?
Вынося БД на отдельный сервер или отдавая БД на откуп провайдеру(не очень нравится) ты снимаешь часть головной боли связанной с ней и с поддержкой/настройкой сервера и апы. Безусловно это можно не делать если приложение использует 1,5 анона, но если идет нормальная нагрузка - это бэст практис. А я именно о таком случае говорю.
> Что за карго-культ?
Ну вот такой, повсеметный и подтвержденный культ. Как и запуск БД не под докером. Я не спец по БД поэтому предпочитаю доверять людям которые ебутся с ними 24/7 и пишут новую логику для них. Я конкретно про Постгрес, т.к. использую его + рашко-разрабы довольно часто выступают на конференциях и рассказывают что к чему и как.
Аноним 07/07/20 Втр 00:18:10 174349281
image.png 21Кб, 448x294
448x294
image.png 80Кб, 968x565
968x565
>>1743032
Аноны, опять я на связи.
Значит разобрался и нашел ключ для дешифрации данных, даже получилось их извлечь, правда только ЖС-либой - CryptoJS, пикрил №2.
А вот питоновскими либами нихуя не выходит. Как и различными анлаен-сервисами.
Так же выснил что юзается - cbc.
Пикрил №1 вроде как возврщает ответ, байты, но при попытке их декодировать получается ебучая каша.

Вопрос анону - куда бежать/что делать?
Я так понимаю, что при неправильном ключе дешифрация не прошла бы вообще, а тут проходит но получаю говно.

Ключ - c3b2d44cd6efe3020a54b0cbb53786ce
Собсна остальные поля - https://pastebin.com/tdKJGnqS
Аноним 07/07/20 Втр 01:03:00 174350782
>>1743492
Как видно, там участвует ещё некая соль, которая у тебя имеется как s, как-то оно там ещё хуевертится дополнительно.
Аноним 07/07/20 Втр 01:07:05 174351283
Аноним 07/07/20 Втр 02:43:48 174353184
>>1743507
>>1743512
Короче там пезда и отсутствие нормальной совместимости.
Пришел к выводу что проще локально выполнить кусок ЖС кода и через него дешифровать данные.
Спасибо, антош, за помощь.
Аноним 07/07/20 Втр 02:46:21 174353485
image.png 45Кб, 891x284
891x284
>>1743531
Бля, и сразу попадание
Аноним 07/07/20 Втр 04:06:53 174354986
while not username:
while username:

Я не могу понять, смысл этих утверждения.
Например если бы переменная username имела аргумент, было бы понятно.
while username <= 1, или что-то в таком духе.

а так, while username ЧТО?

Объясните пожалуйста, как для умственно отсталого.

Аноним 07/07/20 Втр 04:11:36 174355187
Аноним 07/07/20 Втр 05:07:47 174355888
DjcKuqpU8AEzdw1.jpg 323Кб, 991x1500
991x1500
>>1743319
>серверлесс БД
А это ещё что за зверь?
Могу предположить разве что "managed"-решения, т.е. когда тебе твой "облачный" провайдер продаёт доступ к настроенной базе, а не машину на которую эту базу ещё нужно поставить.

Я вообще слабо понимаю значения словечек вроде "ОБЛАЧНЫЙ" и "СЕРВЕРЛЕСС".
VPS - это уже сразу СЕРВЕРЛЕСС или только ОБЛАЧНО?
А докер и k8s (в которых нужно нихуёво ебаться с сетью и прочими очень "серверными"/"сисадминскими" вещами)?
Аноним 07/07/20 Втр 05:39:36 174356189
>>1743551
Спасибо за ответ.
Изначальная моя переменная имеет следующий вид
username=""
это false, потому как "" в списке false по дефолту.
Следовательно выражение:
while username:
буквально означает запуск и работу цикла, до тех пор, пока переменная возвращает false
а выражение:
while not username:
до тех пор, пока переменная возвращает true.
Как только, например через input, переменная получает хоть один символ, цикл начинает выполнять следующие выражения.
Правильно?
Аноним 07/07/20 Втр 11:00:18 174364590
>>1743561
не читал вопросов и ответов от других анонов

крч if x, while x ждут что вместо x будет переменная типа bool, но так как питон зело удобный есть правила приведения типов к этому бул

по сути
if username это тоже что if bool(username) а вот этот bool(username) у каждого типа разный

для строк это username != ""
для списков это x != []

поэтому я и говорю что питон не очень подходит как первый язык
Аноним 07/07/20 Втр 11:23:17 174365991
Хм, как при подключении через ssh держать несколько инстанцов терминала?
Поясню таки: обычно при разработке в том же джанго на моей машине у меня было разом включено 4-5 сессий с терминалом: в одном работает manage.py runserver, в другом воркер celery, в третьем redis-server, в четвертом я в manage.py shell копаюсь, а пятый для общей разработки и curl-ов. Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву?
Аноним 07/07/20 Втр 11:34:05 174366892
Аноним 07/07/20 Втр 11:56:54 174370093
>>1743659
>Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву?
А нахуя тебе такое делать на хостинге, ты же понимаешь, что как только ты закроешь 1 терминал у тебя все ебнется, а держать их открытыми постоянно - хуета
Аноним 07/07/20 Втр 12:05:57 174371494
>>1743659

Вопрос в догонку:
Через пару минут неактивности, терминал зависает, що как фиксать?
Мимодругойанон
Аноним 07/07/20 Втр 12:42:23 174374695
Поцаны. Послушайте. А что если. А что если я буду vdom рендерить на пистоне? Это нормально же, да? Ничего такого страшного, да?
А еще, есть какие-нибудь фреймворки вроде blazor?
Аноним 07/07/20 Втр 12:46:40 174375696
>>1743561
Да, всё так.

>>1743659
tmux самый удобный. Можно выучить десяток хоткеев и пользоваться, но он умеет очень дохуя всего ещё.
Аноним 07/07/20 Втр 12:47:25 174375997
>>1743714
Тоже tmux. Если у тебя терминал отвалится,то всё останется работать. Потом можно подключиться обратно.
Аноним 07/07/20 Втр 16:52:26 174404598
>>1743759
Спасибо, ща буду пробовать как оно.
Аноним 07/07/20 Втр 17:19:45 174407699
>>1743659
Нужно 5 терминалов - открываешь 5 терминалов.
К чем проблема? Ахуеть вообще.
Ты мышкой не владеешь? Тебя пугает число 5?
Аноним 07/07/20 Втр 17:20:40 1744078100
>>1743714
Ищещь где в putty настройка пинга. И роутер нормальный домой купи.
Аноним 07/07/20 Втр 17:25:33 1744083101
>>1744076
Зачем с умным видом отвечать хуйню, если ты не знаешь?
Аноним 07/07/20 Втр 17:34:57 1744093102
>>1744078
Я на линупсе, роутер норм.
Аноним 07/07/20 Втр 19:05:42 1744155103
Анон, почему везде пишут что питон это раздутый пузырь и работы на нем нет, только лаба1 для школьников? Это такой тролинг от тру-ъ программистов?
Аноним 07/07/20 Втр 19:16:11 1744168104
>>1744155
На заборе хуй пишут, будешь?
Работа есть, но не для вкатышей с хекслета.
Аноним 07/07/20 Втр 19:59:50 1744236105
Друзья, такой тупой новичковыйц вопрос:
Как вернуть ИМЯ инстанса класса внутри метода?

Я уже опробовал __repr__() __str__() и даже просто self
В результате возвращает такую вот парашу
><__main__.Neuronet object at 0x7fa4c4e2c040>
Аноним 07/07/20 Втр 20:16:25 1744263106
>>1743714
>>1744093
Попробуй
ssh -o ServerAliveInterval=5 myhost.com
это делать пинг внутри протокола ssh, чтобы соединение не обрывалось.
Аноним 07/07/20 Втр 20:43:23 1744302107
>>1744236
что такое имя инстанса?

тип class A(): ...
a = A()

ты хочешь сделать что-что вроде
a.__huita__ и получить "a"

так нельзя сделать
Аноним 07/07/20 Втр 21:06:23 1744328108
>>1744302
Именно эта __хуита__ мне и нужна для того чтобы вывести данные в файл с таким же именем каково имя объекта.
Я понимаю что на один и тот же объект могут ссылаться несколько имён. Однако моей проблемы это понимание не решает.
Аноним 07/07/20 Втр 21:08:13 1744330109
Допустим, есть вот такой json:
{"data":{"test":[
{
"date":"2020-07-07T00:00:00",
"time":"10-05",
"foo":"bar 1",
},
{
"date":"2020-07-07T00:00:00",
"time":"11-50",
"foo":"bar 1",
},
{
"date":"2020-07-08T00:00:00",
"time":"13-35",
"foo":"bar 2",
}
]}}

Нужно получить вот такой вывод (то есть сгруппировать по дате):
2020-07-07:
10-05: bar 1
11-50: bar 1

2020-07-08:
13-35: bar 2

Как это сделать?
Аноним 07/07/20 Втр 21:12:30 1744334110
Аноним 07/07/20 Втр 21:12:37 1744335111
>>1744328
Ты ведь знаешь, что можно просто погуглить и найти ответ на твой вопрос за 5 секунд?
Аноним 07/07/20 Втр 21:14:14 1744339112
>>1744335
Хотя не совсем понял твой вопрос, имя инстанса это уже хуйня какая-то
Аноним 07/07/20 Втр 21:19:40 1744347113
Аноним 07/07/20 Втр 21:26:05 1744350114
Эй вкатуны, как поживаете? 300к\с рубите уже на питончике али вы ржаные гречневые с манямирком?
Аноним 07/07/20 Втр 21:29:26 1744353115
>>1744328
честно говоря мы не понимаем хули тебе надо, напиши плз код как это должно работать

потому что __huita__ существует только для классов, функций и модулей и называется __name__, у экземпляров классов такой штуки нет
разве что
obj.__class__.__name__
Аноним 07/07/20 Втр 22:08:46 1744393116
>>1744353
Что есть инстанс? Объект. Если сделать override __repr__ для конструктора то задача будет решена

class Factory:
def __init__(self):
self.__name = 'factory'
self.__id = 1

def __repr__(self):
return f'{self__name}{self.__id}'

concrete_a = Factory()
assert repr(concrete_a) == 'factory1'
Аноним 07/07/20 Втр 22:15:21 1744397117
>>1744083
Потому что проблемы нет и это надо донести
Аноним 07/07/20 Втр 22:16:34 1744400118
>>1744093
Роутер не дропает сессии если ему хватает все
Аноним 07/07/20 Втр 22:18:30 1744401119
>>1744393
Проверено в repl.it
[code]
class Factory:
def __init__(self):
self.__name = 'factory'

def __repr__(self):
return self.__name

concrete = Factory()

print(repr(concrete) == 'factory')

[/code]
Аноним 07/07/20 Втр 22:19:10 1744403120
>>1744400
Ты теоретизируешь. Коннекты дропать может кто угодно, и твой хостинг, и твой провайдер. Их реально дропают.
Аноним 07/07/20 Втр 22:20:19 1744405121
>>1744401
Ну ебана...

class Factory:
def __init__(self):
self.__name = 'factory'

def __repr__(self):
return self.__name

concrete = Factory()

print(repr(concrete) == 'factory')
Аноним 07/07/20 Втр 22:23:58 1744407122
Аноним 07/07/20 Втр 22:25:01 1744408123
>>1744403
в путинской россии один провайдер - ростелеком и он не дропает.
Никому не нужны тупые проблемы из-за обрывающихся соединений.
Это всегда клиентская проблема.
Аноним 07/07/20 Втр 22:27:23 1744410124
>>1744407
Нет. Почему спрашиваешь?
Аноним 07/07/20 Втр 22:30:02 1744414125
>>1744353
Жаль, буду думать дальше
Аноним 07/07/20 Втр 22:30:34 1744416126
>>1744410
странный вопрос, странный ответ
Аноним 07/07/20 Втр 22:31:12 1744418127
>>1744414
а нахуя тебе оно надо?
Аноним 07/07/20 Втр 22:31:52 1744419128
>>1744416
Вопрос был в том, как дать инстансу название. Я и дал ответ. Что не так? Не знаете что такое override метода?
Аноним 07/07/20 Втр 22:36:39 1744423129
>>1744419
Это мне пригодится когда буду писать load() из файла. Спасибо.
Аноним 07/07/20 Втр 22:40:06 1744427130
>>1744423
А какая вообще задача стоит?
Аноним 07/07/20 Втр 22:47:20 1744432131
>>1744419
Название же статическое в любом случае будет, смысл тогда в этой хуете? И нахуя репр явно вызывать, вы че
Аноним 07/07/20 Втр 22:52:00 1744437132
>>1744432
Генерируй через UUID уникальное, хули. Хоть через timestamp.
Ты какой-то душный.

А как ты без repr сделаешь call к нужному методу? Я же говорю, можно и через @property все расписать и понятнее будет
Аноним 07/07/20 Втр 22:56:16 1744440133
>>1744437
>Генерируй через UUID уникальное, хули. Хоть через timestamp.
Я мимочел, изначальный вопрос анона был именно в имени переменной насколько я понял, а не класса.
>А как ты без repr сделаешь call к нужному методу?
Тут хуйню сказал, соглашусь, имел в виду что логичнее обращаться к str()
Аноним 07/07/20 Втр 22:56:41 1744441134
>>1744408
А схуяли ты думаешь что я из россии?
С роутером все Ок.
Т.к. на работе тоже самое, как минимум.
Аноним 07/07/20 Втр 23:09:19 1744457135
>>1744440
Насчет __str__ согласен, так как __repr__ должен содержать название класса.

Enum? Но надо писать метод для выдачи
Аноним 07/07/20 Втр 23:12:06 1744459136
>>1744440
Хуевый вариант это дергать globals()



a =1
b =2

print(globals())

GLOBALS = globals()

print(GLOBALS['a'])

Костыль, но задача выполнена, лол.
Аноним 07/07/20 Втр 23:58:37 1744475137
>>1744441
ну так купи услуги у тех у кого не глючит.
последний раз я пинг в ssh настраивал 10 лет назад, потому что в очередной прошивке dir-300 решили экономить память при раздаче торентов.
Аноним 08/07/20 Срд 00:32:28 1744494138
>>1744408
Провайдеров много. Большинство дропает. И на хостингах дропают.

Как минимум сейчас норма, что многие подключены не напрямую, а через роутер или NAT провайдера. У МГТС так, у мобильных операторов.

Они по-определению дропают. Потому что NAT не может забивать себе адресную таблицу слишком большим количеством путей.

Такие же проблемы есть и у хостеров. У них есть какая-то защита сессионного уровня и они дропают мёртвые соединения, по которым давно не шёл трафик.

Решение есть, опция -o ServerAliveInterval=10
эта опция говорил, чтобы ssh каждые 10 секунд посылал keep-alieve пакет, если нет трафика. Можно прописать в конфиг и не думать после этого.
Аноним 08/07/20 Срд 01:21:26 1744527139
>>1742394

> Какая зп?

Сперва была 50к, сейчас подняли до 80к, самое смешное что как подняли то стали поступать другие предложения, вот сейчас в процессе прохождения собеседования в другую контору там 100к обещали. Не ДС и не ДС 2, но миллионик.
Аноним 08/07/20 Срд 06:55:22 1744603140
>>1744494
Да пусть настроит. Но он должен знать,
что дропают только обоссанные хохлятские хостинги. ОС посылает этот "пинг" без участия приложения с интервалом 45-60 секунд
Аноним 08/07/20 Срд 09:53:46 1744712141
Скриншот 08-07-[...].png 5Кб, 999x558
999x558
Каким образом питон делит - 4 // 3 и дает - 2. Что за хуйня?
Аноним 08/07/20 Срд 10:20:15 1744741142
>>1744712
Округляется к меньшему целому.
Аноним 08/07/20 Срд 11:12:30 1744798143
>>1744712
а вот и вкатывальщики, которые не осилили деление с остатком. Пока есть вы, я не боюсь конкуренци.
Аноним 08/07/20 Срд 11:33:35 1744824144
>>1744798
Пиздец тайное знание.
Вообще не помню, была ли когда-нибудь потребность использовать его в реальном проекте.
Аноним 08/07/20 Срд 11:35:49 1744826145
Аноним 08/07/20 Срд 11:38:17 1744829146
>>1744826
Например? Какие профиты по сравнению с флоатом?
Аноним 08/07/20 Срд 11:55:16 1744849147
Двач, выручай
С помощью opencv удалось вывести картинку экрана в окно. Теперь стоит задача определить, находится ли конкретная картинка на экране. Пробовал через cv2.matchTemplate, но он дает сравнивать только 2 картинки. А нужно, что в реальном времени считывалось через запись экрана. Ниже код, через который записываю экран. Умоляю, помогите. В пайтоне полный ноль, уже несколько дней бьюсь, гугл не помогает.

printscreen = np.array(ImageGrab.grab(bbox=(30,80,960,500)))
cv2.imshow('window',cv2.cvtColor(printscreen, cv2.COLOR_BGR2RGB))
Аноним 08/07/20 Срд 12:21:34 1744881148
>>1744829
Что бы не хранить дробную часть, когда данные должны быть в натуральных значениях
Аноним 08/07/20 Срд 12:21:38 1744882149
>>1744829
>деление нацело
>профиты по сравнению с флоатом
шта
Аноним 08/07/20 Срд 12:25:00 1744886150
>>1744076
>мышкой
>ssh
Это само по себе прикольно, но да хуй с ним, вероятно ты подразумевал немного иное (но все равно сказал хуйню)
Суть в запуске даймонов: редиса, celery и т.п. удачи сделать это "просто открыв 5 терминалов"
Аноним 08/07/20 Срд 12:25:32 1744887151
Аноним 08/07/20 Срд 12:37:13 1744893152
>>1744849
Ну дак делай цикл, который будет делать скриншот окна и при помощи cv2.matchTemplate определять есть ли на скриншоте совпадения с патерном.
Аноним 08/07/20 Срд 12:38:24 1744895153
>>1744893
Хотя опенссиви вроде как умеет и сам раскрадровывать видео, которое захватывает, но тут я уже ничего не подскажу
Аноним 08/07/20 Срд 12:49:58 1744900154
>>1744887
Ну да, запустить 5 сервисов можно и с 1 терминала, ебать мозги с 5 - это уже какое-то извращение
Аноним 08/07/20 Срд 13:14:47 1744912155
>>1744849
>удалось вывести картинку экрана в окно. Теперь стоит задача определить, находится ли конкретная картинка на экране

людям потребовалось 50 лет чтобы создать нейросети в современном виде.
Аноним 08/07/20 Срд 19:38:42 1745305156
Пихтонщики, поясните за map, filter, zip, etc

Как часто ими вы пользуетесь?

Вообще не понимаю как и когда их уместо использовать, вижу решения других людей - почти каждое имеет эти фунции.

Либо я говнокодер, хз короче
Аноним 08/07/20 Срд 20:19:52 1745324157
>>1745305
буду говорить про бекенд и как часто он используется в задачах написания веб-апи. Про то как там в анализе данных не знаю. Во всяких задачах для собеседований и прочих leetcode'ах эти функции используются довольно часто.

>map
берет функцию f и какой-нибудь итерируемый объект список. Для каждого элемента из списка делает f(x) и возвращает соответственно список этих f(x)

используется не часто, обычно использует list comprehension, типа (f(x) for x in my_list)

но можно сказать что часто используется в threadpoolexecutor'ах см: https://chriskiehl.com/article/parallelism-in-one-line

>filter
берет функцию f, список my_list, смотрит каждый элемент если для него f(x) == True то возвращает его в выходной список, если нет то пропускает

используется еще реже, обычно либо делают списковое включение а-ля (x for x in my_list if x), либо дрочат какой-нибудь for x in my_list: if f(x): ret.append(x), либо сразу запрашивают нужные данные в sql или еще где

но заюзав какой-нибудь f = open(); filter(None, f) можно выебнуться перед коллегамиодноклассниками

>zip
есть два списка my_list в котором хранятся x1, x2, ... и your_list в котором y1, y2, ... . zip берет их и делает новый список с парами: (x1, y1) , (x2, y2) , (x3, y3), ...

используется оч часто когда нужно совместить два каких-нибудь выхлопа, вроде запроса-ответа, id-объекта какого-нибудь

>etc
ну там много разных в itertools и в functools

>Вообще не понимаю как и когда их уместо использовать
в питоне принято дрочить на эти функции и везде совать, такой python-way. В принципе использовать их стоит если они сокращают код и делают его понятнее. Фильтры в фильтрах делать не стоит

>Либо я говнокодер, хз короче
читай переодически этот тред, чтобы самоутверждаться на местных довенах

Аноним 08/07/20 Срд 20:19:55 1745325158
>>1745305
map и filter используются нечасто, есть более актуальные генераторные выражения и компрехеншены.
А zip полезная штука, много где не обойтись.
Аноним 08/07/20 Срд 23:19:31 1745465159
Есть проект на Djano, в котором иногда нужно делать запрос к стороннему API. Как повторять запрос если истек таймаут заданное количество раз? Желательно, с примером кода.
Аноним 08/07/20 Срд 23:28:25 1745475160
Аноним 08/07/20 Срд 23:55:25 1745497161
Смотрю чувака, он ставит gunicorn. Я запустил свой гуникорн обычной командой gunicorn --bind 0.0.0.0:8001 project.wsgi и все работало, этот же петух написал .sh скрипт для запуска гуникорна, и в скрипте есть строка: env/bin/postactivate на этой строке скрипт крашится когда его запускаю я, потому что внезапно такого файла нет. Проверил - и правда нет. Что еще блять за postactivate? Знаю bin/activate - через него виртуальная среда активируется, а это что за говно? В инете пояснений хуй да нихуя (ОС: Дебиан 9, что у меня что у него)
Аноним 09/07/20 Чтв 00:29:15 1745523162
>>1745497
Короче это не особая фича, петух просто за кадром где-то создал этот файл вот и все
Аноним 09/07/20 Чтв 00:53:43 1745542163
>>1745305
Уже написали, zip иногда полезная штука, map, filter ближе к тому что рудименты, во втором питоне активнее ими пользовались, сколько помню, они там иначе вызывались.

map-filter вносили как инструменты из функционального программирования, чтобы был мультипарадигмовый язык.

Однако то, как они поддержаны в третьем питоне, лишает их смысла. Для того, чтобы смысл был, надо, чтобы был механизм объединения в цепочки, условно
result = filter(func, source).map(func2).filter(func2)
и т.п., но ничего и близкого нет.

Смысл теряется. При этом на выходе ты получаешь специфичные объекты, с которыми надо что-то делать.

А просто filter-map можно заменить не менее наглядными генераторами списков-словарей, ключевой фишкой питона, которой не в большинстве других языков.

Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи.
Аноним 09/07/20 Чтв 01:03:02 1745546164
>>1745542
>Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи.
Из дополнительных библиотек еще есть more_itertools. Очень годная вещь.
Аноним 09/07/20 Чтв 02:37:56 1745590165
Написал вот такое, что бы проверить как это работает
a=1
while a:
a=input("...")
else:
input("exit")
Если ввести цифру, интерпритатор вновь и вновь будет выполнять цикл, потому что переменная True.
Если ничего не вводить, переменная получит аргумент в виде пустой строки, что для bool является False по дефолту.
Однако при вводе значения 0, цикл продолжает выполняться.
Почему? Ведь 0 это тоже по дефолту False. Я пробовал делать так:
a=int(1)
Но это ничего не изменило.
Подскажите пожалуйста.
Аноним 09/07/20 Чтв 02:42:13 1745592166
>>1745546
А можно пару примеров где штуки оттуда используются.

>>1745590
Потому что "0" это True
Аноним 09/07/20 Чтв 07:53:43 1745620167
Безымянный.png 39Кб, 695x241
695x241
Я чет наверное совсем даун, но я не смог нагуглить, что делает параметр offset в библиотеке requests. Вот тут, вообще не понимаю, что написано.
Аноним 09/07/20 Чтв 08:09:23 1745624168
Я только в самом начале изучения, нихера ещё не понимаю. Спиздил код, а питон ругается на синтаксис в строчке с print. В чём дело?
Код взял здесь: https://qna.habr.com/q/174859


def findword(line):
for step in range(1, len(line)):
for start in range(step):
if len(set(line[(start or None)::step])) != 1:
break
else:
return line[:step]
return line

print findword("HELLOHELLOHELLOHEL")
print findword("HHHELLOHHHELLOHHHELLOHHH")
print findword("_HHELLOHHELLOHHELLOHHELLOHHELLOHHE")
Аноним 09/07/20 Чтв 08:50:07 1745629169
>>1745620
в библиотеке нет этого параметра. Это параметр, который отправляется сайту. Тело запроса такое
>data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the Request.
Аноним 09/07/20 Чтв 09:06:04 1745634170
>>1745624
Скобки после принта короче надо. Всем спасибо так сказать.
Аноним 09/07/20 Чтв 09:14:23 1745637171
>>1745634
Ты дебил? Print стал функцией с параметрами уже давно.
Аноним 09/07/20 Чтв 09:20:50 1745640172
>>1745590
Потому что стоит брать адекватное булевое значение, не?
Тем более input выдает строку, надо указывать конкретный тип который хочешь получить.
in = input('...')
If isinstance(in, int) and int(in) > 0:
a = True
else:
a = False
break # прерываем цикл, неосилятор ты ебаный
Аноним 09/07/20 Чтв 09:24:55 1745642173
>>1745592
Потом сниппет скину. Есть список словарей с одинаковыми ключами
[{'a': 1, 'b':[]},...]. Надо их свести к виду {'a':[b...b(n)] и отсортировать по датам данные в списках (тоже словари)
Там itertools.groupby. В postgres можно было бы ещё в базе это сделать, но mysql ебаная параша
Аноним 09/07/20 Чтв 09:26:08 1745644174
>>1741714 (OP)
Есть сервис на питоне, который должен вытягивать инфу запросами и отправлять в ответ дургие запрросы, плюс нужна бд. Как это всё лучше запилить?
Аноним 09/07/20 Чтв 09:34:15 1745650175
>>1745644
Pool Connection и FastAPI для REST например
Аноним 09/07/20 Чтв 09:37:00 1745651176
>>1745644
А вообще ты хуевое ТЗ написал. Какие запросы? В БД? В MQ? В сторонний сервис?
Аноним 09/07/20 Чтв 09:38:56 1745653177
>>1745651
Кароче пишу бота для вк, надо запрашивать лонгполами инфу по чейнджам, а потом делать по ним POST запросы разной степени упоротости. И при этом должна быть бд куда сваливать данные.
Аноним 09/07/20 Чтв 09:49:53 1745658178
>>1745653
корованы надо грабить?
Аноним 09/07/20 Чтв 09:50:01 1745659179
>>1745653
БД аналитическая нужна или просто временные данные? PostgreSQL, MySQL, MySQL для хранения на ФС.
Clickhouse для аналитики
Redis NoSQL в память.

Ну вообще API с примерами и я хуй знает что тебе ещё подсказать. Для HTTP запросов requests, aiohttp
Аноним 09/07/20 Чтв 09:54:19 1745663180
>>1745659
Спасибо, а что по мультитредингу? Сейчас это сделано так: есть тред с запросами к бд, который делает запросы и складывает их в очередь. В другом потоке мы ждём когда нам что-то упадёт и обрабатываем. Хотелось бы ещё более асинхронно всё это делать. Что можешь подсказать? Есть какие-то штуки для этого?
>>1745658
Да.
Аноним 09/07/20 Чтв 10:11:25 1745671181
>>1745663
Мультитред -> GIL, учти.
Process1 -> Queue -> Process2.
Есть ZeroMQ для этих целей, RabbitMQ оверкилл, хочешь на нативных инструментах сделай. Process это прирост на линуксе овердохуя, про шинду забудь.
Вчера пробовал Process fork на линупсе с uvloop внутри, 13 мб памяти футпринт, а spawn 36. Ебал я в рот весь Редмонд.
Аноним 09/07/20 Чтв 10:12:24 1745672182
>>1745542
a = [ i for i in range(10)]
result = list(filter(lambda x: x<6, filter(lambda x: x>3, a)))

Все работает жи
Аноним 09/07/20 Чтв 10:18:38 1745674183
>>1745663
А ну и мультитред уже неактуален, только для run_in_executor() для asyncio. Тред банально быстрее запускать чем процесс. Ну и доступ сразу к namespace и globals будет(нет). Чисто сделать и закрыть.
А Process на постоянку. И так как у тебя I/O только, но ты хочешь слушать постоянно и писать без блокирования, то разделяй так.
В БД пишешь с асинхронной либой через connection pool. Сразу держит соединения для быстрого обращения к БД. Но э. то нагрузка на сервер БД сразу. Так что решай сам. Пул для concurrency берут, но я сразу его использую. Проще въебать asyncio.gather(*tasks) где каждый таск это выполнение процедуры БД. ORM медленное дерьмо, prepared statement это говнокод. А так передаешь аргументы и похуй. В самой.процедуре проще код поменять и отладить заранее.

Я набил шишки на этом, но другие могут быть со мной не согласны. Каждый по-своему прав. Ищи что тебе удобнее и даёт нужный результат.
Аноним 09/07/20 Чтв 10:26:37 1745683184
>>1745671
Если совсем тумдум и нихера не выйдет скину готовые шаблоны Процесса с uvloop внутри и graceful shutdown через signal(SIGKILL, SIGTERM) и готовый aiomysql connector с tenacity retry. Для того чтобы повторять запросы если база легла и автоматически поднимать pool. Т.е. переживает перезапуск сервера и не уходит в exception или unclean exit code.
Пушто собирать и отменять корутины внутри процессов та ещё ебля. Но лучше чем запускать 100500 файлов пихона описанные в my_pihon.sh или 100500 unit service.
Аноним 09/07/20 Чтв 11:10:58 1745716185
>>1745629
А, типа он просто делает .../getUpdates?timeout=100&offset=None а что оно делает надо в доках телеги смотреть.
Аноним 09/07/20 Чтв 11:17:45 1745720186
>>1741714 (OP)
Кто там за ФП копротивлялся?

class MyFilter(filter):
----def filter(self, func):
--------return self.__class__(func, self)

class MyList(list):
----def filter(self, func):
--------return MyFilter(func, self)

arr = MyList(data)
arr.filter(callback1).filter(callback2).filter(callback3)
Аноним 09/07/20 Чтв 11:33:52 1745724187
>>1745716
В курсе что уже многие книги тупо протухли и надо сразу идти читать документацию и лезть в код модуля, чтобы знать где метод или параметр стал deprecated? Питон это вам не жава.
Аноним 09/07/20 Чтв 13:50:55 1745843188
>>1743270
>Нахер нужен мультитрединг, если там все равно GIL тру асинхронности не дает, а накладных расходов больше?
Разные задачи, разные плюсы и минусы. И мультитрединг с асинхронностью разные вещи
Аноним 09/07/20 Чтв 14:05:07 1745860189
>>1743270
1.Накладные расходы на мультитрединг сильно преувеличины.
2. GIL ОТПУСКАЕТСЯ при вызове кода на С или системных вызовов. Поэтому ты можешь спокойно писать многопоточный традиционный сетевой сервис . И даже на pandas какие-то ебнутые обсчеты делать мультитредно.
Аноним 09/07/20 Чтв 14:38:12 1745894190
15330718672910.jpg 137Кб, 500x429
500x429
напомните нубу, как надо выделить строку кода, чтобы она не читалась программой, но все равно там находилась?

в каком то из языков это делается с помощью // вроде
Аноним 09/07/20 Чтв 14:41:53 1745899191
>>1745894
#
няш, но ты бы гуглил.
Аноним 09/07/20 Чтв 14:41:53 1745900192
>>1745894
#single
'''
multiple
'''

"""
Docstring, bitch!
Use it!
"""
Аноним 09/07/20 Чтв 14:42:58 1745903193
>>1745899
не смог запрос для гугла нормально сформулировать...
Аноним 09/07/20 Чтв 14:43:04 1745904194
Аноним 09/07/20 Чтв 14:49:01 1745916195
Аноним 09/07/20 Чтв 15:11:20 1745952196
>>1745904
спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Аноним 09/07/20 Чтв 17:00:16 1746109197
Скачал питон, сделал файл text.py, внутри написал print("Hello World"), ввожу в консоль питона путь к файлу, пишет ошибку, что за хуйня
Аноним 09/07/20 Чтв 17:22:12 1746115198
>>1746109
надо вводить не в консоль питона, а в самом терминале ос
python text.py
Аноним 09/07/20 Чтв 17:22:41 1746116199
какие же ньюфаги тупые пиздец просто
Аноним 09/07/20 Чтв 17:54:01 1746144200
>>1746116
они на то и ньюфаги, ньюфаг по определению не может быть умным
Аноним 09/07/20 Чтв 17:54:24 1746145201
poop.png 21Кб, 756x784
756x784
Насколько гемморно будет переписать этот блок на Питоне?
Аноним 09/07/20 Чтв 17:54:27 1746146202
>>1746116
ну вот и пусть, как анон в соседнем треде говорил, умные ребята юзают их по низкой цене и меняют как перчатки
Аноним 09/07/20 Чтв 18:46:11 1746211203
Несколько раз пробовал вкатиться. И в питон, и в джаву, и в джаваскрипт, чего только не перепробовал. Отвращение наступает на моменте решения задач типа спам+бекон, и прочая подзалупия. После них весь энтузиазм как отрезает.
Сегодня решил автоматизировать на работе один рутинный процесс. Написал скрипт на питоне, и когда он заработал, и скучная хуйня, на которую я тратил свою жизнь, была решена за пару секунд - почувствовал себя первооткрывателем. Чистая эйфория.
Потом решил автоматизировать другой процесс, и тут уже наступил затык. Есть конфиг в текстовом файле, в нем есть определенные строчки, в которые нужно внести изменения. Сперва через инпут последовательно вводятся нужные данные айпи, маска, шлюз, имя хоста и потом как-то бы надо эти данные подставить в конфиг, но я застопорился и рабочий день закончился.
Но вообще, ощущения - атас. Когда прогаешь реальные задачи - это не идёт ни в какое сравнение.
Аноним 09/07/20 Чтв 18:48:52 1746218204
>>1746211
Когда уже перечитал весь SO, github issues, всевозможные блоги и нашел крупицы того, что поможет с решением, НО в итоге реализовал свое вот это охуенно, а когда оно еще и в production работает... уууу прям радугой кончаешь.
Аноним 09/07/20 Чтв 18:54:46 1746227205
Котаны, шо за хуйня творится в в вкансиях? из 100 штук только в одной требование работы с asyncio. Все еще пилят на Django всякую хуетень и пользуются ORM(который еще больше замедляет работу).

Как жить-то? Либу asyncio развивают во всю, куча либ с поддержкой asyncio и 3.8. Uvloop везде, а все ебутся со стеком Django-Celery(Redis, RabbitMQ). Н-А-Х-У-Я?
Аноним 09/07/20 Чтв 19:25:24 1746262206
>>1746227
да потому что это ебет только двачетред! зачем ты ему поверил то?
никто не пишет на питоне сервера. нет задач у малого бизнеса
Аноним 09/07/20 Чтв 19:27:00 1746264207
>>1746145
в принципе можно 1 к 1 переделать
Аноним 09/07/20 Чтв 19:32:57 1746269208
>>1746227
> а все ебутся со стеком Django-Celery(Redis, RabbitMQ). Н-А-Х-У-Я?
Еще годика полтора потерпят и асинхронность сразу в Джангу завезут
Аноним 09/07/20 Чтв 19:51:19 1746287209
>>1746227
>из 100 штук только в одной требование работы с asyncio
Как ты ищешь?
Глянул HH, Мск за три дня, по слову django 83 вакансии, по asyncio 24

Причём в части asyncio именно требуется.

Во время карантинов вакансий было больше.
Аноним 09/07/20 Чтв 20:01:45 1746293210
>>1746262
Сервера? Может сервисы/микросервисы? АSGI фреймворков дохера уже развелось.
Аноним 09/07/20 Чтв 20:03:47 1746295211
>>1746287
Размытое понятие. В том-то и дело, что без определенного стека asyncio. Sanic, Falkon, Starlette...? ML, микросервис?
09/07/20 Чтв 20:09:23 1746299212
Говно для пердоскриптов.
Аноним 09/07/20 Чтв 22:25:25 1746402213
>>1744824
деление нацело полезно в бесконечных циклах где число обязательно должно быть целым, чтобы в этом бесконечном цикле не вызывать функцию int , потому что int работает сильно медленнее чем //
Аноним 09/07/20 Чтв 22:36:05 1746416214
Capture.PNG 10Кб, 394x283
394x283
Аноним 09/07/20 Чтв 22:51:07 1746429215
>>1746416
И часто тебе приходится использоватьс циклы на сто миллионов итераций с целочисленным делением?
Аноним 10/07/20 Птн 00:16:14 1746488216
Ставлю серв через nginx и гуникорн
Вроде спустя n часов все заработало. Поставил в setting.py DEBUG=False так при загрузке страницы nginx выбрасывает 403 error на static файлы, а медиа (картинки) вообще не подгружаются. Что за прикол? Я всего-то убрал дебаг-мод, с ним все работает и никаких 403
Аноним 10/07/20 Птн 01:18:27 1746516217
>>1746488
> Что за прикол?
А ссылку на статику и медиа в юрл добавил?
Аноним 10/07/20 Птн 02:30:21 1746531218
pyyyyy.png 6Кб, 524x152
524x152
Аноним 10/07/20 Птн 02:39:47 1746534219
image.png 95Кб, 1084x679
1084x679
Здравствуй, анон.

Столкнулся с такой проблемой. Дело даже не в питоне, а скорее в иде.

Надо было сделать новый чит-код для игрухи (sims 4), собсна нашел некоторый "быстрый старт" https://darasims.com/stati/tutorial/tutor_sims4/3662-kak-delat-skriptovye-mody-na-python-dlya-the-sims-4.html

Побыстренькому набросал необходимое и запустил compile.py, как сказано в инструкции. И тут выводит ошибку:
>from Utilities import compile_module
>ModuleNotFoundError: No module named 'Utilities'
(Структура папок в прикрепленном изображении)
Хотя, если в файле писать тот же from он спокойно предлагает Utilities

Вроде итак подступался и сяк, решил установить pycharm, шоб было прям как в инструкции.
И оно заработало.

Я даже хз в чем проблема была. Предполагаю, что из-за настроек в папки .idea.

Собсно, может кто пояснить почему так происходит, и как это исправить, чтобы в VSCode все нормально работало?

я предполагаю, что я не знаю чего-то прям простого, и прошу вас сказать в чем проблема или же, в какую сторону копать

Спасибо, анон!
Аноним 10/07/20 Птн 03:22:57 1746539220
>>1746534
Utilities у тебя двумя уровнями выше скрипта, как оно будет работать?
Аноним 10/07/20 Птн 03:33:01 1746541221
>>1746539
Я даже не подумал об этом, да даже если бы подумал, хз как избежать.

Но почему-то в vscode это не работает, а в pycharm работает.

Так всё-таки, как это исправить?
Аноним 10/07/20 Птн 03:35:39 1746543222
>>1746541
Тебе надо во всех папках проекта создать пустые файлы __init__.py которые будут показывать, что это не просто пустые папки, а модули.
Аноним 10/07/20 Птн 03:38:57 1746544223
image.png 20Кб, 315x464
315x464
>>1746543
так, но в папке Utilities был __init__.py, т.е. он воспринимался как модуль. Или как бы да, но как-бы нет?
Аноним 10/07/20 Птн 03:40:48 1746545224
>>1746544
В воркспейс тоже и другие папки.
Аноним 10/07/20 Птн 03:42:49 1746546225
>>1746545
Хорошо, смысл понял.
Но почему тогда в pycharm это всё выполнялось нормально? Я даже опешил на некоторое время
Аноним 10/07/20 Птн 07:22:20 1746571226
>>1746429
ну просто надо знать об этом, у меня например в игрушке на pygame есть main loop, и там происходит деление координаты на число чтоб получить новую координату, координата не может быть не целочисленная иначе краш ( не бывает полтора пикселя), в мейн лупе все время вызывать int это хуйня а вот // збс
Аноним 10/07/20 Птн 11:25:19 1746686227
Сап, могут продвинутые питонисты пояснить что такое .compute() и для чего он используется?

Например:
class Node:
____def __init__(self, *values):
________self.values = values


class value(Node):
____def compute(self):
________return self.values[0]


class add(Node):
____def compute(self):
________return value(self.values[0].compute() + self.values[1].compute()).compute()
Аноним 10/07/20 Птн 11:54:09 1746706228
Аноним 10/07/20 Птн 12:01:52 1746716229
>>1746686
Ты кинул какой-то кусок без объяснения что это и хочешь чтобы мы тебе сказали?
Аноним 10/07/20 Птн 12:15:19 1746737230
>>1746716
>>1746686
Так понятнее?

class Node:
def __init__(self, values):
self.values = values

class value(Node):
def compute(self):
return self.values[0]


class add(Node):
def compute(self):
print (self.values[0])
return value(self.values[0].compute() + self.values[1].compute()).compute()

class sub(Node):
def compute(self):
return value(self.values[0].compute() - self.values[1].compute()).compute()

class mul(Node):
def compute(self):
return value(self.values[0].compute()
self.values[1].compute()).compute()

class truediv(Node):
def compute(self):
return value(self.values[0].compute() / self.values[1].compute()).compute()

class mod(Node):
def compute(self):
return value(self.values[0].compute() % self.values[1].compute()).compute()

class pow(Node):
def compute(self):
return value(self.values[0].compute() self.values[1].compute()).compute()



a, b = value(5), value(2)
print(add(a, b).compute())
Аноним 10/07/20 Птн 12:16:53 1746739231
>>1746543
Неактуально для 3.7+

Для того чтобы пользоваться директориями не принадлежащими к данному проекту, но при этом там заведомо нужные для работы модули или просто файлы, то прописываешь PYTHONPATH=/dir/modules_dir
Аноним 10/07/20 Птн 12:29:48 1746762232
>>1746737
бля ты бы хоть описал что это за кусок и откуда ты его взял. Зачем тебе разбираться, что ты от этого куска хочешь

выглядит это либо как кусок калькулятора либо как часть какого-то парсера

какая-то строка бьется на токены а потом собирается в ноды. Каждая нода мб своего типа в зависимости от того что было в строке. Потом это говно попадает в какую-то функцию которая проходит по всем нодам и вызывает у каждой compute

это называется полиморфизм и применение ISP

вообще чем понятнее задашь вопрос тем точнее и лучше будет ответ

на всякий случай: ты долбоеб и иди нахуй
Аноним 10/07/20 Птн 12:35:30 1746771233
>>1746762
Да я долбоеб, и что? Но ты же в глаза ебешся. Я блядь конкретно спрашиваю нахуя в данном коде .compute() и что оно делает.
Аноним 10/07/20 Птн 12:55:44 1746791234
>>1746771
>Да я долбоеб, и что
то что программирование не твое иди мой туалеты

>Я блядь конкретно спрашиваю нахуя в данном коде .compute()
предоставляет интерфейс чтобы в другом месте с экземлярами sub mul truediv mod pow можно было работать не вдаваясь в подробности что это конкретно за реализация Node.

>что оно делает.
соответстввенно в add compute складывает, в mul умножает и так далее
Аноним 10/07/20 Птн 13:09:17 1746803235
>>1746791
Ясно, ты ебанат. Дальнейшие разговоры будут бессмысленными. Иди нахуй, пидар.
Аноним 10/07/20 Птн 14:56:43 1746957236
Сап, Анон. Подскажи библиотеку, для создания полей с графиками, где можно с помощью органов управления менять различные коэфициенты и в реальном времени будут меняться графики.
Аноним 10/07/20 Птн 15:13:06 1746978237
Аноним 10/07/20 Птн 15:16:45 1746986238
>>1746978
Анон, ты охуенен. Добра тебе.
Аноним 10/07/20 Птн 16:01:49 1747059239
Подумал что в моей джанго-приложухе будет неплохо сделать возможность двойственной работы: одна и та же вьюха будет по-разному реагировать на запросы анонимов и на запросы зареганных юзеров: зареганных юзеров будут обсуживать по данным из бд, а анонимов - по кукам. Как без ветвящихся if-ов это сделать?
Аноним 10/07/20 Птн 20:09:10 1747276240
>>1746516
В Питоне? Зачем? Статику должен nginx отправлять, так везде и советуют
Вот конфиг: https://pastebin.com/25Z6EP7N
По инету ходит инфа, что дело в недостаточных правах для групп юзеров... Хер знает, буду смотреть
Аноним 10/07/20 Птн 20:12:37 1747281241
У меня возможно супер тупой вопрос будет, но разве django и nginx не одну и ту же задачу выполняют? Типо поднимает сервер, мапят юрлы со страницами.
Аноним 10/07/20 Птн 20:18:00 1747292242
>>1747281
Ну как видишь команда runserver и без nginx прекрасно справляется. Но почему-то для продакшна это не катит. Как думаешь, почему?
Аноним 10/07/20 Птн 20:19:26 1747295243
>>1747281
Добавили дополнительную сущность - сервер приложений, который связывает твой прикладной код с веб-сервером.
Веб-сервер обслуживает клиентов и передает динамические запросы серверу приложений. Сам по себе он тоже может выступать сервером, но особых нагрузок держать не сможет, т.к. такой задачи нет.
Аноним 10/07/20 Птн 20:20:44 1747297244
Возможно не по теме, какую вилку по зп адекватно просить в ДС. Вводные данные: изучаю питон 2.5 года, 1.5 коммерческой разработки, писал в основном проекты джанго + дрф, были мини проекты на фласке, fastapi, aiohttp, разные парсеры + selenium, юзал постгрес, кролика и сельдерей на проектах. Могу немного в докер, CI/CD, девопс - настраивал на проектах авто сборку и прогон тестов + стат. анализ кода. Писал для себя на реакте, еще немного на С этот код работает в проде. Честно говоря считаю себя джуном, так как по сути все это делал один.
Аноним 10/07/20 Птн 20:21:51 1747298245
>>1747292
> Как думаешь, почему?
Ну я этого как раз и не понимал.

>>1747295
Вот щас понял. Спасибо большое
Аноним 10/07/20 Птн 20:28:23 1747305246
.png 405Кб, 1200x716
1200x716
>>1747297
> 1.5 коммерческой разработки
Но это уже заява на мидла по сути. Проси 130к
Аноним 10/07/20 Птн 20:33:07 1747308247
>>1747305
>Но это уже заява на мидла по сути. Проси 130к
Полтора года это не миддл, а опытный джун.
Аноним 10/07/20 Птн 20:36:22 1747309248
>>1747305
Осенью буду искать, если пиздеца с короной не будет. Сейчас есть работа за 90к, в августе буду отдыхать, а потом закрывать пробелы в знаниях.
Аноним 10/07/20 Птн 22:19:31 1747431249
>>1747297
Проси "сейчас ЗП + 30%".
Делаю так и доволен.
Аноним 10/07/20 Птн 22:22:14 1747435250
>>1747276
Короче помогло 2 часа танцев с бубнами и: добавление моего юзера в группу www-data, рекурсивное изменение правил chmod для папок проекта и папок nginx, рекурсивное изменение владельцев chown тех же директорий
как я ебал эти пердолли сука...
Аноним 10/07/20 Птн 23:01:06 1747479251
>>1747435
Ну это стандартная хуйня, так ещё диды делали.
Аноним 10/07/20 Птн 23:55:29 1747527252
image.png 52Кб, 547x286
547x286
Как с помощью этого парсера вычленить целиком конкретный div? Теги и дата в разных методах, как им пользоваться вообще?
Аноним 11/07/20 Суб 00:03:20 1747541253
Аноним 11/07/20 Суб 00:04:57 1747545254
>>1747541
А этот парсер тогда нахуй нужен?
Аноним 11/07/20 Суб 00:21:50 1747569255
>>1747545
Ты еще спроси зачем cgi в стандартной либе есть
Аноним 11/07/20 Суб 01:26:53 1747651256
>>1747527
Это потоковый парсер, ты заебешься им извлекать конкретные элементы с условиями. Надо держать стейт и ручками всем управлять, ориентируясь по этим ивентам.
Он подходит или для всяких сложных дел типа создания dom, или совсем простенького типа извлечь все ссылки или картинки.
Аноним 11/07/20 Суб 01:55:57 1747675257
Можно ли в Керасе как-то выдернуть удачную эпоху (которая показала хороший val)?
Аноним 11/07/20 Суб 02:46:43 1747686258
word = input("Введите слово: ")
start = None

while start != "":
start = (input("\nНачальная позиция: "))
if start:
start = int(start)
finish = int(input("Конечная позиция: "))
print("Срез word[", start, ":", finish, "] выглядит как:", end=" ")
print(word[start:finish])
print("Полная последовательность выглядит как:", word[:])

Почему при попытке проиндексировать срез в обратном порядке, на экран выводиться пустота?
Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?

Подскажите пожалуйста.
Аноним 11/07/20 Суб 03:40:53 1747695259
>>1747686
Для обратного порядка нужеш явный отрицательный шаг, т.е. [::-1]
Аноним 11/07/20 Суб 03:46:16 1747699260
>>1747695
Но я так и делаю же. Например если ввести слово "пицца" и задать
от -5 до +1, выводит пустой экран.
Аноним 11/07/20 Суб 03:46:36 1747700261
>>1747699
быстрофикс
от -5 до +1
Аноним 11/07/20 Суб 03:46:53 1747701262
Аноним 11/07/20 Суб 04:04:42 1747705263
>>1747701
Что то я туплю и пишу ерунду.
Вопросы из №1747686 для меня всё ещё актуальны.
При попытке для слова "пицца" задать диапазон от -5 до -1
на экран выдаёт пицц.
Последнюю букву таким способом я вывести не могу. Разве что изначально задать вместо "пицца", строку "пицца "
Аноним 11/07/20 Суб 04:07:28 1747706264
>>1747699
-5 и -1 это просто оффсеты считая с конца, они не задают порядок, это делает третий опциональный параметр.
Например.
In [24]: 'govno'[2::-1]
Out[24]: 'vog'
Аноним 11/07/20 Суб 04:08:45 1747707265
>>1747705
До конца просто пустое значение.
[:5]
[5:]
Аноним 11/07/20 Суб 04:17:02 1747708266
очень спасибо!
Аноним 11/07/20 Суб 08:45:08 1747743267
>>1747686
> Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?

По твоему коду не понятно, тк при копировании на двач у тебя пропали отступы в условии, и я не знаю, что у тебя находится в блоке if, а что нет.
Если у тебя в условии только строка start = int(start), то в случае пустой строки в start, у тебя происходит извлечение среза, где одна из границ None.
Выполни скрипт из консоли, а не дабл кликом, да посмотри ошибку.
Аноним 11/07/20 Суб 09:50:22 1747763268
Аноны, поясните почему нельзя обратиться к переменной i в генераторе?
a = [int(i) for i in input().split()]
Аноним 11/07/20 Суб 12:00:46 1747846269
>>1747763
> a = [int(i) for i in input().split()]
В смысле нельзя? Как ты написал можно
Аноним 11/07/20 Суб 14:52:25 1748042270
Сап, аноны нужна помощь ибо ньюфаг не понимает.
Собственно есть задача: есть произвольный список l содержащий любое количество строк.И есть переменная q содержащая в себе одну или несколько букв, и мне надо проверить начинается ли она с любой буквы, содержащейся в q для каждой строчки из l.Собственно функцию я накатал но она мне выдет вместо нужного первый элемент списка l и ошибки я не вижу.Может добрый анон подскажет ньюфагу пожалуйста?
Вот моя функция:
def start_with(l, q):
for letter in l.split():
if l[0].startswith(q):
print(q)
start_with(l, q)
Аноним 11/07/20 Суб 15:57:22 1748124271
>>1748042
У тебя итерация не по списку
Аноним 11/07/20 Суб 16:23:46 1748187272
>>1747308
Это все лычки
Меня на повидло с 10 месяцами взяли
Аноним 11/07/20 Суб 16:35:46 1748216273
>>1748124
Спасибо добрый анон.Буду разбираться почему у меня получается итерация не по списку.
Аноним 11/07/20 Суб 16:39:16 1748225274
>>1748216
>почему
потому что ты его даже не передаешь скорее всего, у list нет функции split
Аноним 11/07/20 Суб 16:45:43 1748234275
1.PNG 30Кб, 997x554
997x554
>>1747743
Вот скрин с этим кодом.
Его даже не я написал, я изучал его по книге, из которой и скопировал.
Если ничего не вводить и нажать Enter, програма переходит к последней строке.

Аноним 11/07/20 Суб 16:49:25 1748239276
>>1748234
Если попробовать ввести начальной позицией -5
а конечной позицией пустоту, выдаёт ошибку.
Аноним 11/07/20 Суб 17:25:24 1748286277
1.png 26Кб, 1109x430
1109x430
Аноним 11/07/20 Суб 17:30:12 1748294278
>>1748042
>l.split()
И шо это должно по-твоему делать?

>if l[0]
И это в цикле?

У тебя ж наверняка Exception-ы вылезают, прочитай что они тебе пишут. И логирование сделай, для начала функцией print, такие траблы как у тебя решаются логами и не засоряют лишний раз инфополе
Аноним 11/07/20 Суб 17:34:10 1748302279
kit.jpg 7Кб, 225x225
225x225
>>1748187
>>1747308
пиздос вы тут все успешные, и вопросы стали интереснее задавать, прям не узнать пистон-тред...
вот бы хоть нак какую-нибудь работу вкатиться...
Аноним 11/07/20 Суб 17:54:56 1748328280
3.png 57Кб, 858x1112
858x1112
>>1747686
>>1748234
ты наверно употреблять начинаешь и выходишь за границы индексации
Аноним 11/07/20 Суб 17:59:49 1748334281
>>1747686
>Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?

И второй вопрос, у тебя условие - цикл продолжается пока:
start != "" (цикл должен продолжаться пока не введена пустота - "")

Когда ты вводишь пустоту - "", start равняется "" (start=="") соответственно цикл выходит
Аноним 11/07/20 Суб 18:43:05 1748388282
>>1748334
Спасибо, это очень помогло.
Аноним 11/07/20 Суб 18:48:30 1748391283
Хм, недавно мне на мейл пришло скопом 3 подобных информацуионных сообщения от джанго-сервера:

Invalid HTTP_HOST header: 'www.myresource.com'. You may need to add 'www.myresource.com' to ALLOWED_HOSTS.

У меня сайт в формате myresource.com, никаких www там нет, с хрена ли мне это присылается?
Аноним 12/07/20 Вск 10:04:47 1748872284
.png 61Кб, 691x451
691x451
Поясните что за собака такая? Часто её вижу, нихуя не понимаю на хуя это всё нужно. В питоне не бум бум.
Аноним 12/07/20 Вск 10:05:45 1748874285
>>1748872
Бывает ещё в теле класса такая же ебень.
Аноним 12/07/20 Вск 10:11:07 1748875286
Аноним 12/07/20 Вск 10:31:01 1748879287
>>1748872
Так загугли. Это для background задачи по типу рассылки сообщений
Аноним 12/07/20 Вск 10:42:19 1748888288
Аноним 12/07/20 Вск 13:07:51 1748968289
>>1748872
Осваиваешь сельдерей но не в курсе про декораторы? Ты молодцом
Аноним 12/07/20 Вск 14:13:26 1749084290
>>1748391
Тот же вопрос: теперь пришли оповещения о вообще каких-то левых айпишниках, что это блэт?
Аноним 12/07/20 Вск 18:13:00 1749482291
>>1749084
Если оно публично захощено, то боты какие-то щупают.
На тот же ssh сразу начинают массово ломиться.
Аноним 12/07/20 Вск 19:30:15 1749558292
как комфортно с питоняшного бека перекатываться в дата саенс?
Аноним 12/07/20 Вск 21:31:06 1749677293
Помогите тупому. Есть два списка.
В одном время точеное, в Int'aх, в другом значение функции дрочёное в float'ах.
Как в матплотлибе построить обычный 2д график по этим двум спискам? Всё прогуглил, всё не то.
Аноним 12/07/20 Вск 21:46:31 1749690294
>>1749677
Уточню.

Этот код

import pylab
figsize = (8,6)
pylab.plot (time, a)
pylab.show()

строит график. Но мне нужно его в streamlit загнать. Не получается найти способ построить такой график по двум спискам, чтобы загнать в streamlit
Аноним 12/07/20 Вск 21:46:50 1749692295
photo2020-06-25[...].jpg 111Кб, 807x807
807x807
Сап пр.

Вопрос следующего плана, я не имею понятия как дела обстоят в иных случаях, но знаю что некоторые эксплоиты выполняют в памяти уязвимого приложения шеллкод.

Меня интересует может ли что-то подобное делать пайтон на винде.
Парочку примеров я видел, но они для UNIX систем, в общем мне интересен просто рабочий пример.

Другой вопрос не особо касается питона, но все-же вдруг кто знает.
Например написал я программу на Си, которая выводит Hello world. Как мне из декомпилированной программы получить собственно сам сырой код, чтобы его потом разместить в памяти и выполнить ?

Сразу скажу, я не мамин хакир, меня интересует сам процесс, хочу попытаться реализовать одну идею которая давно в голове сидит пердит.
Аноним 12/07/20 Вск 21:49:01 1749694296
>>1749558
учишь класический мл, и соответствующие либы - нумпай, пандас, склерн. Потом можно учить дип лернинг это соответстннно пай торч или тензерфлоу, лучше пайторч
Аноним 12/07/20 Вск 21:50:44 1749695297
Нашёл сам с третьей попытки в документации. Спасибо.
>>1749677
>>1749690
Аноним 12/07/20 Вск 21:56:02 1749700298
image.png 75Кб, 947x858
947x858
image.png 49Кб, 940x582
940x582
Я ебал этот пердолинг. Мне просто нужно построить сраный 2д график в сраном streamlit'e. Пример из документации не работает. нужно гуглить как узнавать версию какой-то ебени и как-то даунгрейдить. Пиздец мне в анус.
Аноним 12/07/20 Вск 23:10:59 1749763299
>>1749700
Разве эти графики кто-то использует?
Я думал, это такая хуйня, чтобы напрягать студентов.
Аноним 12/07/20 Вск 23:12:04 1749765300
А есть альтернатива кубернетес? Не хочу пидором быть, но хочу данные между серверами гонять на пистоне.
Аноним 12/07/20 Вск 23:26:08 1749774301
>>1749763
Я уже разобрался. Но пичот с документации. Очень сложно стороннему человеку, обладающему минимуму информации.

А графики используют, да.
Аноним 13/07/20 Пнд 00:02:56 1749795302
>>1749774
>минимуму
Му-му, блять.
минимумом
слоуквикфикс
Аноним 13/07/20 Пнд 01:07:21 1749837303
Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина? А то хочу сменить место работы, но кажется, что я уже близок к потолку с 200к и нужно подтягивать англюсик хотя бы до уровня индуса
Аноним 13/07/20 Пнд 01:29:53 1749857304
>>1749837
>Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина?
Такие зарплаты только у кабанчиков. Западный барин платит не больше, чем крупные российские компании в ДС.
Аноним 13/07/20 Пнд 01:32:10 1749861305
>>1749857
Знакомый 420к получает, просто удобно устроился. Фирма на 200 человек, из них 120 - инженеры теплоэнергетики. А он один стал систадмином на всю контору.
Аноним 13/07/20 Пнд 01:35:47 1749862306
>>1749857
У меня знакомый работает на русскоязычную контору из проебалтики, которая 2.5к евро платит. Смотрел вакухи на удаленку на швятых, там в 1.5 раза больше средние
Аноним 13/07/20 Пнд 02:20:56 1749880307
Есть знатоки aiohttp?
Как забахать роутинг для следующих урлов:
/abs
/abs/{blabla}

В джанго ебнул решулярку на конец строки, и готово. Тут какая то дикаяч смесь, и не регулярка, но и не строка. Есть прям так и бахать, как у меня, то ругается, что уже есть роут для /abs. Пробовал в первом случае добавить симовол конца строки (r'^/abs$') - не рабаотает
Аноним 13/07/20 Пнд 02:39:30 1749882308
Аноним 13/07/20 Пнд 02:43:22 1749883309
>>1749882
Вопрос не в этом, а в том, как обрабатывать просто /abs
Аноним 13/07/20 Пнд 02:48:36 1749884310
>>1749883
покажи код как у тебя сейчас и как ты хочешь
Аноним 13/07/20 Пнд 02:49:48 1749885311
>>1749884

import os
import pickle
import errno

import numpy as np


STORAGE_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '.storage'))


class NeuralNetwork:
def __init__(self, input_nodes=3, hidden_nodes=3, output_nodes=3, rate=0.3, load_from=None):
"""
:param int input_nodes: количество узлов во входном слое
:param int hidden_nodes: количество узлов в скрытом слое
:param int output_nodes: количество узлов в выходном слое
:param float rate: коэфициент обучения
:param str load_from: загрузить данные из предварительно обученной модели
"""
if load_from is not None:
if not self.load(load_from):
raise ValueError('Model with name `{}` not found'.format(load_from))
else:
self.input_nodes = input_nodes
self.hidden_nodes = hidden_nodes
self.output_nodes = output_nodes
self.rate = rate
self.w_i_h = None # весовые коэффициенты между входным и скрытым слоем
self.w_h_o = None # весовые коэффициенты между скрытым и выходным слоем
self.__init_weights()

def train(self, input_list, target_list):
"""Тренировка нейронной сети - уточнение весовых коэффициентов
:param iterable input_list: входные данные
:param iterable target_list: целевые значения
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T
targets = np.array(target_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

# Выходная ошибка сети = целевое значение - фактическое значение
o_errors = targets - o_outputs

# Ошибки скрытого слоя - это ошибки выходного слоя сети,
# распределенные пропорционально весовым коэфициентам связей
# и рекомбинированные на скрытых узлах
h_errors = np.dot(self.w_h_o.T, o_errors)

# Обновим весовые по следующей формуле:
# alpha e sigmoid(x) (1 - sigmoid(x)) o, где
# alpha - коэфициент обучения,
# e - выходная ошибка,
# sigmoid(x) (1 - sigmoid(x)) - производная от функции активации (сигмойды в нашем случае),
# o - выходной сигнал предыдущего слоя.

# Обновим весовые коэфициенты между скрытым и выходным слоем сети
self.w_h_o += self.rate
np.dot((o_errors o_outputs (1 - o_outputs)), h_outputs.T)

# Обновим весовые коэфициенты между входным и скрытым слоем сети
self.w_i_h += self.rate np.dot((h_errors h_outputs (1 - h_outputs)), inputs.T)

def predict(self, input_list):
"""Опрос нейронной сети - получение значений сигналов выходных узлов
:param iterable input_list: входные данные
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
inputs = np.array(input_list, ndmin=2).T

# Расчитаем входящие сигналы для скрытого слоя
h_inputs = np.dot(self.w_i_h, inputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = self.__activation_function(h_inputs)

# Расчитаем входящие сигналы для выходного слоя
o_inputs = np.dot(self.w_h_o, h_outputs)

# Расчитаем исходящие сигналы для выходного слоя
o_outputs = self.__activation_function(o_inputs)

return o_outputs

def back_query(self, output_list):
"""Осуществляет обратный запрос к сети
:param iterable output_list: обратные исходящие сигналы сети
:return numpy.array: выходные данные
"""
# Преобразуем входные данные в двумерный массив [1, 2, 3, 4] -> array([[1], [2], [3], [4]])
o_outputs = np.array(output_list, ndmin=2).T

# Преобразуем выходящие сигналы во входящие сигналы для выходного слоя
o_inputs = self.__back_activation_function(o_outputs)

# Расчитаем исходящие сигналы для скрытого слоя
h_outputs = np.dot(self.w_h_o.T, o_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
h_outputs -= np.min(h_outputs)
h_outputs /= np.max(h_outputs)
h_outputs
= 0.98
h_outputs += 0.01

# Расчитаем входящие сигналы для скрытого слоя
hidden_inputs = self.__back_activation_function(h_outputs)

# Расчитаем исходящие сигналы для входного слоя
inputs = np.dot(self.w_i_h.T, hidden_inputs)

# Нормализуем сигналы от 0.01 до 0.99, т.к. сигмойда не может давать знаения за пределами этих чисел
inputs -= np.min(inputs)
inputs /= np.max(inputs)
inputs = 0.98
inputs += 0.01

return inputs

def save(self, key):
"""Сохраняет обученную модель
:param str key: имя модели
"""
try:
os.makedirs(STORAGE_PATH)
except OSError as e:
if e.errno != errno.EEXIST:
raise
file_path = os.path.join(STORAGE_PATH, key)
value = {
'input_nodes': self.input_nodes,
'hidden_nodes': self.hidden_nodes,
'output_nodes': self.output_nodes,
'rate': self.rate,
'w_i_h': self.w_i_h,
'w_h_o': self.w_h_o,
}
with open(file_path, mode='wb') as fn:
pickle.dump(value, fn, protocol=2)

def load(self, key):
"""Загружает обученную модель
:param str key: имя модели
"""
file_path = os.path.join(STORAGE_PATH, key)
if os.path.isfile(file_path):
with open(file_path, mode='rb') as fn:
value = pickle.load(fn)
self.input_nodes = value['input_nodes']
self.hidden_nodes = value['hidden_nodes']
self.output_nodes = value['output_nodes']
self.rate = value['rate']
self.w_i_h = value['w_i_h']
self.w_h_o = value['w_h_o']
return True
else:
return False

def __init_weights(self):
"""Инициализация случайных весов используя "улучшенный" вариант инициализации весовых коэфициентов.
Весовые коэфициенты выбираются из нормального распределения центром в нуле и со стандартным отклонением,
величина которого обратно пропорциональна квадратному корню из количества входящих связей на узел.
"""
self.w_i_h = np.random.normal(0.0, pow(self.hidden_nodes, -0.5), (self.hidden_nodes, self.input_nodes))
self.w_h_o = np.random.normal(0.0, pow(self.output_nodes, -0.5), (self.output_nodes, self.hidden_nodes))

@staticmethod
def __activation_function(x):
"""Функция активации нейронной сети
:param iterable x: матрица входящих сигналов сети
:return numpy.array: матрица сглаженных комбинированных сигналов
"""
return 1.0 / (1.0 + np.exp(-x)) # в качастве функции активации будет выступать сигмойда

@staticmethod
def __back_activation_function(y):
"""Функция обратной активации нейронной сети
В нашем случае, для сигмойды обратной функцией является логит - y = 1/(1 + e
*-x) <=> x = ln(y/(1-y))
:param iterable y: матрица обратных исходящих сигналов сети
:return numpy.array: матрица обратно сглаженных комбинированных сигналов
"""
return np.log(y / (1.0 - y))
Аноним 13/07/20 Пнд 02:51:17 1749886312
>>1749884
Я хз, кто тебе ответил ниже, это не я.
По поводу моего ворпоса - пажжи, тут что то хайня какая то.
Аноним 13/07/20 Пнд 02:53:40 1749888313
>>1749886
глянь еще раз код в примере

если дописать то

response = await client.post("/some/another/")
assert response.status == 404

соответственно все /abs/ будут попадать куда нужно, а /abss/ /abs/sba/ будут 404
Аноним 13/07/20 Пнд 02:54:32 1749889314
>>1749885
ты совсем ебанутый ты зачем многострок кидаешь в макабу?

используй пастбин хотя бы
Аноним 13/07/20 Пнд 04:47:13 1749906315
>>1747305
Рейт ми, анон. Не троллю, просто сто лет по собесам не ходил, а щас на вольном плавании. Думаю, сколько просить. 13 лет разработки, 9 из них в яндексе. В основном пишу на питонах, но довольно неплохо умею и в сишку. Остальное по мелочи: хайлоад, асинхронность, распределенные системы, докеры-хуекеры, немношк встраиваемые системы и контроллеры. JS/HTML умею, но в гробу видал.
Аноним 13/07/20 Пнд 04:51:36 1749907316
>>1749889
Не учи отца ебаться в жопу.
Аноним 13/07/20 Пнд 05:36:34 1749916317
>>1749906
5к$
Но тут смотря насколько ты лох, тебя и на 1.5к$ могут развести, а ты и рад будешь.что не отпиздили, и прекратили обоссывать
Аноним 13/07/20 Пнд 11:21:04 1750020318
Писец, пацаны, django миграции в одном проекте в последнее время через пизду работают. Только хочу добавить какое-то поле в модель даже CharField так при makemigrations всплывает ProgrammingError и пишется что-то типа (mymodel_newfield does not exist) епт, ну канешн оно does not exist, я ж только что добавил его, клован!
Я знаю как это фиксить, но все равно дико бесит, в последнее время пишу исключительно ручные миграции
Аноним 13/07/20 Пнд 14:35:04 1750174319
Ребят, а как ставить расширения которых нет в wheels ?
ставлю расширение oragne3 - pip комплиятор хочет :
running build_ext running config compiling '_configtest.c': int __attribute__((optimize("O3"))) have_attribute_optimize_opt_3(void*); int main(void) { return 0; } error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/ ---------------------------------------- ERROR: Failed building wheel for bottleneck ERROR: Could not build wheels for bottleneck which use PEP 517 and cannot be installed directly


Visual Studio Community весит 7 гб. Поменьше нельзя что-то качнуть? У меня просто на ноутбуке места мало осталось.

Как прочекать наличие бинарника в wheels ?
Аноним 13/07/20 Пнд 14:53:55 1750193320
>>1750174
жопень, скачал vs_BuildTools.exe 14 - ничего

Питон на windows хочет полный windows sdk ?
Аноним 13/07/20 Пнд 15:15:41 1750219321
Посоны,нашел ESRGAN для видео, он контуженный. Я с питоном пока на вы, помогите исправить.
mport sys
import os.path
import glob
import cv2
import numpy as np
import torch
import architecture as arch

model_path = sys.argv[1] # models/RRDB_ESRGAN_x4.pth OR models/RRDB_PSNR_x4.pth
device = torch.device('cuda') # if you want to run on CPU, change 'cuda' -> cpu
# device = torch.device('cpu')

test_img_folder = 'LR_V/'

model = arch.RRDB_Net(3, 3, 64, 23, gc=32, upscale=4, norm_type=None, act_type='leakyrelu', \
mode='CNA', res_scale=1, upsample_mode='upconv')
model.load_state_dict(torch.load(model_path), strict=True)
model.eval()
for k, v in model.named_parameters():
v.requires_grad = False
model = model.to(device)

print('Model path {:s}. \nTesting...'.format(model_path))

idx = 0
for path in glob.glob(test_img_folder):
idx += 1
base = os.path.splitext(os.path.basename(path))[0]
print(idx, base)
cap = cv2.VideoCapture(path)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
4
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) 4
fps = int(cap.get(cv2.CAP_PROP_FPS))
out = cv2.VideoWriter('results/{:s}.avi'.format(base), cv2.VideoWriter_fourcc('M','J','P','G'), fps, (width,height))
while True:
ret, img = cap.read();
if img is None:
break
img = img
1.0 / 255
img = torch.from_numpy(np.transpose(img[:, :, [2, 1, 0]], (2, 0, 1))).float()
img_LR = img.unsqueeze(0)
img_LR = img_LR.to(device)

output = model(img_LR).data.squeeze().float().cpu().clamp_(0, 1).numpy()
output = np.transpose(output[[2, 1, 0], :, :], (1, 2, 0))
output = (output 255.0).round()
output = np.uint8(output)
out.write(output)
cap.release()
out.release()

Ошибка:

IPython 7.12.0 -- An enhanced Interactive Python.
Model path models/RRDB_ESRGAN_x4.pth.
Testing...
1 15946389272380
Traceback (most recent call last):

File "C:\Users\---\Desktop\ESRGAN-master\test.py", line 28, in <module>
img = img
1.0 / 255

TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'
Аноним 13/07/20 Пнд 15:48:33 1750274322
>>1750219
Ну он тебе ясно и написал, что у тебя вылез None, там его быть не должно
Чекай, логируй
Аноним 13/07/20 Пнд 16:03:52 1750301323
У меня в джанго есть набор статей, который посредствам пагинации (по 10 штук на страницу) передается в template. Как отрендерить его так, чтобы статьи шли сверху вниз парами на каждой строке?
Есть цикл {% for entry in entry_list %} и я с помощью него могу засовывать статейки в заранее подготовленные html теги, а как блин их рассовать чтоб они шли по двое?..
Аноним 13/07/20 Пнд 17:50:59 1750429324
Ребята, вот у меня в Airflow висит только один граф с дейли выполнением, а шедулер целый день каждую секунду ведет какой-то ебанутый бесполезный лог, который по 100мб на каждый день раздувается, это норм вообще?
Аноним 13/07/20 Пнд 19:08:42 1750521325
Двач, умоляю, помоги!
Короче, нужно сделать кнопку, при нажатии на которую скрипт останавливается. Огромное кол-во циклов при работе. работа в стороннем приложении, так что горячими клавишами не обойтись
Саму кнопку сделал, но вообще хуй помни какая функция нужна для btn.bind. Код кнопки ниже.


try:
from tkinter import
except:
from Tkinter import





root=Tk()
btn = Button(root,
text="Stop Code",
width=30,height=5,
bg="white",fg="black",)
btn.pack()
btn.bind("<Button-1>", )

root.attributes("-topmost",True)
root.mainloop()

Аноним 13/07/20 Пнд 19:11:44 1750524326
есть цикл которым я постоянно слушаю сервер, в бд sqlite записываю ответ, нужно связать это всё с pyqt, как мне грамотно связать это всё? наверно не разумно будет поток создать, а асинхронную функцию запилить?
Аноним 13/07/20 Пнд 19:31:00 1750555327
>>1750524
Если запросы не особо частые, то можно и в тред вынести
Аноним 13/07/20 Пнд 20:27:26 1750614328
Как лучше бороть познавательную сложность "cognitive complexity"?

1) Раскидать по модулям?
2) Писать более сложные методы?
Аноним 13/07/20 Пнд 21:43:13 1750670329
>>1750524
Асинхронная библиотека для SQLite есть, но там есть нюансы.
Все равно семафор придется делать (один хуй с asyncio это проще)
Аноним 13/07/20 Пнд 21:46:11 1750675330
>>1750521
def stop():
sys.exit(0)

В кнопку хуячь lambda x: stop() или красиво через functools.partial(stop())
Аноним 13/07/20 Пнд 21:49:08 1750681331
>>1750193
Да, кажется там сразу тянет пакеты для работы с шиндой и компилятор vs (для сборок wrappers). Винда самая хуевая платформа. Накати WSL2 и радуйся.
Аноним 13/07/20 Пнд 21:50:14 1750684332
анонсы, был сегодня на ссобесе и были вопросы по хеш функциям. спросили че это и нахуя оно надо. ну сказал что используется в криптографии для защиты какой либо информации. в нашей области зачастую для скрытия паролей шел на вебмакаку на джанго
после этого сказали окей хорошо. и затем спросили "как можно определить что можно хешировать, а что нет?" и после этого я просто впал в нереальный ступор на полминуты и в итоге промолчал. в итоге услышал заветное "мы вам перезвоним". так вот, подскажите пжалста ответ на этот вопрос
Аноним 13/07/20 Пнд 21:52:35 1750686333
>>1750614
Паттерны братиш. Я сам в это вляпался. Начал рефакторить и заплакал.
Ещё раз посмотри принципы ООП в Пихоне и дуй на http://www.refactoring.guru там сразу примеры есть. Тяжело для понимания, но хули делать
Аноним 13/07/20 Пнд 21:55:33 1750691334
Аноним 13/07/20 Пнд 21:59:22 1750693335
Аноним 13/07/20 Пнд 22:02:56 1750697336
>>1750684
>>1750693
Подозреваю, что вопрос был о хешируемости в питоне, т.е. мутабельные/иммутабельные объекты.
Каким-боком тут хеширование в широком смысле вообще хуй знает.
Аноним 13/07/20 Пнд 22:05:49 1750700337
>>1750697
Ну и то что хэш не только для криптографии используется на SO пояснили и в документаци написано
Аноним 13/07/20 Пнд 22:08:56 1750702338
>>1750684
> были вопросы по хеш функциям. спросили че это и нахуя оно надо
Ебать, чтобы хэшировать инфу, составлять уникальные значения для данных. Очень классно использовать в бд, особенно если хэш алгоритм лёгкий.
> как можно определить что можно хешировать, а что нет?
Хэшировать можно всё нахуй, хоть небо, хоть аллаха, хоть сам питон и эйчара.

Я прошел собес, аноны?
Аноним 13/07/20 Пнд 22:21:08 1750706339
>>1750702
>Хэшировать можно всё нахуй
МЫ ВАМ ПЕРЕЗВОНИМ
Аноним 13/07/20 Пнд 22:26:45 1750710340
>>1750706
Вот суки ебаные, я знаю, ваша либа хэша дырявая сучка и любит принимать инжект ту-туту-ту-ту-ту
Аноним 13/07/20 Пнд 23:41:16 1750757341
>>1750702
По всем пунктам неверно.

Хеширование не может гарантировать уникальность, даже для длинных криптографических хешей, но там вероятность коллизий исключительно мала.

Хеширование в теории алгоритмов нужно для того, чтобы иметь возможность быстро искать сложные объекты, удобно их хранить. Ты работаешь не с объектами напрямую, а в паре хеш-адрес объекта.

Слёту про hash() в питоне без подсказок, вот если бы меня сейчас спросили, я бы адекватно не рассказал, мне проще там про устройство словарей и списков что-то сказать. Пересказывать доку не буду. Есть ощущение, что помнить это не надо, на практике вряд ли пригодится.
Аноним 13/07/20 Пнд 23:53:21 1750759342
>>1750706
Вопрос кстати по хешам: почему в питонухе не хешируются (а следовательно не могут и быть ключами в словаре) изменяемые объекты? Ну изменится хеш при изменении самого объекта, дальше-то что? В чем изъян?
Аноним 14/07/20 Втр 00:08:28 1750763343
>>1750759
Чтобы ты не мог себе в ногу выстрелить. Сделаешь словарь от листа, измнеишь лист и потом не сможешь им как ключем воспользоваться и РЯЯЯЯ
Аноним 14/07/20 Втр 00:10:31 1750766344
>>1750763
А у меня

class MyList(list):
----def __hash__(self):
--------return 1

Че теперь, скажешь, умник?
Аноним 14/07/20 Втр 00:12:56 1750768345
>>1750759
Ключ у тебя отвалилвается, потому что изменненный хеш не подходит, а старого уже нет.
Аноним 14/07/20 Втр 00:13:47 1750769346
>>1750759
Неизменяемые объекты в питоне хранятся в виде объекта и счётчика ссылок. Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект.

А вот два одинаковых по значению изменяемых объекта - это два разных объекта.

Из-за этого и идут все ограничения. Если ты обращаешься по ключу, то просто логика здорового кода подразумевает, что ты ищешь что-то по значению, а не по ссылке.

Если объект, используемый в качестве ключа изменяемый, то тебе необходимо во-первых поддержать поиск по значению, поддержать функцию сравнения, и во-вторых реализовать механизм изменения хешей и т.п. в случае, если объект-ключ изменился. Всё это очень сложно сделать, накладно по ресурсам и много исключительных ситуаций. Поэтому и не нужно.
Аноним 14/07/20 Втр 00:15:51 1750771347
>>1750766
В ногу себе выстрелил.
Аноним 14/07/20 Втр 00:19:01 1750774348
>>1750769
>Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект
Хочешь фокус? Напиши в консоли:
a = 1
b = 1
print(a is b)
x = 100500
y = 100500
print(x is y)

>>1750771
Нет. Я всех переиграл
Аноним 14/07/20 Втр 00:20:26 1750775349
>>1750774
Для тру осознания бытия повтори но теперь так:
x = 100500; y = 100500
print(x is y)
Аноним 14/07/20 Втр 00:25:50 1750777350
>>1750774
>>1750775
Там при старте они засталбливаются как часто используемые, до 255 штоле.
Аноним 14/07/20 Втр 00:31:00 1750780351
>>1750759
Может хешмапа строится во время создания/изменения дикта/сета и при изменении самого объекта ты не сможешь получить к нему доступ, если в качестве ключа укажешь новое значение? хотя по такой логике по старому оно должно быть доступно?
Аноним 14/07/20 Втр 00:32:32 1750781352
>>1750777
Пизда, хотел я проверить до какого порога они забиты, написал скрипт, а CPython Опять мне тапком по лицу провел. Скрипт через exec внезапно не робит:
https://www.ideone.com/4X8m7g
Аноним 14/07/20 Втр 05:20:00 1750916353
Поясните за pyinstaller. Если у меня проект в виртуальном окружении, то инсталлер получается соберет в экзешник все что находится внутри папки виртуального окружения?
Аноним 14/07/20 Втр 08:46:27 1750959354
Работаю системным аналитиком, шарю в БД. На работу обяъвили сокращение через 3 месяца, хочу вкатиться в питон,чтобы быть системным аналитиком со знанием питона или пойти джуном кодить. За 3 месяца по 2 часа в день можно ли натаскаться, чтобы пройти собеседование кодером, а там повышать квалификацию параллельно на работе?
Аноним 14/07/20 Втр 09:02:54 1750963355
>>1750757
Да верно всё, ты всё то же самое говоришь, просто другими словам.
На практике хэши довольно часто нужны. Иногда бывает проще хэши сравнивать, чем строки/данные, если нужно сравнить и похуй на иллюзорную неточность.
Аноним 14/07/20 Втр 09:43:29 1750979356
>>1750691
>>1750693
>>1750697
ну в общем его юзают для криптографии и для ускорения работы самой программы, при том хешить можно только неизмениемые типы данных. я все правильно понял?
кункоторыйзадалвопрос
Аноним 14/07/20 Втр 09:54:43 1750987357
>>1750979
Ускорение в чем? Тебе уже на пальцах объяснили. Попробуй в словаре два одинаковых ключа сделать. Поймёшь почему нельзя сделать два ключа {'name': 'Gvido', 'name': 'Rossum'}?
Касательно уникальности -> uuid, криптография несколько сложнее.
https://ru.m.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BB%D1%8C_(%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F)

А тот анон прав, тебя спрашивали не о применении в общем, но о том, что можно хэшировать и как.
Ты на кого вообще шел?
Аноним 14/07/20 Втр 09:56:33 1750988358
>>1750979
Алсо, для понимания в остальных языках словарь это hashmap. Почему в Пихоне это словарь, видимо чтобы проще было понимать.
Аноним 14/07/20 Втр 09:59:24 1750989359
image.png 86Кб, 991x190
991x190
Анон я тупой объясни мне пожалуйста кое-что. В лутце написано что объекты в пистоне хранят "счетчик" ссылок на этот объект. Я так понял это некий атрибут, но как его получить?
Например есть объект:
int(228)
Какое название атрибутаили метода, я так до конца и не разобрался после точки нужно указать чтобы вернуть количество ссылок на объект?
Я знаю про sys.getrefcount(), но не понимаю откуда берется это значение
Аноним 14/07/20 Втр 10:02:03 1750990360
>>1750989
Никак, это внутренняя хуйня, которой управляет вм.
Её можно пощупать всякими внешними средствами вроде getrefcount, но не более.
Аноним 14/07/20 Втр 10:02:52 1750991361
>>1750781
Тот же самый скрипт но в консоле (не в виде функции) работает ответ кстати 257
Че это блэт? Связано с пространством local? Или просто очередная "магия" пистона?
Аноним 14/07/20 Втр 10:06:10 1750992362
>>1750987
Не удивлюсь что если это тот же чел, который недавно хвалился "айти вышкой" и утверждал что он"шарит в бд", но при этом сама концепция переноса Postgres на сторонний сервер вместо localhost взорвала ему мозг (ну они же проводами не соединены!1 как так-то??)
Аноним 14/07/20 Втр 10:07:36 1750993363
>>1750989
Из области памяти. Потом gc подчищает за тобой.
И ты все верно делаешь. В Пихоне все объект.
Аноним 14/07/20 Втр 10:09:30 1750995364
>>1750992
> ну они же проводами не соединены!1 как так-то??
Соединены же.
Аноним 14/07/20 Втр 10:13:03 1750996365
>>1750990
>это внутренняя хуйня
Понятно, я так понял вернуть названия всех переменных ссылающихся на объект тоже не получится?
>>1750993
>И ты все верно делаешь
что делаю? я же вроде нихуя не сделал...
Аноним 14/07/20 Втр 10:16:57 1750998366
>>1750675
Спасибо, анон, работает как часы. Только пиздец, теперь когда вставляю кнопку в основной код он ее создает и дальше код не обрабатывает. Ждет пока я на нее нажму и все сломаю.
Аноним 14/07/20 Втр 10:17:10 1750999367
>>1750992
"Шарить в БД" это ни о чем. Я вот научился клепать говеные таблицы и создавать процедуры. Нашел бутылочное горлышко в этой хуйне (и знатно на него присел), теперь ищу книгу чтобы вновь не обсираться с индексацией и перекатиться на peewee. Жду как ману небесную Tortoise. Пилят Django style на uvloop. Пока нет нихуя, миграция в 1.0, ,а выкачена 0.18, лол.
Скорее всего буду делать PR clickhouse-infi с переходом на aiohttp. Тоже ORM. Если тут анонасы подскочат буду рад.
Пихон удобный, вот тебе словарь из данных выгруженные из БД, а вот ты обсираешься с ключом. Вот теперь я переобуваюсь, так как топил за процедуры в SQL, но заебался их поддерживать.
Вышка ровным счётом это поджопник. Мне до Джуна ещё минимум два года, так как пиздец какие поверхностные знания. Пока в продакшене не будет ещё 3 проекта, считай и не ходил нихуя.
Поделки на гитхабе (есть желание для себя сделать автозагрузки ongoing сериалов с торрента) я считаю даже при устройстве на галеру стыдно будет показывать.
Аноним 14/07/20 Втр 10:20:45 1751002368
>>1750999
> процедуры в SQL
Нахуй вам вообще скуль нужен. Носкуль бд нужны, качественные.
Аноним 14/07/20 Втр 10:21:16 1751003369
>>1750998
Так ты так код написал. У тебя только кнопка и loop. Внутри в цикле хоть дату выводи.
Аноним 14/07/20 Втр 10:21:41 1751004370
Аноним 14/07/20 Втр 10:25:06 1751009371
>>1751004
Архивировай, размножай, умножай.
Аноним 14/07/20 Втр 10:36:22 1751021372
>>1751009
Ну а что можно такого взять? Потом же аналитику надо проводить. SQL запросы учатся за минут 40, потом уже по методикам развиваешь их. А с NoSQL? Вход сложнее априори.
Аноним 14/07/20 Втр 10:48:58 1751030373
>>1751021
> Вход сложнее априори.
Да никто не говорил что просто будет. Но для джуна и sql хватит, да, нормально вообще. Кэширование нахуярить и сидишь пердишь.
Аноним 14/07/20 Втр 12:01:47 1751081374
>>1751030
Я про то, что другие будут лезть в БД, и им NoSQL будет непонятен. Когда сам архитектуру пишешь, то похуй..используешь что удобнее тебе. А потом твой код превращается в легаси
Аноним 14/07/20 Втр 13:04:19 1751118375
>>1750987
ну так цифорки же быстрее сравнивать например чем строки. разве нет? шел на джанго веб девелопера
>>1750992
не, это простыня-кун который писал сюда в марте. и у меня не айти вышка всего лишь атомная энергетика
алсо, есть какая годная литература по поводу этого? чтобы в книжках читануть. сам читал только укус питона, и только в том сентябре
Аноним 14/07/20 Втр 13:19:45 1751129376
>>1751118
Ты дурак или да? Какие нахер книги. Пиздуй доку по Джанге читай и тыкай готовые примеры. Совсем уже мозги пропили.
АйТи это книга для пинка под зад + документация. Так как библиотеки постоянно меняются. В шапку этот аргумент вставьте, заебали такие тупые вопросы.
Что читать, блять. Сукалол

мимо мамкин экономист со знанием тех. английского
Аноним 14/07/20 Втр 13:40:04 1751154377
>>1751118
>ну так цифорки же быстрее сравнивать например чем строки. разве нет?
Все есть байтики и сравниваются они одинакого
Аноним 14/07/20 Втр 16:54:38 1751347378
Аноним 14/07/20 Втр 16:57:48 1751348379
>>1750916
да, и заебашит туда libpython и бинарник интерпретатора. на SO сотни раз разжевано.
Аноним 14/07/20 Втр 17:40:43 1751376380
>>1751348
Только он чет сторонние библиотеки не добавляет и нихуя поэтому не работает. Как быть если у меня в сторонних библиотеках их штук 20?
Аноним 14/07/20 Втр 17:57:20 1751391381
>>1751376
По-моему, он читает код и оттуда достает что добавить.
Если они у тебя задействуются косвенно, то можешь попробовать добавить явно, чтобы он подхватил.
Аноним 14/07/20 Втр 17:58:44 1751392382
>>1751391
У меня считай почти целиком код работает с помощью сторонней библиотеки. А она в свою очередь использует другие библиотеки.

Как все это явно добавить?
Аноним 14/07/20 Втр 18:01:45 1751395383
>>1751392
Ну смотри чего не хватает в результате и добавляй строчки import huita в своем главном скрипте.
Аноним 14/07/20 Втр 18:03:45 1751399384
Аноним 14/07/20 Втр 18:05:54 1751401385
>>1751395
А как я ипортирую библиотеки, которые использует другой пакет? Основной пакет у меня и так испортируется, но прога нихуя не работает.
Аноним 14/07/20 Втр 18:07:42 1751404386
>>1751401
Да ты у себя импортируй и ничего не делай. Они подхватятся и будут в наличии для использования там.
Аноним 14/07/20 Втр 18:12:22 1751409387
>>1751404
у меня и так пакет в самой программе импортируется для работы. Но тому пакету нужны еще другие пакеты
Аноним 14/07/20 Втр 18:13:33 1751410388
>>1751409
Я тебе и говорю, явно импортируй у себя те, которые нужны тому пакету.
Ты тупой штоле?
Аноним 14/07/20 Втр 18:14:20 1751411389
>>1751410
А я ебу какие именно пакеты ему нужны? Как это проверить?
Аноним 14/07/20 Втр 18:16:46 1751413390
>>1751411
Которых не хватет при запуске бандла.
Аноним 14/07/20 Втр 18:24:30 1751417391
Image 884.png 3Кб, 206x168
206x168
>>1751413
Екзешник просто выдает ошибку не оповещая чего не хватает
Аноним 14/07/20 Втр 18:33:28 1751421392
Аноним 14/07/20 Втр 18:33:48 1751422393
>>1751417
Там есть опция с консолью, в неё должно выдаваться всё.
Аноним 14/07/20 Втр 18:35:11 1751423394
>>1751399
У тебя JSON кривой
line 1, либо нет открывающей {, либо не указал значение после ключа.

ЗАЕБАЛИ
ГУГЛИТЕ СНАЧАЛА ЕБУЧИЕ ОШИБКИ

Перекот на Go, там ебланов меньше.
Аноним 14/07/20 Втр 18:37:17 1751427395
>>1751417
Нахрена ты вообще собираешь экзешник? Хочешь экзешники пиздуй С++ учить или С#. С шиндой никакой интеграции считай и нет, все через жопу.
Python это только Linux (Docker Image как вариант), даже в MacOS натворили хуйни.
Аноним 14/07/20 Втр 18:39:53 1751429396
>>1751423
Давай сразу в хачкель.
Аноним 14/07/20 Втр 18:41:53 1751431397
>>1751421
>>1751422
И так собираю с режимом консольки. Нихуя не работает.

>>1751427
Чтобы скидывать свою программу людям и им не пришлось бы ставить всю хуйню.
Аноним 14/07/20 Втр 19:00:09 1751445398
Аноним 14/07/20 Втр 19:58:54 1751512399
>>1741714 (OP)
Анон, помоги ньюфагу. Есть скрипт https://raw.githubusercontent.com/amayatsky/shadowsocks-url-generator/master/ss-genuri.py

Нужно, чтобы он вместо
>config['server'],
Определял внешний айпи сервака (то, что он тянет из конфига - там другое и это не нужно).

И при выводе, чтобы в конце после всего, что он вывел, он добавлял
>?plugin=vmess%3Bhost%3Dkremlin.ru#done

Ты мне очень поможешь. Бьюсь уже пол дня.
Аноним 14/07/20 Втр 20:23:24 1751534400
Есть какие-нибудь книги или курсы с большим количеством упражнений и всяких практических заданий? Я не понимаю, как можно учить по одним мануалам, мне надо какие-то задания решать, желательно с объяснениями. Скачал курс по питону от специалиста, так там одна теория, практические задания какие-то есть, но записей нет. Да и задания какие-то по теории вероятности, которые для новичка нахер не нужны.
Аноним 14/07/20 Втр 20:27:18 1751536401
Аноним 14/07/20 Втр 20:43:40 1751546402
>>1751534
откуда ты знаешь какие задания тебе нужны а какие нет?
Аноним 14/07/20 Втр 20:58:14 1751562403
>>1751536
>Traceback (most recent call last):
> File "/dev/fd/63", line 5, in <module>
>ImportError: No module named request
Видимо ему библиотека твоя не нравится. А нельзя просто брать этот параметр из сетевого интерфейса? Айпи белый.

И еще, можно ли задать вывод другим цветом? В терминале нужно, чтобы цвет другой был у выводимой строчки
Аноним 14/07/20 Втр 21:03:20 1751568404
>>1751562
Второй питон штоле? Про интерфейс хз есть ли универсальный метод. Если есть команда, выдающая его, то можно выполнить и забрать вывод.
Цвет можно задать через анси-коды, надо смотреть.
Аноним 14/07/20 Втр 21:34:43 1751595405
>>1751568
Я не знаю, стандартно что стоит на впске с убунтой после всех апгрейдов.
>Python 2.7.17 (default, Apr 15 2020, 17:20:14)
>[GCC 7.5.0] on linux2
Аноним 14/07/20 Втр 21:37:34 1751598406
Аноним 14/07/20 Втр 21:39:58 1751603407
>>1751568
>:~$ sudo apt-get install python
>Reading package lists... Done
>Building dependency tree
>Reading state information... Done
>python is already the newest version (2.7.15~rc1-1).
>The following packages were automatically installed and are no >longer required:
> grub-pc-bin linux-headers-4.15.0-109
>Use 'sudo apt autoremove' to remove them.
>0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Аноним 14/07/20 Втр 21:49:02 1751613408
>>1751603
>sudo apt-get install python3
>sudo apt-get install python3
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3 is already the newest version (3.6.7-1~18.04).
python3 set to manually installed.
The following packages were automatically installed and are no longer required:
grub-pc-bin linux-headers-4.15.0-109
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Аноним 14/07/20 Втр 21:51:04 1751616409
>>1751613>>1751603>>1751598>>1751595
Ахахах. Анон, я что-то тупой. Я не знал, что команда для Питона3 так и называется Питон3. До меня дошло, когда увидел, что Питон2 уже очень устарел.

А по цветному выводу нет идей?
Аноним 14/07/20 Втр 21:59:43 1751628410
>>1751616
Ну примерно так.
print('\033[91m' + 'huita' + '\033[0m')
Первое задает красный цвет, второе сбрасывает.
Коды эти можешь погуглить по ansi escape sequence.
Аноним 14/07/20 Втр 22:07:57 1751634411
Привет, мне нужно реализовать создание объекта двумя разными способами
Например:
> obj = Zazaza(some_dict)
> obj = Zazaza(some_list1, some_int)

По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный

Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
Аноним 14/07/20 Втр 22:13:19 1751636412
Аноним 14/07/20 Втр 22:26:57 1751643413
Мужики, сильно не ругайтесь, я зеленый и вообще мимо проходил, однако осмелюсь задать вопрос
Пытаюсь составить прикладную програмку лично для себя через PyQt5, чтобы исполнять написанный мною скрипт. Собственно GUI я сделал, осталось назначить функции кнопкам, но возникла внезапная проблема, решение которой я не могу найти: как передавать в исполняемую функцию необходимые переменные при нажатии кнопки? Это делается через глобальные переменные или есть какой-то более нормальный способ?
Собственно, вот примерно то, чего бы я хотел:
> self.su_show_button.clicked.connect(self.OpenDF(path))
но оно не работает
Аноним 15/07/20 Срд 02:25:35 1751652414
Screenshot20200[...].png 30Кб, 622x250
622x250
Этой ночью продолжаю тупить в asunc
Есть код - пикрил. Читаю из файла некую инфу. Return вроде как лишний. Как првильно прочесть данные асинхронно и положить в файл? А метод чтения из файла нужно ведь помечать как async? У меня что то тоявляется желание везде писать async\await, теорию читаешь, вроде все понятно, а на практике хуета выходит.
Аноним 15/07/20 Срд 02:32:42 1751653415
>>1751643
Ты сразу и вызвал метод, он прочел что то там, и вернул результат, который пытвается вызваться при каждом клике, что то в этом духе. Тебе надо саму функцию передать, а нее результат ее вызова
Аноним 15/07/20 Срд 03:00:14 1751659416
>>1751643
Да, так не будет работать, тебе надо работать задавая где-то заранее переменную и потом в функции ее юзать.

В КюТэ есть встроенные некоторые функции-сигналы которые принимают какие-то параметры(например сигнал ресайза окна), но это не твой случай.
Аноним 15/07/20 Срд 03:09:13 1751660417
>>1751616
>А по цветному выводу нет идей?
>>1751628
>Ну примерно так.
>print('\033[91m' + 'huita' + '\033[0m')


Это все очень сложно для одной строчки. Нашел вот код, но мне нужно вывод из кода >>1751536 задать, как переменную, тогда смогу цветом вывести

Пример, как цвет, у переменных
>echo -e "${green} ${qr_code} ${plain}"
> echo -n "${qr_code}" | qrencode -s8 -o "${cur_dir}"

Я не силен, а ты, если понял, как, подскажи.
Аноним 15/07/20 Срд 03:24:26 1751664418
Аноны, объясните, нахуя нужен self, нихуя не понимаю? В чем его суть?
Аноним 15/07/20 Срд 08:00:55 1751711419
>>1751664
Указывает, что функция применима только к экземпляру класса.
Ссылка внутри описания класса на атрибуты класса.
Аноним 15/07/20 Срд 08:18:09 1751715420
>>1751664
Синтаксический сахар для методов класса, эквивалентен передаче в функцию первым аргументом объекта.
Т.е. по сути это вот так
obj.func(...)
func(obj, ...)
Аноним 15/07/20 Срд 08:35:08 1751719421
>>1741714 (OP)
Не знаю в этот тред или есть специализированные но хочу поличить видеокадры с вебки ноута через OpenCV. Но даже пару строчек кода классического примера выдает ошибки:
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (681) CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) MFVideoFormat_RGB24(unsupported media type)
[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (436) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Как это исправить чтобы всё работало?
Аноним 15/07/20 Срд 08:44:55 1751721422
>>1751634
ПАМАГИТЕ, ПРОШУ
Привет, мне нужно реализовать создание объекта двумя разными способами
Например:
> obj = Zazaza(some_dict)
> obj = Zazaza(some_list1, some_int)

По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный

Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
Аноним 15/07/20 Срд 09:10:19 1751728423
Аноним 15/07/20 Срд 09:15:39 1751729424
>>1751431
Скидывай папку со своей прогой и всеми модулями - делов-то.
Аноним 15/07/20 Срд 09:27:47 1751732425
>>1751729
Куда скидывать? Как сделать чтобы пиинсталлер все что внутри папок собирал?
Аноним 15/07/20 Срд 09:40:31 1751734426
>>1751721
Нет
Но можешь посмотреть в сторону декоратора @overload
Аноним 15/07/20 Срд 09:45:07 1751735427
>>1751732
Может быть тебе лучше садистом пользоваться
Аноним 15/07/20 Срд 09:45:42 1751736428
Аноним 15/07/20 Срд 09:46:37 1751737429
>>1751736
Никак, только для pylint

init(a:Union[dict, List], b:Optional[int] = None):
self.a = a
self.b = b
А в методе уже проверка. Если b передан используй переменную, иначе нахер. Enjoy dynamic types
Аноним 15/07/20 Срд 09:49:02 1751739430
Аноним 15/07/20 Срд 10:11:26 1751749431
>>1751739
Я не вкатывальщик, я для себя делаю так что сходи нахуй, но за ссылку спасибо
Аноним 15/07/20 Срд 10:13:45 1751751432
>>1751737
Да, охуенный в питоне полиморфизм - просто во все поля, куда деваться.

То есть я теперь должен сперва в инит принимать неограниченное число безымянных аргументов, затем проверять их тип и колличество. Затем выдавать им имена для использования внутри инит.

Ну а хули, будем делать.
Аноним 15/07/20 Срд 10:15:40 1751753433
>>1751652
Вроде правильно все на пике.
>А метод чтения из файла нужно ведь помечать как async?
Если в теле метода есть await ты помечаешь его как async или сосешь
Аноним 15/07/20 Срд 10:52:31 1751764434
>>1751751
поч не сделать несколько фабричных методов?

def __init__(...): ...

@classmethod
def from_config_file(...): self.__init__(...)

@classmethod
def from_some(...): self.__init__(...)

в этих ваших статически типизируемых языках приватные конструкторы не такое уж и редкое явление
Аноним 15/07/20 Срд 10:59:16 1751772435
>>1751751
Нет, ты можешь использовать property. Но ты же не читал доеументацию, а сразу спросил. Вот тебе простой вариант решения дали
Аноним 15/07/20 Срд 11:04:14 1751777436
image.png 446Кб, 988x507
988x507
>>1751764
Оооооо, спасибо огромное!!!!
Как я сам не догадался, а ещё говорят, что статические или классовые методы это вредно, а оно полезно
Аноним 15/07/20 Срд 11:06:03 1751780437
>>1751764
слоуфикс

def __init__(...): ...

@classmethod
def from_config_file(...): return cls(...)

@classmethod
def from_some(...): return cls(...)
Аноним 15/07/20 Срд 11:12:10 1751781438
>>1751772
> Нет, ты можешь использовать property.
как здесь поможет использование пропертей?
Аноним 15/07/20 Срд 11:46:43 1751797439
В некоторых вакансиях видел flask хотя думал что на него почти всем похер
Аноны, у меня выйдет спиздеть что я знаю фласк если до этого занимался джангой 4 месяца, а потом по-быстрому подучить его?
Аноним 15/07/20 Срд 12:20:36 1751812440
Как заставить класс исполнять действия в зависимости от состояния? У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них

Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")?
Аноним 15/07/20 Срд 12:27:52 1751814441
>>1751764
Никто ничего не говорил плохо про классовые методы, а вот статики говно говна
Аноним 15/07/20 Срд 12:56:22 1751833442
>>1741714 (OP)
Какие еще есть стулья кроме django и flask для веб бэкенда? Мне асинхронные вьюхи нужны и асинхронный read из БД, а те 2 залупы - синхронные
Аноним 15/07/20 Срд 13:03:41 1751839443
15901346483900.png 383Кб, 512x452
512x452
Доброго дня, славяне.
Вкатился душить питона с нуля на нубо-уровне. Однако выбрал по глупости не тот путь. Не туда воюю, кароч.
Взял курс Python-разработчик от скиллботоксов. Их обещалкам с работой не верю, сам уже работаю сисадмином на бюджете в гос.администрации. Слежу за серверами, администрирую бюджет (торги, закупки), сижу на телефоне с подчинёнными организациями. Хочу начать ещё и программировать. Особого времени на книжки пока нет. Но эти курсы на выходных позалипать могу.
Будет ли это нормальной базой для будущего развития?
Аноним 15/07/20 Срд 13:10:34 1751842444
>>1751780
в таком случае создание объектов будет так выглядеть?

> obj = Zazaza.__init__.from_config_file(some_dict)
> obj = Zazaza.__init__.from_some(some_list1, some_int)

Нужно ли использовать псевдонимы чтобы убрать вот этот вот __init__ торчащий?
Аноним 15/07/20 Срд 13:13:42 1751845445
>>1751814
Статикки - это способ раскидать функции по разным категориям. Это использование святого ООП в неких низменных целях.
Аноним 15/07/20 Срд 13:14:22 1751847446
>>1751833
Загугли блять веб-фреймворки на питоне
Аноним 15/07/20 Срд 13:19:05 1751852447
>>1751842
> obj = Zazaza.__init__.from_config_file(some_dict)
шта

вот так будет выглядеть
obj = Zazaza.from_config_file(some_dict)
метод класса же
Аноним 15/07/20 Срд 13:19:26 1751853448
>>1751839
Если в институте на что-то инженерное учился, то у тебя уже база есть. А программировать начинать надо с практики программирования. Начни писать программу или скриптик своей мечты. А нужные знание будешь по ходу написания проги подтягивать и усваивать.
Аноним 15/07/20 Срд 13:20:40 1751856449
>>1751852
мне автокомплит высирает что-то совсем другое.
Аноним 15/07/20 Срд 13:20:42 1751857450
>>1751814
так я классметоды и предложил
Аноним 15/07/20 Срд 13:21:08 1751858451
>>1751797
скажи что последние 4 месяца занимался джангой, но попробовать фласк не против
Аноним 15/07/20 Срд 13:21:59 1751859452
>>1751853
А если я в универе на менеджера учился?
Аноним 15/07/20 Срд 13:22:06 1751860453
>>1751812
> Как заставить класс исполнять действия в зависимости от состояния?
if self.state == state_N1: ...

> У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них
наследуй -> переопределяй

> Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")?
нихуя не понял вопрос
Аноним 15/07/20 Срд 13:23:59 1751861454
>>1751859
берешь любую книжку которая с нуля и читаешь по полчаса каждое утро
если не зайдет, берешь другую, но читаешь каждый день

каждый вечер по часу в свободном режиме пишешь любую хуйню которая нравится, начиная от автопостера в телегу с каналом с мемами, то генерации твоих менеджерских отчетов

тащемта секретов тут и нет
Аноним 15/07/20 Срд 13:24:28 1751862455
>>1751781
def init(args):
self.__a: Union[Dict, List] = None
self.__b: Optional[int] = None

@property
def a(self):
return self.__a

@a.getter
def a(self):
if isinstance(args[0], dict) or isinstance(args[0], list):
return args[0]
else:
raise ValueError("An unpropriate value type was assigned to variable 'a'")

@property
def b(self):
return self.__b

@b.getter(self):
if isinstance(args[0], list):
if isinstance(args[1], int):
return args[1]
else:
raise ValueError("An unpropriate value type was assigned to variable 'b")
else:
delattr(self, 'b')

def method(self):
if self.a
if isinstance(self.a, dict):
for k,v in self.a.items():
#do
elif isinstance(self.a, list) and b:
for elem in self.a:
# elem
*b


Все равно громоздко?


Аноним 15/07/20 Срд 13:24:48 1751863456
>>1751856
какой у тебя код
что тебе предлагает автокомплит
причем тут мы и твой хуево настроенный автокомлит?
Аноним 15/07/20 Срд 13:25:36 1751865457
Аноним 15/07/20 Срд 13:26:31 1751866458
>>1751861
А это правда, что программисту нужно знать линейную алгебру и теорию вероятности?
Аноним 15/07/20 Срд 13:28:03 1751868459
>>1751865
объебался. потом при вызове c.b будет Exception.

Да я думал удалить нахер аттрибут, но потом сделал их с двойными underscore
Аноним 15/07/20 Срд 13:28:46 1751869460
>>1751866
смотря что ты будешь делать. для реализации мат моделей нужно, в остальном английский на хорошем уровне
Аноним 15/07/20 Срд 13:31:09 1751871461
>>1751869
Я не знаю, что я хочу делать. Хочу просто съебать со своей ненавистной работы.
Аноним 15/07/20 Срд 13:31:33 1751872462
>>1751866
ну смотря что писать, как и на каком уровне. Большая часть прогеров математику дальше 9-го класса не освоили

программирование - это умение писать код + знание предметной области. Для веб макаки знание рекомендаций по использованию библиотек в тыщу раз полезнее интегралов
Аноним 15/07/20 Срд 13:31:58 1751873463
>>1751871
программирование это способ утилизации аутистов, подумай нужно ли оно тебе
тут дно
Аноним 15/07/20 Срд 13:32:38 1751874464
>>1751868
крч я не понял что ты хотел наебашить своими пропертями и где здесь стало удобнее
Аноним 15/07/20 Срд 13:34:59 1751879465
>>1751872
А если приложения для смартфонов писать?
Аноним 15/07/20 Срд 13:35:57 1751881466
>>1751874
Нигде, потому что либо ты заранее знаешь что положишь в аргументы и заранее знаешь что тебе придет tuple(List, Int) и ты будешь работать c List как со списком без применения методов для словаря, либо пишешь такую хуергу или тупо try...except...else
Аноним 15/07/20 Срд 13:38:45 1751882467
>>1751879
то скорее всего линейка тебе не сильно в этом деле поможет, конечно, будет сказываться что ты не графы ворочал на лабах, а хуйней страдал в универе, но ничего принципиального ты бы там не узнал енивей

вообще питон не тот язык на котором пишут мобилки, там следующая ситуация
objective c который сейчас заменился почти swift
java которая никак не заменится kotlin
немного упоротого js
питон вообще не катит, есть попытки, но эт хуйня все
Аноним 15/07/20 Срд 13:38:50 1751883468
Аноним 15/07/20 Срд 13:39:23 1751884469
Аноним 15/07/20 Срд 13:41:24 1751888470
Аноним 15/07/20 Срд 13:42:38 1751889471
>>1751884
Во-первых property это все же инкапсуляция для начала. Касательно classmethod кому как удобно, похуй ваще. И я объебался в init...

Не знаю, надо либо привязывать нормально аргументы либо изъебываться. Универсальность это нечто недостижимое.
Аноним 15/07/20 Срд 13:45:26 1751893472
>>1751888
> @classmethod
> def from_layers(cls, layiers: list):

>@classmethod
> def from_weights(cls, weiights: dict):
Ты траллируешь что ли? У тебя орфографические ошибки в наименовании аргументов.
Аноним 15/07/20 Срд 13:46:11 1751894473
Аноним 15/07/20 Срд 13:47:24 1751895474
>>1751893
Так вышло что в js и python тредах пиздец какие тупые нюфани, но норм олды
а в java, c++ тредах наоборот
Аноним 15/07/20 Срд 13:47:30 1751896475
>>1751893
Это специально, линтер пишет что перекрываются имена во внешней области видимости
Аноним 15/07/20 Срд 13:49:02 1751897476
>>1751896
крч тебе нужно ревью попроси препода помочь тебе накидать норм структуру
Аноним 15/07/20 Срд 13:49:10 1751898477
>>1751882
Я постер отсюда: >>1751839

Полезно ли сисадмину вообще питона душить? Мне коллеги посоветовали именно его, якобы для серверов хорошо и скриптов на автоматизацию. Плюс могу приложения свои пилить опять же для работы и сайты делать нашим организациям. Верно ли это?
Аноним 15/07/20 Срд 13:49:20 1751899478
>>1751896
ты посмотри что в теле метода `weights` и `layers`.
Ты зачем переменные класса тогда ввел? обращайся тогда cls.layers, cls.weights. Потом прибежишь роняя кал "анооон, чому не работаааееееет питоооон гавноооо".
Аноним 15/07/20 Срд 13:53:43 1751902479
>>1751898
> Полезно ли сисадмину вообще питона душить?
да, ansible вся хуйня да и вообще на нем приятнее выглядить скрипты чем на том же bash

> Плюс могу приложения свои пилить опять же для работы
только под линукс, либо django-cms какой-нибудь либо еще что

> сайты делать нашим организациям
нужен js

но вообще с питона начать норм идея
Аноним 15/07/20 Срд 13:53:56 1751903480
>>1751898
Верно. Есть обертки для systemd, windows (я хуй знает как называется). Надстроек над SSH несколько штук и т.п.
Все зависит от прикладной задачи.
Можешь брать rsyslog -> error.log -> python -> clickhouse
Для аналитики (если это оправдывает средства)
Можешь просто парсить лог и переводить его в JSON структуру. Да дохуя чего можно, задачу сначала сформулируй и там видно будет. Zabbix все с лихвой перекроет на самом деле. Или Webmin тот же.
Аноним 15/07/20 Срд 13:55:02 1751904481
>>1751899
Как мне посоветовали тут >>1751780 так я и сделал

>Потом прибежишь роняя кал "анооон, чому не работаааееееет питоооон гавноооо".
Ну это уже твой манямир, я за него не руучаюсь
Аноним 15/07/20 Срд 14:06:40 1751914482
>>1751847
Там гавно какое-то
aiohttp типо крут, но нихуя не ясно как на нем реализуются даже элементарные операции
Аноним 15/07/20 Срд 14:06:42 1751915483
>>1751899
Но я тебя понял, ща буду поправлять, спасибо.
Аноним 15/07/20 Срд 14:08:15 1751917484
>>1751904
Ты выслал кусок кода. У тебя классовые атрибуты без начальных значений. Тогда нахуя они?
Зачем тебе значения инстанса? У тебя будут разные состояния (значения инстансов). Давай считать что ты овердохуя раз будешь их инициализировать. Будет у тебя 100 объектов типа Neuronet. Так у тебя значения априори list и dict как отправная точка. Хули ты вола ебёшь тут?
Аноним 15/07/20 Срд 14:09:47 1751921485
>>1751917
че ты агришься на нюфаню то он нормально спрашивает без выеба
Аноним 15/07/20 Срд 14:10:37 1751924486
>>1751914
FastaAPI, Sanic, Starlette с асинхронкой на uvloop. Aiohttp это скелет для создания своего фреймворка. Быстрее чем готовое, но скорее всего обосрешься при парсинге и в итоге потеряешь в скорости в отличие от уже поддерживаемых.
Аноним 15/07/20 Срд 14:12:44 1751925487
>>1751921
Потому что это полный сюр. Откуда код? Что за библиотека? Структура непонятная, комментарии спизженные. Человек не понимает разницу между class и instance судя по всему, но уже колит нейронку.
Аноним 15/07/20 Срд 14:13:56 1751926488
>>1751914
>aiohttp типо крут, но нихуя не ясно как на нем реализуются даже элементарные операции
Пиздец наркоман
Аноним 15/07/20 Срд 14:19:56 1751932489
>>1751925
> Человек не понимает разницу между class и instance судя по всему, но уже колит нейронку.
ну тут согласен
Аноним 15/07/20 Срд 14:27:36 1751939490
>>1751903
>>1751902
Верно ли что, если я выучу python + js, то смогу помимо мелких задач автоматизации, писать сайты?
Аноним 15/07/20 Срд 14:29:19 1751942491
>>1751939
python / django
html/css/js -> vue.js
выучить это говно невозможно, но в целом вектор такой да
Аноним 15/07/20 Срд 14:35:51 1751946492
>>1751939
а ещё html и css естественно.
Аноним 15/07/20 Срд 14:36:15 1751949493
>>1751942
>python / django
Если он не пойдет на галеру, то можно и что-то поновее и легковеснее использовать. Хотя бы ознакомится с асинхронкой
Аноним 15/07/20 Срд 14:43:29 1751954494
>>1751925
Код полностью мой
Комменты тоже писал сам, докстринги писал по стандартам, потом докстринг генератор прикрутил к IDE
Разницу между классом и инстансом знаю, но классовые методы впервые использую,

А вот по структуре, что тут непонятного?
Аноним 15/07/20 Срд 14:45:34 1751957495
У меня есть словарь с лямбда-функциями для реализации switch/case (да, я ебанутый), каждая lambda принимает 1 аргумент и по итогу получается что-то типа:
result = switch_dict["cat"](self)

Как сделать так, чтобы при несуществующем ключе возвращалась одна и та же некая дефолтная функция с одним аргументом? В курсе про метод get у словаря, но это не то. Посмотрел на defaultdict, но че-то не работает и пиздит что я в дефолтную лямбду ничего не передал
Аноним 15/07/20 Срд 14:46:42 1751959496
Ок, вкатывался совсем новичком. Сейчас прочитал "Python для детей" Бригса. Что читать дальше? Призываются только те, кто ознакомлен с данной книгой и понимают, какая база знаний у меня уже есть.
хочу стать Full stack-разработчиком, если что. Ну мб и игры писать, но это второстепенно.
Аноним 15/07/20 Срд 14:51:22 1751963497
>>1751954
Тогда объясняй:
1. Зачем атрибуты класса в данном случае?
2. Почему ты хочешь менять классовые атрибуты а не класса при инициализации инстанса?

Принцип какой? Singleton? Или будет Фабрика (класс который будет содержать в себе все инстансы типа Neuronet) ?
Вот самое простое.
Аноним 15/07/20 Срд 14:52:11 1751964498
>>1751957
def default_funcia_s_odnim_argumentom(x): return x

defaultdict(lambda: default_funcia_s_odnim_argumentom)
Аноним 15/07/20 Срд 15:00:30 1751981499
>>1751957
Лямбда которая возвращает другую лямбду конечно же
Аноним 15/07/20 Срд 15:31:35 1752015500
>>1751963
1) В данном случае незачем, а так из них по идее можно инициализировать объект
2) ХЗ

Там где я читал про классовые методы было написано что это используется в фабриках.
Впрочем, я уже всё перепилил по уму, как мне кажется, теперь буду тестить.
Аноним 15/07/20 Срд 16:05:52 1752049501
Аноним 15/07/20 Срд 16:10:57 1752060502
>>1752049
хотел выебнуться на нюфаню сам сморозил хуйню

разницу между
layers: list
weights: dict

и
a = 1
b =2

понимаешь?
Аноним 15/07/20 Срд 16:14:02 1752067503
>>1752060
Объявление типа переменной без значения. Которое там непонятно зачем, так как в @classmethod не используется и к которому потом нельзя обратиться. Ок?
Аноним 15/07/20 Срд 16:19:53 1752075504
>>1752067
> Объявление типа
шта

> Которое там непонятно зачем
ну да чувак там намудрил с weiiight и layyyers

> которому потом нельзя обратиться
шта
Аноним 15/07/20 Срд 16:22:31 1752081505
Аноним 15/07/20 Срд 16:26:32 1752084506
>>1752081
и что ты тут хотел показать?
Аноним 15/07/20 Срд 16:27:32 1752085507
>>1752084
ну как бы `a` это 'a' отнюдь не атрибут класса.
Аноним 15/07/20 Срд 16:29:59 1752087508
>>1752085
о том и речь да, что это чисто аннотация
более того это аннотация подразумевает что 'a' атрибут инстанса

поэтому мне кажется что питон не самый хороший первый язык
Аноним 15/07/20 Срд 16:31:59 1752090509
>>1752087
Как первый он ок, если вчитываться в доки, а не слушать скиллбокс цыган. Я уже брал курс от МФТИ. В итоге... они слали читать документацию. Благо курс был 18 000.
Аноним 15/07/20 Срд 16:33:35 1752092510
>>1752090
В свою защиту скажу, что это было давно и на Coursera и тогда не было такого обилия уроков, по направлениям все было интересно. Там были в примерах мат. модели даже. В итоге они меня знатно заебали обилием ошибок и сроками
Аноним 15/07/20 Срд 16:47:52 1752103511
>>1752090
Скилбоксы-гикбрейнзы это наёп на доллАры. На гикбрейнсе например, бесплатные вебинары, по признанию самих студентов, лучше чем занятия самого курса.
Аноним 15/07/20 Срд 16:50:17 1752107512
>>1752103
> бесплатные вебинары
так потому что вебинары это больше рассказать/обсудить/поделиться опытом, а не гарантировать трудоустройство. "Ну приду я в Мыло.сру. Вот берите меня я тут стек выучил немножко, а в ответ явно услышу "нахер пошел, Вася", нам нужен миддл с опытом 10 лет, мы тут не на фантики работаем"
Аноним 15/07/20 Срд 17:05:53 1752125513
Аноним 15/07/20 Срд 17:47:00 1752169514
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз.
https://pastebin.com/WszHK8yk


Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>1751660 Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.
Аноним 16/07/20 Чтв 15:57:12 1752979515
Как в matplotlib сделать динамическое обновление графика? Что ни пробовал не работает.
Аноним 17/07/20 Птн 10:54:50 1753612516
Почему OpenCV грузит jpg но не грузит png?
Аноним 17/07/20 Птн 11:16:39 1753622517
>>1753612
разобрался, была проблема из-за русских букв
Аноним 20/07/20 Пнд 14:06:35 1755932518
Как перенести проект pycharm на другой ПК?
При простом копировании у меня это не получилось сделать.
21/07/20 Втр 17:51:50 1756909519
15938660696162.jpg 490Кб, 1840x1169
1840x1169
Аноним 22/08/20 Суб 17:01:19 1784968520
>>1755932
Юзай гит, и venv. И больше ни шагу без venv.
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов