Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Флудера отправили на порашу? Гуд. в следующий раз, гайз: каждому такому ребенку, сходящему с ума на карантине, кидается репорт с формулировкой "систематический шитпостинг и флуд", модер приходит и отправляет его назад в /b
По теме: где-то объясняется как намутить fullstack приложение на Джанго и каким-нибудь js-фреймворке? Туториалы, что находятся в сети, представляют собой в основном видосы длительностью 1-3 часа. Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта
>>1741930 >Лучше бы была статья, объясняющая азы, особенно по части жаваскрипта Ну так возьми любую статью по фреймовку на ЖС, начни с какого-нибудь Вью, он очень дружелюбен для вката. Дальше пишешь апи для джанго. Фронт раздаешь Nginx`ом как статику, все запросы к беку перенаправляешь к Джанго - все
>>1742008 В api csrf токен не нужен, там уже есть oauth и http-заголовок для него. На фронтах у Яндекса есть csrf-токены или проверка каптчи во всех мутирующих запросах. На скрине я пошёл в passport.yandex.ru и поменял свой адрес.
>>1741275 → Насколько я знаю, да. Но т.к. издательтво орайли захватили успешные менеджеры и они скатились от локомотива опенсорса к типовому инфобарыге по подписке, то сам понимаешь.
Месяц назад зашел в тред, к программированию имел никакое отношение. Спасибо анонам которые помогали и отвечали на вопросы. Сегодня написал классическую "змейку", поле игры организовал через двумерный список с словарем внутри, для состояний каждой клетки, в главном цикле пару раз пробегал по каждому элементу списка. Собственно вопрос, такая организация "Ок" или "неОк"?
>>1742205 >поле игры организовал через двумерный список с словарем внутри, для состояний каждой клетки, в главном цикле пару раз пробегал по каждому элементу списка Зачем хранить все поле игры? Достаточно хранить отмеченные точки и направление движения.
>>1741714 (OP) Господа питонисты, здравствуйте. В общем, посмотрел я в шапке информацию о вкате на хабре, посмотрел еще пару статей и видео о том, что читать/смотреть для вката. Ну, думаю, есть пара книжек и курсов, которые мелькают у всех в рекомендациях, начну, наверное, с них. Потом решил проверить треды, что писали ананасы, – и вы то поносите одну книгу, то другую. То укус питона - говно для говноедов, то Лутц уебище водяное. То какие-то курсы хороши, то это вообще говнище ебаное. Я вообще нихуя не понял в итоге, с чего начинать. Посоветуйте, пожалуйста, аноны, какие книги читать для начала, да и с заделом на продолжение? Может, какие курсы можно посмотреть? Я так понял, российские курсы вы поносите. А какие пиндосские курсы посоветуете? С английским всё хорошо. Питон мне понадобится довольно сильно, и нужны довольно хорошие в нем знания. Зарабатывать питоном вообще не собираюсь пока. Сейчас он нужен в качестве приложения к основной области, для курсовой.
>>1742236 Насчёт книг: В прошлый тред ворвалась маня и поносила топ книгу - укус питона. Не слушай маню, слушай шапку треда. Недавно обновил укус питона до свежей версии. Лутц - долго и нужно, если диплом у тебя через 5 лет, то можешь начать читать лутца.
Курсы анон оьосрал из-за цены и "обещаний" трудоустройства, да и на них ничего оригинального не дают, все тоже самое ты найдешь в нете(видео/статьи/документация). Мимо провел пару лекций по пистону на курсах, и ушел.
Хорошие зарубежные курсы, может кто-то подскажет. Было бы неплохо их в шапку добавить
С хорошим знанием англицкого - учиться будет легко.
>>1742237 Спасибо! То есть, получается, начинать с укуса питона, а дальше что читать? Насколько я понимаю, там совсем базовые знания для новичков, а что дальше после этого читать, если не Лутца на 1000 страниц? В ЧаВо есть ссылка на хабр, там человек сразу говорит читать Лутца, потом говорит еще про 2 книги, ссылки на которые не открываются, а авторы не приведены насколько я понял, под "Язык программирования Python" он имел в виду книгу Россума, Дрейка, Оркидача? это что-то из разряда маст рид? что он имел в виду под "Основы программирования на Python. Учебник. Вводный курс" я так и не понял а потом уже справочник по питону, опять, на ~900 страниц. В итоге я в смятении, что читать после укуса питона.
Аноны, кто ещё знает, подскажите, пожалуйста, курсы русские/пиндосские по питону для начинающих ну и, собственно, с заделом на углубленное изучение. Просто я совсем не ебу, гикбрейнсы, хуейнсы, датакэпмы, что из них хорошее, а что плохое.
>>1742247 Ты для начала полностью прочти укус питона, сделай все примеры и задания, дальше принимайся за Джанго, потом уже можешь потихоньку искать работку, я сам так вкатился, на следующей неделе будет год как работаю бекенд разработчиком, время очень быстро летит.
>>1742247 После укуса могу посоветовать саммерфилда немного почитать. Но вообще, быстрее начинай решать задачки и писать программы, в шапке есть для этого неплохие платформы. Что читать дальше - зависит от области которая тебя интересует.
Обращаюсь за помощью. Я вкатывальщик ньюфаг, сейчас прохожу курс от JetBrains и за проект выбрал крестики-нолики. Вот сейчас у меня задача определить победа\проигрыш\ничья и т.д. И стал вопрос как это сделать. Я то могу сделать это через множество if-else, но мне кажется это не очень. Что мне нужно подтянуть чтобы решить? Алгоритмы или что?
Объясните пожалуйста на языке доступном для пятилетнего ребёнка. print("text" + "text" \ + "text") - выдаёт ошибку print("text" + "text" \ + "text") - работает
Почему выдаёт ошибку в первом варианте и зачем вообще нужен этот слэш? Я разобрался с \a, \n, \t но в остальных ситуация, я не понимаю зачем он вообще. Например зачем при написании print(" \'text\' "), если можно просто написать print(" 'text' ")?
>>1742448 Паттерн такой может быть. Делаешь функцию-отображение field_line(num) --> line то есть занумеровать все возможные линии, их в случае поля 3x3 будет 8 штук, и получать эту линию по номеру
А линию уже легко проверять на то, выигрышная она или проигрышная. Просто циклом по ней проходишь и считаешь, сколько там крестиков и ноликов. Можно и для 3x3, и для больших полей и линий длины 5.
На этом же принципе ты можешь и стратегию игры строить, простейший алгоритм. В частности, предотвращать возможность противнику собрать линию, находить хорошие ходы и т.п.
>>1741714 (OP) У меня есть пара мыслей насчет парсера: еще после прошлого треда наклепал небольшую версию парсера, реализованную на пайпах subprocess.Popen и как следствие - мультипроцессинге. Походу мультипроцессинг в Питоне на пайпах весьма годный (но только если не выходить за рамки конвеера)
У нас есть Leacher, который отправляет запросы к сторонним ресурсами и получает json-ы либо html страницы, если ситуация позволяет, то он может даже работать в асинхронном loop, есть Worker он осуществляет парсинг документа (с помощью bs4 если это html) и передает результат к Writer, который создает нужные директории, файлы и осуществляет запись (также может работать через aiofiles)
Большая доля нагрузки ложится именно на Worker, документов может приходить разом много и их надо вовремя распарсить, так почему бы не сделать 2го или 3го Worker-а? Можно ли с помощью subprocess перенаправить вывод сразу в 3 места так, чтобы результат отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена)
блять какие есть вакансии питониста кроме обоссанного мной же бэкэнда и обдистаного моим преподом дата сайнсом как панацеей 21 века. Я ебал. Охуенный язык, охуенно читабельный, охуенно много библиотек, охуенно много проектов на гит хабе, охуенно много качественного по но блять ебучий хх ру не знает нихуя кроме бэкЭнда и искусственного интеллекта в моей жопе Урал если че екб там челик
>>1742899 Я ебу что-ли? Знал бы не спрашивал. Тесты на селениуме, боты всяких телег дискордов, парсеры, многопоточные обработчики, спамеры, какая-нибудь хуйня с безопасностью.
>>1742898 QA, бэк, дата инжиниринг, машоб, прикладнйо скриптинг. Все. Еще остаются: десктоп (плавно отмирающий и явно не для питона), фронт (за жсом целиком), геймдев (зашкварная хуйня сама по себе), мобилки (тут изощряются но в основном кроме Жабы/Котлина/Свифта тут ничто не живет)
>>1742910 Ну блять не заборостроительного конечно но около того нас и всяким алгоритмам учат, графы хуяфы, машинное обучение тоже было правда называлось искуссвенным интеллектом че такое класы знаю про всякие наследования вкурсе, пару залуп для упрощения жизни писал мб этого хватит для Джуна-нихуя-не-знаю плотите зп пожалуйста
>>1742885 >отдавался по очереди сначала в 1й, потом во 2й, затем в 3й и после снова в 1й Worker? (ну или как-нибудь иначе, главное чтоб нагрузка была распределена) RabbitMQ какой-нибудь прихуярь, где твой личер будет продюсером, а воркеров перенести на косьюмеров
>>1743032 iv это initialization vector, а ct можно предположить, что ciphertext, т.е. зашифрованное значение в base64. Вероятно, AES. Так что ищи ключик.
>>1743033 Угу, и правда AES. Я правильно понимаю что ключ должен лежать где-то в ЖС-коде? Ибо структура такая: На фронте жму кнопку, делается аякс-запрос на сервер, оттуда приходят эти данные(ключи что скинул) и затем на фронте выводится инфа. Больше никаких запросов на бэк не ходит.
Опытным путем вычислил, что ключ секретный - `cp` пикрил, но вот место где эта переменная инициализируется не нашел, видимо в ЖС-тред надо идти. Я охуел от ЖСа, после пистона - просто пиздец.
Изучаю нейросети по мануалам, столкнулся с проблемой схоронения меток классификатора https://pastebin.com/uayHYSxQ Суть в том что если поставить exit(0) до функции model.add(Dense(1024, input_shape=(3072,), activation="sigmoid")) метки сохраняются, если не ставить то файл пустой, в чём может быть проблема?
>>1743133 Очень дельная инфа, бро (нет) Вангую у тебя не скачан Pillow или ты не поставил в поле blank=True
>>1741714 (OP) Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу
>>1743177 > Каковы подводные запуска сразу 3х джанго-приложений на одном виртуальном хостинге с gunicorn? Все 3 обращаются к Postgres но к разным ДБ канешн. В распоряжении 2 ядра и 2 ГБ озу А нагрузка какая? Все от етого зависит. Но я бы БД не запускал на том же сервере что и аппа.
Котаны, изучаю корутины и теоретическую основу async io. Правильно ли я понимаю, что чтобы добиться конкурентности в рамках одного треда на корутинах - необходимо чтобы все времязатратные функции были не блокирующими? Т.е. корутины не решают проблему блокирующих операций, они вместо этого требуют, чтобы все длительные операции были неблокирующими, и все подключенные либы соответственно тоже?
>>1743196 > Но я бы БД не запускал на том же сервере что и аппа. Но это как? Как они будут обращаться к друг другу. Это же виртуальные серваки, а не реальные соединенные проводами.
money=int(input("...")) if money: print("...") else: print("...")
Выражение: if money > 0 ,было бы для меня понятно. Я правильно понимаю, что переменная с функцией int и аргументом 0, для интерпритатора false по дефолту? Спасибо.
>>1743289 > Но удаленный доступ вообще не для этого нужен. Нет. > Какой в этом смысл, это же просто задержку работы увеличит. Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки? Смысл в распределении нагрузок.
>>1743295 > Нет. Как нет, если речь шла о нагрузке. Если у тебя приложение коннектится к бд через сеть, это долго будет с тз высокой нагрузки. Ладно если ты с дома на бд с работы что-то перемешиваешь, отравляя только текст транзакций.
> Если две стойки стоят в одном ДЦ и объединены в одну сеть, ты уверен что заметишь задержки? > Смысл в распределении нагрузок. Ват? Виртуальные серваки объединены в сеть? Это если наверное только специально заказывать у хостинга такие. А так смысл виртуальных серваков как раз в том, что они изолированы. Коннект будет через интернет, очень весело да.
>>1743303 Сто лет уже можно строить внутренние инфраструктуры у облачных провайдеров. Да и если спавнить отдельные серваки в одной локации, они всё равно будут в одной автономной системе провайдера без оверхеда по сети.
>>1743303 >Виртуальные серваки объединены в сеть? Пока ты не хостишь базу данных и веб-сервер у разных провайдеров - да, они объеденные, о какой изоляции ты говоришь? Ну да, на пол миллисекунды будет медленнее, чем если два компа напрямую соеденить шнурком, но все равно ты хуй заметишь. А если использовать серверлесс БД то еще и быстрее может выйти.
>>1743310 По-моему, везде рекомендуются эти неявные проверки. Единственное, что я предпочитаю, это записи вроде num % 1000 == 0, в этом случае действительно наглянее, чем not.
>>1743196 >Но я бы БД не запускал на том же сервере что и аппа. Почему нет? Что за карго-культ?
На отдельный сервер есть смысл выносить тогда, когда сервер БД каким-то специальным образом сконфигурирован, там специальные диски-raid, и т.п. При этом один сервер БД обслуживает много разных приложений.
Потому что главная задача БД обеспечить надёжность хранения данных и быстрый доступ к ним, а задача прикладных серверов обслуживать нагрузку, надёжность там не важна.
Это требует разных конфигураций.
Разделять на виртуальные сервера смысла почти нет. Это не увеличит ни надёжность, ни производительность. Может упростить обслуживание и развёртывание в каких-то случаях.
При этом проблемы добавляются. Например если БД на отдельном сервере, то по-хорошему уже должен быть защищённый коннект. А это дополнительные ресурсы и возня. И не только это.
>>1743314 >они всё равно будут в одной автономной системе провайдера Не мешай понятия. Автономная система, AS, это понятие из маршрутизации (BGP семейство), как определять политику доставки пакетов по группам сетей. В одной автономной сети могут находиться сети, физически очень далёкие друг от друга, с очень большим пингом.
Особого оверхеда в сети нет, подключение по tcp с рамках localhost сравнимо по скорости с unix-сокетами, unix-сокеты сейчас даже не сколько для скорости, сколько для защиты используют, можно выставить владельца и права доступа на unix-сокет, а на tcp порт нельзя (точнее только с помощью специальных файерволлов можно, система-зависимых). Но если у тебя соединения между разными серверами, то их надо защищать, это стандарты безопасности просто, а вот это требует дополнительной работы.
Локальная сеть гипотетически тоже может быть перегружена, тут тоже риски добавляются.
>>1743400 >Почему нет? Ох, видел сколько кушоет Постгрес когда запускает вакуум и прочее? Вынося БД на отдельный сервер или отдавая БД на откуп провайдеру(не очень нравится) ты снимаешь часть головной боли связанной с ней и с поддержкой/настройкой сервера и апы. Безусловно это можно не делать если приложение использует 1,5 анона, но если идет нормальная нагрузка - это бэст практис. А я именно о таком случае говорю. > Что за карго-культ? Ну вот такой, повсеметный и подтвержденный культ. Как и запуск БД не под докером. Я не спец по БД поэтому предпочитаю доверять людям которые ебутся с ними 24/7 и пишут новую логику для них. Я конкретно про Постгрес, т.к. использую его + рашко-разрабы довольно часто выступают на конференциях и рассказывают что к чему и как.
>>1743032 Аноны, опять я на связи. Значит разобрался и нашел ключ для дешифрации данных, даже получилось их извлечь, правда только ЖС-либой - CryptoJS, пикрил №2. А вот питоновскими либами нихуя не выходит. Как и различными анлаен-сервисами. Так же выснил что юзается - cbc. Пикрил №1 вроде как возврщает ответ, байты, но при попытке их декодировать получается ебучая каша.
Вопрос анону - куда бежать/что делать? Я так понимаю, что при неправильном ключе дешифрация не прошла бы вообще, а тут проходит но получаю говно.
>>1743507 >>1743512 Короче там пезда и отсутствие нормальной совместимости. Пришел к выводу что проще локально выполнить кусок ЖС кода и через него дешифровать данные. Спасибо, антош, за помощь.
Я не могу понять, смысл этих утверждения. Например если бы переменная username имела аргумент, было бы понятно. while username <= 1, или что-то в таком духе.
а так, while username ЧТО?
Объясните пожалуйста, как для умственно отсталого.
>>1743319 >серверлесс БД А это ещё что за зверь? Могу предположить разве что "managed"-решения, т.е. когда тебе твой "облачный" провайдер продаёт доступ к настроенной базе, а не машину на которую эту базу ещё нужно поставить.
Я вообще слабо понимаю значения словечек вроде "ОБЛАЧНЫЙ" и "СЕРВЕРЛЕСС". VPS - это уже сразу СЕРВЕРЛЕСС или только ОБЛАЧНО? А докер и k8s (в которых нужно нихуёво ебаться с сетью и прочими очень "серверными"/"сисадминскими" вещами)?
>>1743551 Спасибо за ответ. Изначальная моя переменная имеет следующий вид username="" это false, потому как "" в списке false по дефолту. Следовательно выражение: while username: буквально означает запуск и работу цикла, до тех пор, пока переменная возвращает false а выражение: while not username: до тех пор, пока переменная возвращает true. Как только, например через input, переменная получает хоть один символ, цикл начинает выполнять следующие выражения. Правильно?
Хм, как при подключении через ssh держать несколько инстанцов терминала? Поясню таки: обычно при разработке в том же джанго на моей машине у меня было разом включено 4-5 сессий с терминалом: в одном работает manage.py runserver, в другом воркер celery, в третьем redis-server, в четвертом я в manage.py shell копаюсь, а пятый для общей разработки и curl-ов. Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву?
>>1743659 >Как такое мутить при подключении к хостингу?.. мне 5 раз из разных терминалов приконнектиться через ssh к серву? А нахуя тебе такое делать на хостинге, ты же понимаешь, что как только ты закроешь 1 терминал у тебя все ебнется, а держать их открытыми постоянно - хуета
Поцаны. Послушайте. А что если. А что если я буду vdom рендерить на пистоне? Это нормально же, да? Ничего такого страшного, да? А еще, есть какие-нибудь фреймворки вроде blazor?
>>1744302 Именно эта __хуита__ мне и нужна для того чтобы вывести данные в файл с таким же именем каково имя объекта. Я понимаю что на один и тот же объект могут ссылаться несколько имён. Однако моей проблемы это понимание не решает.
>>1744328 честно говоря мы не понимаем хули тебе надо, напиши плз код как это должно работать
потому что __huita__ существует только для классов, функций и модулей и называется __name__, у экземпляров классов такой штуки нет разве что obj.__class__.__name__
>>1744403 в путинской россии один провайдер - ростелеком и он не дропает. Никому не нужны тупые проблемы из-за обрывающихся соединений. Это всегда клиентская проблема.
>>1744437 >Генерируй через UUID уникальное, хули. Хоть через timestamp. Я мимочел, изначальный вопрос анона был именно в имени переменной насколько я понял, а не класса. >А как ты без repr сделаешь call к нужному методу? Тут хуйню сказал, соглашусь, имел в виду что логичнее обращаться к str()
>>1744441 ну так купи услуги у тех у кого не глючит. последний раз я пинг в ssh настраивал 10 лет назад, потому что в очередной прошивке dir-300 решили экономить память при раздаче торентов.
>>1744408 Провайдеров много. Большинство дропает. И на хостингах дропают.
Как минимум сейчас норма, что многие подключены не напрямую, а через роутер или NAT провайдера. У МГТС так, у мобильных операторов.
Они по-определению дропают. Потому что NAT не может забивать себе адресную таблицу слишком большим количеством путей.
Такие же проблемы есть и у хостеров. У них есть какая-то защита сессионного уровня и они дропают мёртвые соединения, по которым давно не шёл трафик.
Решение есть, опция -o ServerAliveInterval=10 эта опция говорил, чтобы ssh каждые 10 секунд посылал keep-alieve пакет, если нет трафика. Можно прописать в конфиг и не думать после этого.
Сперва была 50к, сейчас подняли до 80к, самое смешное что как подняли то стали поступать другие предложения, вот сейчас в процессе прохождения собеседования в другую контору там 100к обещали. Не ДС и не ДС 2, но миллионик.
>>1744494 Да пусть настроит. Но он должен знать, что дропают только обоссанные хохлятские хостинги. ОС посылает этот "пинг" без участия приложения с интервалом 45-60 секунд
Двач, выручай С помощью opencv удалось вывести картинку экрана в окно. Теперь стоит задача определить, находится ли конкретная картинка на экране. Пробовал через cv2.matchTemplate, но он дает сравнивать только 2 картинки. А нужно, что в реальном времени считывалось через запись экрана. Ниже код, через который записываю экран. Умоляю, помогите. В пайтоне полный ноль, уже несколько дней бьюсь, гугл не помогает.
>>1744076 >мышкой >ssh Это само по себе прикольно, но да хуй с ним, вероятно ты подразумевал немного иное (но все равно сказал хуйню) Суть в запуске даймонов: редиса, celery и т.п. удачи сделать это "просто открыв 5 терминалов"
>>1745305 буду говорить про бекенд и как часто он используется в задачах написания веб-апи. Про то как там в анализе данных не знаю. Во всяких задачах для собеседований и прочих leetcode'ах эти функции используются довольно часто.
>map берет функцию f и какой-нибудь итерируемый объект список. Для каждого элемента из списка делает f(x) и возвращает соответственно список этих f(x)
используется не часто, обычно использует list comprehension, типа (f(x) for x in my_list)
>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. В принципе использовать их стоит если они сокращают код и делают его понятнее. Фильтры в фильтрах делать не стоит
>Либо я говнокодер, хз короче читай переодически этот тред, чтобы самоутверждаться на местных довенах
>>1745305 map и filter используются нечасто, есть более актуальные генераторные выражения и компрехеншены. А zip полезная штука, много где не обойтись.
Есть проект на Djano, в котором иногда нужно делать запрос к стороннему API. Как повторять запрос если истек таймаут заданное количество раз? Желательно, с примером кода.
Смотрю чувака, он ставит gunicorn. Я запустил свой гуникорн обычной командой gunicorn --bind 0.0.0.0:8001 project.wsgi и все работало, этот же петух написал .sh скрипт для запуска гуникорна, и в скрипте есть строка: env/bin/postactivate на этой строке скрипт крашится когда его запускаю я, потому что внезапно такого файла нет. Проверил - и правда нет. Что еще блять за postactivate? Знаю bin/activate - через него виртуальная среда активируется, а это что за говно? В инете пояснений хуй да нихуя (ОС: Дебиан 9, что у меня что у него)
>>1745305 Уже написали, zip иногда полезная штука, map, filter ближе к тому что рудименты, во втором питоне активнее ими пользовались, сколько помню, они там иначе вызывались.
map-filter вносили как инструменты из функционального программирования, чтобы был мультипарадигмовый язык.
Однако то, как они поддержаны в третьем питоне, лишает их смысла. Для того, чтобы смысл был, надо, чтобы был механизм объединения в цепочки, условно result = filter(func, source).map(func2).filter(func2) и т.п., но ничего и близкого нет.
Смысл теряется. При этом на выходе ты получаешь специфичные объекты, с которыми надо что-то делать.
А просто filter-map можно заменить не менее наглядными генераторами списков-словарей, ключевой фишкой питона, которой не в большинстве других языков.
Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи.
>>1745542 >Уже тоже написали, смотри на itertools и functools. Там есть очень прикладные вещи. Из дополнительных библиотек еще есть more_itertools. Очень годная вещь.
Написал вот такое, что бы проверить как это работает a=1 while a: a=input("...") else: input("exit") Если ввести цифру, интерпритатор вновь и вновь будет выполнять цикл, потому что переменная True. Если ничего не вводить, переменная получит аргумент в виде пустой строки, что для bool является False по дефолту. Однако при вводе значения 0, цикл продолжает выполняться. Почему? Ведь 0 это тоже по дефолту False. Я пробовал делать так: a=int(1) Но это ничего не изменило. Подскажите пожалуйста.
Я только в самом начале изучения, нихера ещё не понимаю. Спиздил код, а питон ругается на синтаксис в строчке с 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
>>1745620 в библиотеке нет этого параметра. Это параметр, который отправляется сайту. Тело запроса такое >data – (optional) Dictionary, list of tuples, bytes, or file-like object to send in the body of the Request.
>>1745590 Потому что стоит брать адекватное булевое значение, не? Тем более input выдает строку, надо указывать конкретный тип который хочешь получить. in = input('...') If isinstance(in, int) and int(in) > 0: a = True else: a = False break # прерываем цикл, неосилятор ты ебаный
>>1745592 Потом сниппет скину. Есть список словарей с одинаковыми ключами [{'a': 1, 'b':[]},...]. Надо их свести к виду {'a':[b...b(n)] и отсортировать по датам данные в списках (тоже словари) Там itertools.groupby. В postgres можно было бы ещё в базе это сделать, но mysql ебаная параша
>>1741714 (OP) Есть сервис на питоне, который должен вытягивать инфу запросами и отправлять в ответ дургие запрросы, плюс нужна бд. Как это всё лучше запилить?
>>1745651 Кароче пишу бота для вк, надо запрашивать лонгполами инфу по чейнджам, а потом делать по ним POST запросы разной степени упоротости. И при этом должна быть бд куда сваливать данные.
>>1745653 БД аналитическая нужна или просто временные данные? PostgreSQL, MySQL, MySQL для хранения на ФС. Clickhouse для аналитики Redis NoSQL в память.
Ну вообще API с примерами и я хуй знает что тебе ещё подсказать. Для HTTP запросов requests, aiohttp
>>1745659 Спасибо, а что по мультитредингу? Сейчас это сделано так: есть тред с запросами к бд, который делает запросы и складывает их в очередь. В другом потоке мы ждём когда нам что-то упадёт и обрабатываем. Хотелось бы ещё более асинхронно всё это делать. Что можешь подсказать? Есть какие-то штуки для этого? >>1745658 Да.
>>1745663 Мультитред -> GIL, учти. Process1 -> Queue -> Process2. Есть ZeroMQ для этих целей, RabbitMQ оверкилл, хочешь на нативных инструментах сделай. Process это прирост на линуксе овердохуя, про шинду забудь. Вчера пробовал Process fork на линупсе с uvloop внутри, 13 мб памяти футпринт, а spawn 36. Ебал я в рот весь Редмонд.
>>1745663 А ну и мультитред уже неактуален, только для run_in_executor() для asyncio. Тред банально быстрее запускать чем процесс. Ну и доступ сразу к namespace и globals будет(нет). Чисто сделать и закрыть. А Process на постоянку. И так как у тебя I/O только, но ты хочешь слушать постоянно и писать без блокирования, то разделяй так. В БД пишешь с асинхронной либой через connection pool. Сразу держит соединения для быстрого обращения к БД. Но э. то нагрузка на сервер БД сразу. Так что решай сам. Пул для concurrency берут, но я сразу его использую. Проще въебать asyncio.gather(*tasks) где каждый таск это выполнение процедуры БД. ORM медленное дерьмо, prepared statement это говнокод. А так передаешь аргументы и похуй. В самой.процедуре проще код поменять и отладить заранее.
Я набил шишки на этом, но другие могут быть со мной не согласны. Каждый по-своему прав. Ищи что тебе удобнее и даёт нужный результат.
>>1745671 Если совсем тумдум и нихера не выйдет скину готовые шаблоны Процесса с uvloop внутри и graceful shutdown через signal(SIGKILL, SIGTERM) и готовый aiomysql connector с tenacity retry. Для того чтобы повторять запросы если база легла и автоматически поднимать pool. Т.е. переживает перезапуск сервера и не уходит в exception или unclean exit code. Пушто собирать и отменять корутины внутри процессов та ещё ебля. Но лучше чем запускать 100500 файлов пихона описанные в my_pihon.sh или 100500 unit service.
>>1745716 В курсе что уже многие книги тупо протухли и надо сразу идти читать документацию и лезть в код модуля, чтобы знать где метод или параметр стал deprecated? Питон это вам не жава.
>>1743270 >Нахер нужен мультитрединг, если там все равно GIL тру асинхронности не дает, а накладных расходов больше? Разные задачи, разные плюсы и минусы. И мультитрединг с асинхронностью разные вещи
>>1743270 1.Накладные расходы на мультитрединг сильно преувеличины. 2. GIL ОТПУСКАЕТСЯ при вызове кода на С или системных вызовов. Поэтому ты можешь спокойно писать многопоточный традиционный сетевой сервис . И даже на pandas какие-то ебнутые обсчеты делать мультитредно.
Несколько раз пробовал вкатиться. И в питон, и в джаву, и в джаваскрипт, чего только не перепробовал. Отвращение наступает на моменте решения задач типа спам+бекон, и прочая подзалупия. После них весь энтузиазм как отрезает. Сегодня решил автоматизировать на работе один рутинный процесс. Написал скрипт на питоне, и когда он заработал, и скучная хуйня, на которую я тратил свою жизнь, была решена за пару секунд - почувствовал себя первооткрывателем. Чистая эйфория. Потом решил автоматизировать другой процесс, и тут уже наступил затык. Есть конфиг в текстовом файле, в нем есть определенные строчки, в которые нужно внести изменения. Сперва через инпут последовательно вводятся нужные данные айпи, маска, шлюз, имя хоста и потом как-то бы надо эти данные подставить в конфиг, но я застопорился и рабочий день закончился. Но вообще, ощущения - атас. Когда прогаешь реальные задачи - это не идёт ни в какое сравнение.
>>1746211 Когда уже перечитал весь SO, github issues, всевозможные блоги и нашел крупицы того, что поможет с решением, НО в итоге реализовал свое вот это охуенно, а когда оно еще и в production работает... уууу прям радугой кончаешь.
Котаны, шо за хуйня творится в в вкансиях? из 100 штук только в одной требование работы с asyncio. Все еще пилят на Django всякую хуетень и пользуются ORM(который еще больше замедляет работу).
Как жить-то? Либу asyncio развивают во всю, куча либ с поддержкой asyncio и 3.8. Uvloop везде, а все ебутся со стеком Django-Celery(Redis, RabbitMQ). Н-А-Х-У-Я?
>>1744824 деление нацело полезно в бесконечных циклах где число обязательно должно быть целым, чтобы в этом бесконечном цикле не вызывать функцию int , потому что int работает сильно медленнее чем //
Ставлю серв через nginx и гуникорн Вроде спустя n часов все заработало. Поставил в setting.py DEBUG=False так при загрузке страницы nginx выбрасывает 403 error на static файлы, а медиа (картинки) вообще не подгружаются. Что за прикол? Я всего-то убрал дебаг-мод, с ним все работает и никаких 403
Побыстренькому набросал необходимое и запустил compile.py, как сказано в инструкции. И тут выводит ошибку: >from Utilities import compile_module >ModuleNotFoundError: No module named 'Utilities' (Структура папок в прикрепленном изображении) Хотя, если в файле писать тот же from он спокойно предлагает Utilities
Вроде итак подступался и сяк, решил установить pycharm, шоб было прям как в инструкции. И оно заработало.
Я даже хз в чем проблема была. Предполагаю, что из-за настроек в папки .idea.
Собсно, может кто пояснить почему так происходит, и как это исправить, чтобы в VSCode все нормально работало?
я предполагаю, что я не знаю чего-то прям простого, и прошу вас сказать в чем проблема или же, в какую сторону копать
>>1746429 ну просто надо знать об этом, у меня например в игрушке на pygame есть main loop, и там происходит деление координаты на число чтоб получить новую координату, координата не может быть не целочисленная иначе краш ( не бывает полтора пикселя), в мейн лупе все время вызывать int это хуйня а вот // збс
Для того чтобы пользоваться директориями не принадлежащими к данному проекту, но при этом там заведомо нужные для работы модули или просто файлы, то прописываешь PYTHONPATH=/dir/modules_dir
>>1746737 бля ты бы хоть описал что это за кусок и откуда ты его взял. Зачем тебе разбираться, что ты от этого куска хочешь
выглядит это либо как кусок калькулятора либо как часть какого-то парсера
какая-то строка бьется на токены а потом собирается в ноды. Каждая нода мб своего типа в зависимости от того что было в строке. Потом это говно попадает в какую-то функцию которая проходит по всем нодам и вызывает у каждой compute
это называется полиморфизм и применение ISP
вообще чем понятнее задашь вопрос тем точнее и лучше будет ответ
>>1746771 >Да я долбоеб, и что то что программирование не твое иди мой туалеты
>Я блядь конкретно спрашиваю нахуя в данном коде .compute() предоставляет интерфейс чтобы в другом месте с экземлярами sub mul truediv mod pow можно было работать не вдаваясь в подробности что это конкретно за реализация Node.
>что оно делает. соответстввенно в add compute складывает, в mul умножает и так далее
Сап, Анон. Подскажи библиотеку, для создания полей с графиками, где можно с помощью органов управления менять различные коэфициенты и в реальном времени будут меняться графики.
Подумал что в моей джанго-приложухе будет неплохо сделать возможность двойственной работы: одна и та же вьюха будет по-разному реагировать на запросы анонимов и на запросы зареганных юзеров: зареганных юзеров будут обсуживать по данным из бд, а анонимов - по кукам. Как без ветвящихся if-ов это сделать?
>>1746516 В Питоне? Зачем? Статику должен nginx отправлять, так везде и советуют Вот конфиг: https://pastebin.com/25Z6EP7N По инету ходит инфа, что дело в недостаточных правах для групп юзеров... Хер знает, буду смотреть
>>1747281 Добавили дополнительную сущность - сервер приложений, который связывает твой прикладной код с веб-сервером. Веб-сервер обслуживает клиентов и передает динамические запросы серверу приложений. Сам по себе он тоже может выступать сервером, но особых нагрузок держать не сможет, т.к. такой задачи нет.
Возможно не по теме, какую вилку по зп адекватно просить в ДС. Вводные данные: изучаю питон 2.5 года, 1.5 коммерческой разработки, писал в основном проекты джанго + дрф, были мини проекты на фласке, fastapi, aiohttp, разные парсеры + selenium, юзал постгрес, кролика и сельдерей на проектах. Могу немного в докер, CI/CD, девопс - настраивал на проектах авто сборку и прогон тестов + стат. анализ кода. Писал для себя на реакте, еще немного на С этот код работает в проде. Честно говоря считаю себя джуном, так как по сути все это делал один.
>>1747305 Осенью буду искать, если пиздеца с короной не будет. Сейчас есть работа за 90к, в августе буду отдыхать, а потом закрывать пробелы в знаниях.
>>1747276 Короче помогло 2 часа танцев с бубнами и: добавление моего юзера в группу www-data, рекурсивное изменение правил chmod для папок проекта и папок nginx, рекурсивное изменение владельцев chown тех же директорий как я ебал эти пердолли сука...
>>1747527 Это потоковый парсер, ты заебешься им извлекать конкретные элементы с условиями. Надо держать стейт и ручками всем управлять, ориентируясь по этим ивентам. Он подходит или для всяких сложных дел типа создания dom, или совсем простенького типа извлечь все ссылки или картинки.
Почему при попытке проиндексировать срез в обратном порядке, на экран выводиться пустота? Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?
>>1747701 Что то я туплю и пишу ерунду. Вопросы из №1747686 для меня всё ещё актуальны. При попытке для слова "пицца" задать диапазон от -5 до -1 на экран выдаёт пицц. Последнюю букву таким способом я вывести не могу. Разве что изначально задать вместо "пицца", строку "пицца "
>>1747699 -5 и -1 это просто оффсеты считая с конца, они не задают порядок, это делает третий опциональный параметр. Например. In [24]: 'govno'[2::-1] Out[24]: 'vog'
>>1747686 > Почему при попытке на запрос аргумента для переменной start через input просто нажать Enter, цикл прекращает работу?
По твоему коду не понятно, тк при копировании на двач у тебя пропали отступы в условии, и я не знаю, что у тебя находится в блоке if, а что нет. Если у тебя в условии только строка start = int(start), то в случае пустой строки в start, у тебя происходит извлечение среза, где одна из границ None. Выполни скрипт из консоли, а не дабл кликом, да посмотри ошибку.
Сап, аноны нужна помощь ибо ньюфаг не понимает. Собственно есть задача: есть произвольный список 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)
>>1747743 Вот скрин с этим кодом. Его даже не я написал, я изучал его по книге, из которой и скопировал. Если ничего не вводить и нажать Enter, програма переходит к последней строке.
>>1748042 >l.split() И шо это должно по-твоему делать?
>if l[0] И это в цикле?
У тебя ж наверняка Exception-ы вылезают, прочитай что они тебе пишут. И логирование сделай, для начала функцией print, такие траблы как у тебя решаются логами и не засоряют лишний раз инфополе
>>1748187 >>1747308 пиздос вы тут все успешные, и вопросы стали интереснее задавать, прям не узнать пистон-тред... вот бы хоть нак какую-нибудь работу вкатиться...
Помогите тупому. Есть два списка. В одном время точеное, в Int'aх, в другом значение функции дрочёное в float'ах. Как в матплотлибе построить обычный 2д график по этим двум спискам? Всё прогуглил, всё не то.
Вопрос следующего плана, я не имею понятия как дела обстоят в иных случаях, но знаю что некоторые эксплоиты выполняют в памяти уязвимого приложения шеллкод.
Меня интересует может ли что-то подобное делать пайтон на винде. Парочку примеров я видел, но они для UNIX систем, в общем мне интересен просто рабочий пример.
Другой вопрос не особо касается питона, но все-же вдруг кто знает. Например написал я программу на Си, которая выводит Hello world. Как мне из декомпилированной программы получить собственно сам сырой код, чтобы его потом разместить в памяти и выполнить ?
Сразу скажу, я не мамин хакир, меня интересует сам процесс, хочу попытаться реализовать одну идею которая давно в голове сидит пердит.
>>1749558 учишь класический мл, и соответствующие либы - нумпай, пандас, склерн. Потом можно учить дип лернинг это соответстннно пай торч или тензерфлоу, лучше пайторч
Я ебал этот пердолинг. Мне просто нужно построить сраный 2д график в сраном streamlit'e. Пример из документации не работает. нужно гуглить как узнавать версию какой-то ебени и как-то даунгрейдить. Пиздец мне в анус.
Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина? А то хочу сменить место работы, но кажется, что я уже близок к потолку с 200к и нужно подтягивать англюсик хотя бы до уровня индуса
>>1749837 >Получить оффер на 250-300к живя в россиюшке и кодя на пистоне можно только работая на западного барина? Такие зарплаты только у кабанчиков. Западный барин платит не больше, чем крупные российские компании в ДС.
>>1749857 Знакомый 420к получает, просто удобно устроился. Фирма на 200 человек, из них 120 - инженеры теплоэнергетики. А он один стал систадмином на всю контору.
>>1749857 У меня знакомый работает на русскоязычную контору из проебалтики, которая 2.5к евро платит. Смотрел вакухи на удаленку на швятых, там в 1.5 раза больше средние
Есть знатоки aiohttp? Как забахать роутинг для следующих урлов: /abs /abs/{blabla}
В джанго ебнул решулярку на конец строки, и готово. Тут какая то дикаяч смесь, и не регулярка, но и не строка. Есть прям так и бахать, как у меня, то ругается, что уже есть роут для /abs. Пробовал в первом случае добавить симовол конца строки (r'^/abs$') - не рабаотает
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
# Нормализуем сигналы от 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)
# Нормализуем сигналы от 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))
>>1747305 Рейт ми, анон. Не троллю, просто сто лет по собесам не ходил, а щас на вольном плавании. Думаю, сколько просить. 13 лет разработки, 9 из них в яндексе. В основном пишу на питонах, но довольно неплохо умею и в сишку. Остальное по мелочи: хайлоад, асинхронность, распределенные системы, докеры-хуекеры, немношк встраиваемые системы и контроллеры. JS/HTML умею, но в гробу видал.
Писец, пацаны, django миграции в одном проекте в последнее время через пизду работают. Только хочу добавить какое-то поле в модель даже CharField так при makemigrations всплывает ProgrammingError и пишется что-то типа (mymodel_newfield does not exist) епт, ну канешн оно does not exist, я ж только что добавил его, клован! Я знаю как это фиксить, но все равно дико бесит, в последнее время пишу исключительно ручные миграции
Ребят, а как ставить расширения которых нет в 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 гб. Поменьше нельзя что-то качнуть? У меня просто на ноутбуке места мало осталось.
Посоны,нашел 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)
У меня в джанго есть набор статей, который посредствам пагинации (по 10 штук на страницу) передается в template. Как отрендерить его так, чтобы статьи шли сверху вниз парами на каждой строке? Есть цикл {% for entry in entry_list %} и я с помощью него могу засовывать статейки в заранее подготовленные html теги, а как блин их рассовать чтоб они шли по двое?..
Ребята, вот у меня в Airflow висит только один граф с дейли выполнением, а шедулер целый день каждую секунду ведет какой-то ебанутый бесполезный лог, который по 100мб на каждый день раздувается, это норм вообще?
Двач, умоляю, помоги! Короче, нужно сделать кнопку, при нажатии на которую скрипт останавливается. Огромное кол-во циклов при работе. работа в стороннем приложении, так что горячими клавишами не обойтись Саму кнопку сделал, но вообще хуй помни какая функция нужна для btn.bind. Код кнопки ниже.
try: from tkinter import except: from Tkinter import
есть цикл которым я постоянно слушаю сервер, в бд sqlite записываю ответ, нужно связать это всё с pyqt, как мне грамотно связать это всё? наверно не разумно будет поток создать, а асинхронную функцию запилить?
>>1750193 Да, кажется там сразу тянет пакеты для работы с шиндой и компилятор vs (для сборок wrappers). Винда самая хуевая платформа. Накати WSL2 и радуйся.
анонсы, был сегодня на ссобесе и были вопросы по хеш функциям. спросили че это и нахуя оно надо. ну сказал что используется в криптографии для защиты какой либо информации. в нашей области зачастую для скрытия паролей шел на вебмакаку на джанго после этого сказали окей хорошо. и затем спросили "как можно определить что можно хешировать, а что нет?" и после этого я просто впал в нереальный ступор на полминуты и в итоге промолчал. в итоге услышал заветное "мы вам перезвоним". так вот, подскажите пжалста ответ на этот вопрос
>>1750614 Паттерны братиш. Я сам в это вляпался. Начал рефакторить и заплакал. Ещё раз посмотри принципы ООП в Пихоне и дуй на http://www.refactoring.guru там сразу примеры есть. Тяжело для понимания, но хули делать
>>1750684 >>1750693 Подозреваю, что вопрос был о хешируемости в питоне, т.е. мутабельные/иммутабельные объекты. Каким-боком тут хеширование в широком смысле вообще хуй знает.
>>1750684 > были вопросы по хеш функциям. спросили че это и нахуя оно надо Ебать, чтобы хэшировать инфу, составлять уникальные значения для данных. Очень классно использовать в бд, особенно если хэш алгоритм лёгкий. > как можно определить что можно хешировать, а что нет? Хэшировать можно всё нахуй, хоть небо, хоть аллаха, хоть сам питон и эйчара.
Хеширование не может гарантировать уникальность, даже для длинных криптографических хешей, но там вероятность коллизий исключительно мала.
Хеширование в теории алгоритмов нужно для того, чтобы иметь возможность быстро искать сложные объекты, удобно их хранить. Ты работаешь не с объектами напрямую, а в паре хеш-адрес объекта.
Слёту про hash() в питоне без подсказок, вот если бы меня сейчас спросили, я бы адекватно не рассказал, мне проще там про устройство словарей и списков что-то сказать. Пересказывать доку не буду. Есть ощущение, что помнить это не надо, на практике вряд ли пригодится.
>>1750706 Вопрос кстати по хешам: почему в питонухе не хешируются (а следовательно не могут и быть ключами в словаре) изменяемые объекты? Ну изменится хеш при изменении самого объекта, дальше-то что? В чем изъян?
>>1750759 Неизменяемые объекты в питоне хранятся в виде объекта и счётчика ссылок. Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект.
А вот два одинаковых по значению изменяемых объекта - это два разных объекта.
Из-за этого и идут все ограничения. Если ты обращаешься по ключу, то просто логика здорового кода подразумевает, что ты ищешь что-то по значению, а не по ссылке.
Если объект, используемый в качестве ключа изменяемый, то тебе необходимо во-первых поддержать поиск по значению, поддержать функцию сравнения, и во-вторых реализовать механизм изменения хешей и т.п. в случае, если объект-ключ изменился. Всё это очень сложно сделать, накладно по ресурсам и много исключительных ситуаций. Поэтому и не нужно.
>>1750769 >Два одинаковых по значению неизменяемых объекта - это на самом деле всегда один объект Хочешь фокус? Напиши в консоли: a = 1 b = 1 print(a is b) x = 100500 y = 100500 print(x is y)
>>1750759 Может хешмапа строится во время создания/изменения дикта/сета и при изменении самого объекта ты не сможешь получить к нему доступ, если в качестве ключа укажешь новое значение? хотя по такой логике по старому оно должно быть доступно?
>>1750777 Пизда, хотел я проверить до какого порога они забиты, написал скрипт, а CPython Опять мне тапком по лицу провел. Скрипт через exec внезапно не робит: https://www.ideone.com/4X8m7g
Поясните за pyinstaller. Если у меня проект в виртуальном окружении, то инсталлер получается соберет в экзешник все что находится внутри папки виртуального окружения?
Работаю системным аналитиком, шарю в БД. На работу обяъвили сокращение через 3 месяца, хочу вкатиться в питон,чтобы быть системным аналитиком со знанием питона или пойти джуном кодить. За 3 месяца по 2 часа в день можно ли натаскаться, чтобы пройти собеседование кодером, а там повышать квалификацию параллельно на работе?
>>1750757 Да верно всё, ты всё то же самое говоришь, просто другими словам. На практике хэши довольно часто нужны. Иногда бывает проще хэши сравнивать, чем строки/данные, если нужно сравнить и похуй на иллюзорную неточность.
>>1750691 >>1750693 >>1750697 ну в общем его юзают для криптографии и для ускорения работы самой программы, при том хешить можно только неизмениемые типы данных. я все правильно понял? кункоторыйзадалвопрос
Анон я тупой объясни мне пожалуйста кое-что. В лутце написано что объекты в пистоне хранят "счетчик" ссылок на этот объект. Я так понял это некий атрибут, но как его получить? Например есть объект: int(228) Какое название атрибутаили метода, я так до конца и не разобрался после точки нужно указать чтобы вернуть количество ссылок на объект? Я знаю про sys.getrefcount(), но не понимаю откуда берется это значение
>>1750781 Тот же самый скрипт но в консоле (не в виде функции) работает ответ кстати 257 Че это блэт? Связано с пространством local? Или просто очередная "магия" пистона?
>>1750987 Не удивлюсь что если это тот же чел, который недавно хвалился "айти вышкой" и утверждал что он"шарит в бд", но при этом сама концепция переноса Postgres на сторонний сервер вместо localhost взорвала ему мозг (ну они же проводами не соединены!1 как так-то??)
>>1750990 >это внутренняя хуйня Понятно, я так понял вернуть названия всех переменных ссылающихся на объект тоже не получится? >>1750993 >И ты все верно делаешь что делаю? я же вроде нихуя не сделал...
>>1750675 Спасибо, анон, работает как часы. Только пиздец, теперь когда вставляю кнопку в основной код он ее создает и дальше код не обрабатывает. Ждет пока я на нее нажму и все сломаю.
>>1750992 "Шарить в БД" это ни о чем. Я вот научился клепать говеные таблицы и создавать процедуры. Нашел бутылочное горлышко в этой хуйне (и знатно на него присел), теперь ищу книгу чтобы вновь не обсираться с индексацией и перекатиться на peewee. Жду как ману небесную Tortoise. Пилят Django style на uvloop. Пока нет нихуя, миграция в 1.0, ,а выкачена 0.18, лол. Скорее всего буду делать PR clickhouse-infi с переходом на aiohttp. Тоже ORM. Если тут анонасы подскочат буду рад. Пихон удобный, вот тебе словарь из данных выгруженные из БД, а вот ты обсираешься с ключом. Вот теперь я переобуваюсь, так как топил за процедуры в SQL, но заебался их поддерживать. Вышка ровным счётом это поджопник. Мне до Джуна ещё минимум два года, так как пиздец какие поверхностные знания. Пока в продакшене не будет ещё 3 проекта, считай и не ходил нихуя. Поделки на гитхабе (есть желание для себя сделать автозагрузки ongoing сериалов с торрента) я считаю даже при устройстве на галеру стыдно будет показывать.
>>1751009 Ну а что можно такого взять? Потом же аналитику надо проводить. SQL запросы учатся за минут 40, потом уже по методикам развиваешь их. А с NoSQL? Вход сложнее априори.
>>1751021 > Вход сложнее априори. Да никто не говорил что просто будет. Но для джуна и sql хватит, да, нормально вообще. Кэширование нахуярить и сидишь пердишь.
>>1751030 Я про то, что другие будут лезть в БД, и им NoSQL будет непонятен. Когда сам архитектуру пишешь, то похуй..используешь что удобнее тебе. А потом твой код превращается в легаси
>>1750987 ну так цифорки же быстрее сравнивать например чем строки. разве нет? шел на джанго веб девелопера >>1750992 не, это простыня-кун который писал сюда в марте. и у меня не айти вышка всего лишь атомная энергетика алсо, есть какая годная литература по поводу этого? чтобы в книжках читануть. сам читал только укус питона, и только в том сентябре
>>1751118 Ты дурак или да? Какие нахер книги. Пиздуй доку по Джанге читай и тыкай готовые примеры. Совсем уже мозги пропили. АйТи это книга для пинка под зад + документация. Так как библиотеки постоянно меняются. В шапку этот аргумент вставьте, заебали такие тупые вопросы. Что читать, блять. Сукалол
>>1751376 По-моему, он читает код и оттуда достает что добавить. Если они у тебя задействуются косвенно, то можешь попробовать добавить явно, чтобы он подхватил.
>>1751417 Нахрена ты вообще собираешь экзешник? Хочешь экзешники пиздуй С++ учить или С#. С шиндой никакой интеграции считай и нет, все через жопу. Python это только Linux (Docker Image как вариант), даже в MacOS натворили хуйни.
Есть какие-нибудь книги или курсы с большим количеством упражнений и всяких практических заданий? Я не понимаю, как можно учить по одним мануалам, мне надо какие-то задания решать, желательно с объяснениями. Скачал курс по питону от специалиста, так там одна теория, практические задания какие-то есть, но записей нет. Да и задания какие-то по теории вероятности, которые для новичка нахер не нужны.
>>1751536 >Traceback (most recent call last): > File "/dev/fd/63", line 5, in <module> >ImportError: No module named request Видимо ему библиотека твоя не нравится. А нельзя просто брать этот параметр из сетевого интерфейса? Айпи белый.
И еще, можно ли задать вывод другим цветом? В терминале нужно, чтобы цвет другой был у выводимой строчки
>>1751562 Второй питон штоле? Про интерфейс хз есть ли универсальный метод. Если есть команда, выдающая его, то можно выполнить и забрать вывод. Цвет можно задать через анси-коды, надо смотреть.
>>1751568 Я не знаю, стандартно что стоит на впске с убунтой после всех апгрейдов. >Python 2.7.17 (default, Apr 15 2020, 17:20:14) >[GCC 7.5.0] on linux2
>>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.
>>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.
>>1751613>>1751603>>1751598>>1751595 Ахахах. Анон, я что-то тупой. Я не знал, что команда для Питона3 так и называется Питон3. До меня дошло, когда увидел, что Питон2 уже очень устарел.
>>1751616 Ну примерно так. print('\033[91m' + 'huita' + '\033[0m') Первое задает красный цвет, второе сбрасывает. Коды эти можешь погуглить по ansi escape sequence.
Привет, мне нужно реализовать создание объекта двумя разными способами Например: > obj = Zazaza(some_dict) > obj = Zazaza(some_list1, some_int)
По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный
Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
Мужики, сильно не ругайтесь, я зеленый и вообще мимо проходил, однако осмелюсь задать вопрос Пытаюсь составить прикладную програмку лично для себя через PyQt5, чтобы исполнять написанный мною скрипт. Собственно GUI я сделал, осталось назначить функции кнопкам, но возникла внезапная проблема, решение которой я не могу найти: как передавать в исполняемую функцию необходимые переменные при нажатии кнопки? Это делается через глобальные переменные или есть какой-то более нормальный способ? Собственно, вот примерно то, чего бы я хотел: > self.su_show_button.clicked.connect(self.OpenDF(path)) но оно не работает
Этой ночью продолжаю тупить в asunc Есть код - пикрил. Читаю из файла некую инфу. Return вроде как лишний. Как првильно прочесть данные асинхронно и положить в файл? А метод чтения из файла нужно ведь помечать как async? У меня что то тоявляется желание везде писать async\await, теорию читаешь, вроде все понятно, а на практике хуета выходит.
>>1751643 Ты сразу и вызвал метод, он прочел что то там, и вернул результат, который пытвается вызваться при каждом клике, что то в этом духе. Тебе надо саму функцию передать, а нее результат ее вызова
>>1751664 Синтаксический сахар для методов класса, эквивалентен передаче в функцию первым аргументом объекта. Т.е. по сути это вот так obj.func(...) func(obj, ...)
>>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 Как это исправить чтобы всё работало?
>>1751634 ПАМАГИТЕ, ПРОШУ Привет, мне нужно реализовать создание объекта двумя разными способами Например: > obj = Zazaza(some_dict) > obj = Zazaza(some_list1, some_int)
По идее я могу просто в __init__() прописать проверку колличества аргумента и их типа и в зависимости от этого уже управлять созданием объекта НО инит раздувается неприлично, а он у меня и так жЫрный
Но это на мой вкус КАК-ТО ГРЯЗНО, есть ли более красивый способ это как-то сделать?
init(a:Union[dict, List], b:Optional[int] = None): self.a = a self.b = b А в методе уже проверка. Если b передан используй переменную, иначе нахер. Enjoy dynamic types
>>1751737 Да, охуенный в питоне полиморфизм - просто во все поля, куда деваться.
То есть я теперь должен сперва в инит принимать неограниченное число безымянных аргументов, затем проверять их тип и колличество. Затем выдавать им имена для использования внутри инит.
>>1751652 Вроде правильно все на пике. >А метод чтения из файла нужно ведь помечать как async? Если в теле метода есть await ты помечаешь его как async или сосешь
В некоторых вакансиях видел flask хотя думал что на него почти всем похер Аноны, у меня выйдет спиздеть что я знаю фласк если до этого занимался джангой 4 месяца, а потом по-быстрому подучить его?
Как заставить класс исполнять действия в зависимости от состояния? У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них
Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")?
>>1741714 (OP) Какие еще есть стулья кроме django и flask для веб бэкенда? Мне асинхронные вьюхи нужны и асинхронный read из БД, а те 2 залупы - синхронные
Доброго дня, славяне. Вкатился душить питона с нуля на нубо-уровне. Однако выбрал по глупости не тот путь. Не туда воюю, кароч. Взял курс Python-разработчик от скиллботоксов. Их обещалкам с работой не верю, сам уже работаю сисадмином на бюджете в гос.администрации. Слежу за серверами, администрирую бюджет (торги, закупки), сижу на телефоне с подчинёнными организациями. Хочу начать ещё и программировать. Особого времени на книжки пока нет. Но эти курсы на выходных позалипать могу. Будет ли это нормальной базой для будущего развития?
>>1751839 Если в институте на что-то инженерное учился, то у тебя уже база есть. А программировать начинать надо с практики программирования. Начни писать программу или скриптик своей мечты. А нужные знание будешь по ходу написания проги подтягивать и усваивать.
>>1751812 > Как заставить класс исполнять действия в зависимости от состояния? if self.state == state_N1: ...
> У меня есть 3 разных состояния, одни и те же методы будут исполняться по-разному в зависимости от них наследуй -> переопределяй
> Мне создать отдельный класс State, а потом внутри основного класса Worker делать что-то типа self.handler = State("FirstState")? нихуя не понял вопрос
>>1751859 берешь любую книжку которая с нуля и читаешь по полчаса каждое утро если не зайдет, берешь другую, но читаешь каждый день
каждый вечер по часу в свободном режиме пишешь любую хуйню которая нравится, начиная от автопостера в телегу с каналом с мемами, то генерации твоих менеджерских отчетов
@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
>>1751866 ну смотря что писать, как и на каком уровне. Большая часть прогеров математику дальше 9-го класса не освоили
программирование - это умение писать код + знание предметной области. Для веб макаки знание рекомендаций по использованию библиотек в тыщу раз полезнее интегралов
>>1751874 Нигде, потому что либо ты заранее знаешь что положишь в аргументы и заранее знаешь что тебе придет tuple(List, Int) и ты будешь работать c List как со списком без применения методов для словаря, либо пишешь такую хуергу или тупо try...except...else
>>1751879 то скорее всего линейка тебе не сильно в этом деле поможет, конечно, будет сказываться что ты не графы ворочал на лабах, а хуйней страдал в универе, но ничего принципиального ты бы там не узнал енивей
вообще питон не тот язык на котором пишут мобилки, там следующая ситуация objective c который сейчас заменился почти swift java которая никак не заменится kotlin немного упоротого js питон вообще не катит, есть попытки, но эт хуйня все
Полезно ли сисадмину вообще питона душить? Мне коллеги посоветовали именно его, якобы для серверов хорошо и скриптов на автоматизацию. Плюс могу приложения свои пилить опять же для работы и сайты делать нашим организациям. Верно ли это?
>>1751896 ты посмотри что в теле метода `weights` и `layers`. Ты зачем переменные класса тогда ввел? обращайся тогда cls.layers, cls.weights. Потом прибежишь роняя кал "анооон, чому не работаааееееет питоооон гавноооо".
>>1751898 Верно. Есть обертки для systemd, windows (я хуй знает как называется). Надстроек над SSH несколько штук и т.п. Все зависит от прикладной задачи. Можешь брать rsyslog -> error.log -> python -> clickhouse Для аналитики (если это оправдывает средства) Можешь просто парсить лог и переводить его в JSON структуру. Да дохуя чего можно, задачу сначала сформулируй и там видно будет. Zabbix все с лихвой перекроет на самом деле. Или Webmin тот же.
>>1751904 Ты выслал кусок кода. У тебя классовые атрибуты без начальных значений. Тогда нахуя они? Зачем тебе значения инстанса? У тебя будут разные состояния (значения инстансов). Давай считать что ты овердохуя раз будешь их инициализировать. Будет у тебя 100 объектов типа Neuronet. Так у тебя значения априори list и dict как отправная точка. Хули ты вола ебёшь тут?
>>1751914 FastaAPI, Sanic, Starlette с асинхронкой на uvloop. Aiohttp это скелет для создания своего фреймворка. Быстрее чем готовое, но скорее всего обосрешься при парсинге и в итоге потеряешь в скорости в отличие от уже поддерживаемых.
>>1751921 Потому что это полный сюр. Откуда код? Что за библиотека? Структура непонятная, комментарии спизженные. Человек не понимает разницу между class и instance судя по всему, но уже колит нейронку.
>>1751925 Код полностью мой Комменты тоже писал сам, докстринги писал по стандартам, потом докстринг генератор прикрутил к IDE Разницу между классом и инстансом знаю, но классовые методы впервые использую,
У меня есть словарь с лямбда-функциями для реализации switch/case (да, я ебанутый), каждая lambda принимает 1 аргумент и по итогу получается что-то типа: result = switch_dict["cat"](self)
Как сделать так, чтобы при несуществующем ключе возвращалась одна и та же некая дефолтная функция с одним аргументом? В курсе про метод get у словаря, но это не то. Посмотрел на defaultdict, но че-то не работает и пиздит что я в дефолтную лямбду ничего не передал
Ок, вкатывался совсем новичком. Сейчас прочитал "Python для детей" Бригса. Что читать дальше? Призываются только те, кто ознакомлен с данной книгой и понимают, какая база знаний у меня уже есть. хочу стать Full stack-разработчиком, если что. Ну мб и игры писать, но это второстепенно.
>>1751954 Тогда объясняй: 1. Зачем атрибуты класса в данном случае? 2. Почему ты хочешь менять классовые атрибуты а не класса при инициализации инстанса?
Принцип какой? Singleton? Или будет Фабрика (класс который будет содержать в себе все инстансы типа Neuronet) ? Вот самое простое.
>>1751963 1) В данном случае незачем, а так из них по идее можно инициализировать объект 2) ХЗ
Там где я читал про классовые методы было написано что это используется в фабриках. Впрочем, я уже всё перепилил по уму, как мне кажется, теперь буду тестить.
>>1752060 Объявление типа переменной без значения. Которое там непонятно зачем, так как в @classmethod не используется и к которому потом нельзя обратиться. Ок?
>>1752087 Как первый он ок, если вчитываться в доки, а не слушать скиллбокс цыган. Я уже брал курс от МФТИ. В итоге... они слали читать документацию. Благо курс был 18 000.
>>1752090 В свою защиту скажу, что это было давно и на Coursera и тогда не было такого обилия уроков, по направлениям все было интересно. Там были в примерах мат. модели даже. В итоге они меня знатно заебали обилием ошибок и сроками
>>1752090 Скилбоксы-гикбрейнзы это наёп на доллАры. На гикбрейнсе например, бесплатные вебинары, по признанию самих студентов, лучше чем занятия самого курса.
>>1752103 > бесплатные вебинары так потому что вебинары это больше рассказать/обсудить/поделиться опытом, а не гарантировать трудоустройство. "Ну приду я в Мыло.сру. Вот берите меня я тут стек выучил немножко, а в ответ явно услышу "нахер пошел, Вася", нам нужен миддл с опытом 10 лет, мы тут не на фантики работаем"
Анон, выручай! Вчера мне помогли код написать. Нужно всего лишь строчку желтым выводить. Подправь для вывода, плз. https://pastebin.com/WszHK8yk
Вот тут написано, что было найдено в аналогичных скриптах, где вводится цветом. >>1751660 Вся сложность в том, чтобы задать всю эту строчку, как переменную и просто присвоить ей цвет, как я понял.