Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
— Какие книги считаются лучшими? На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых? Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>2661328 бля, Гопота охуенна: я написал простой пример и мучался почему он не работает. нагуглил какую-то хрень по ссылке. Оказалось я просто забыл await перед respose.text() добавить.
Тупые ошибки фиксит на раз!
Впрочем это все еще не значит, что она понимает идею моей программы в целом.
>>2661146 → >память это нейронные связи. старые неиспользуемые связи разрушаются в процессе забывания, механизма освобождения места для новой инфы. новые связи образуются в процессе обучения поверх забытого Чувак, это так не работает даже в обычных программных нейросетях. Даже в самых простых нейросетях у тебя знания меняются от того, что просто меняются веса связей, сеть, которая много знает, может иметь столько же связей, сколько и не обученная.
Потом просто знания бесполезны, ну будешь таким Вассерманом всё знающим, всё равно с Гуглом и ГПТ конкурировать не сможешь. Ты конкретные вещи забываешь, а вот идеи остаются, в том числе как одни понятия применяются на другие. Этими идеями ты потом пользуешься, сам того не осознавая.
setdefault(key[, default]) If key is in the dictionary, return its value. If not, insert key with a value of default and return default. default defaults to None.
>>2661509 От задач. На питоне: > писать проще > результат получаешь быстрее > очень, SUKA, универсально: гуй, скрипты, демоны, API, WEB, всё, что угнодно. На крестах... Ну, средний код будет быстрее отрабатывать. Правда, хорошо бы понимать, что для десктопного ПО такая скорость никуда не упирается потому, что задержки 0,01с от 0,1с узверь не отличит, а на сервере они потеряются за ожиданиями ответов от БД, внешних API и т.п.
>>2661426 > Впрочем это все еще не значит, что она понимает идею моей программы в целом. Впрочем это всё еще не значит, что ты понимаешь идею твоей программы в целом.
>>2662120 map это ленивый объект, он выдает значения по запросу. Можешь зафорсить туплю через tuple(map), она заставит его работать и вытянет всё. В гринтексте распаковка вытягивает. Скобки вообще нихуя не значат в данном контексте.
Напоминаю, что Питон - ненастоящий язык, работы на нем нет! Никто не делает программы или веб-приложения на питоне, это всё наеб от производителей курсов. Вакансии, которые вы видите - это дата сайнс, и там вам нужна в первую очередь математика, а не питон. Хотите вкатиться в айтишку - учите java, c++ или node-js.
>>2662292 Это что-то вроде генератора. >А почему тульпа не вытягивает? Это просто скобки. 1 - выражение в скобках 2 - тупля с одним элементом - результатом выражения 3 - инициализация тупли мапом-итераблей
Вообще, мап сейчас считается околодепрекейтед хуйней. Сейчас делают или генэкспы или компрехеншены в зависимости от необходимости.
>>2662355 > Сейчас делают или генэкспы или компрехеншены в зависимости от необходимости Покажи, плиз, как использовать генэкспы или компрехеншны для применения int() ко всем разделенным пробелам значениям строки - input().split()
>>2662402 Это длинный пост с многими поинтами, который мне лень писать, извини. В целом синтаксис (int(n) for n in input().split()), но тебе уже не обязательно ограничиваться просто int, можно всё сделать за один заход. >>2662409 >>2662411 sort это метод листа, который изменяет его. sorted сортирует любую итераблю, возвращая новый сортированный лист. Это принципиально разные вещи.
>>2662421 > Это принципиально разные вещи. А я знаю что это принципиально разные вещи. Я спрашиваю, зачем в языке вперемешку встроенные функции, которые меняют данные, и не меняют?
Добрый день, тред фриланса мёртв, а мне нужен простенький парсер, на реализацию которого самому нет времени. Нужно с вики спарсить список станций метро СПБ и Москвы, чтобы потом в удобном формате закинуть в бд. Желательно при помощи BeautifulSoup, чтобы я мог проверить и поддерживать если что. @Serious_Sam
>>2662503 Ну так у тебя может быть задача изменить объект, не создавая новый. А может быть наоборот, тебе нужно создать новый объект. Обе ситуации довольно обычны, поэтому нужны функции-методы для каждой из задач.
>>2662591 Ну, ладно. У меня просто подопечный и так забывает присвоить результат выражения переменной, а тут ещё такое, совсем запутается. Вообще Питон как язык для обучения такое себе, должен сказать. Слишком богатый синтакс, слишком много разных концепций понапихано
>>2662620 А, ещё изобилие в сети и на SO примернов как из второго питона, так и из третьего питона разных версий, тоже не очень способствует, как с многострадальным форматированием строк, где уже сменилось два стандарта, причем внутри третьего питона
>>2661426 > Да, существует асинхронный аналог set() в Python. Это asyncio.Queue, который также обеспечивает избежание дубликатов элементов. Метод put() добавляет элемент в очередь, при этом если элемент уже присутствует в очереди, он не добавляется повторно.
>>2662713 Асинхронные таски для cpu-bound не подойдут. Если у тебя один сервис крутится и библиотек multiprocessing и concurrent недостаточно, то тут имеет смысл или делать полноценную распределенную архитектуру или, если у тебя есть один сервис, которому нужно скидывать жирные таски, то проблем с использованием celery нет. Фауст это именно стрим процессинг + стейт для обработки кучи сообщений в секунду для кафки.
>>2662620 >Слишком богатый синтакс, слишком много разных концепций понапихано Когда я его учил (с поправкой, что для меня это был не первый ЯП и, наверное, даже не в первой десятке), мне показалось, что на фоне всего, с чем я уже знаком, тут столько синтаксического сахара, упрощающего написание кода, что я рискую словить синтаксический диабет. >>2662628 > с многострадальным форматированием строк, где уже сменилось два стандарта, причем внутри третьего питона Не сменилось, а добавилось. Старые не выкорчёвывали. Другое дело, что новые настолько удобнее и лучше, что старые как-то сразу стали deprecated.
>>2662501 >Наверняка же у этой бредятины были какие-то оправдания? В отличии от первого, крайне хуёвого примера по дизайну, во втором ты просто читаешь фразу и она сразу говорит, что делает. И не надо выискивать значочки в строке.
На чём реализовать очередь, суть такова — приходит много тасков, они маркированные, можно организовывать разные очереди по маркеру (тегу), в некоторых очередях, если приходит следующий таск, то удаляются первые пять (или все) до этого с таким же маркером (тегом).
>>2662841 Первый пример охуенный по дизайну. Условие? кейс1 : кейс2
>во втором ты просто читаешь фразу и она сразу говорит, что делает. Как и первая, только в первой условие засунуто между действием по варианту 1 и действием по варианту 2
>>2662842 Кстати, про метро. Вспомнил об одном проекте: https://pmetro.su/ можно скачать у них схему метро в своём специальном формате pmz, насколько я помню, pmz представляет из себя zip-архив с пачкой простых файлов, среди которых: png со схемой, много чего ещё и XML с самими станциями. Вот оттуда, при желании, можно взять данные считай без парсинга. Обновляется регулярно.
>>2662842 Питерские станции ещё куда ни шло, но Московские будет геморно, а потом через год Собянин откроет 10 новых станций и мне вместо повторного вызова функции придётся руками обновлять. >>2662900 Я только сюда писал, поделись кто ещё такой хренью страдает.
>>2663081 Да в чатах в телеге. 3 апреля тот же вопрос задали и послали вручную эксельку заполнять.
Ты не ответил что там у вас происходит. Неужели кабанчик объявляет приз и смотрит кто быстрее сделает? Или, что более вероятно, кто-то на фрилансерском сайте разместил заказ, а все остальные вкатыши ринулись спрашивать во всех местах?
Стоит ли ставить в не очень новый debian 11 который я обычно запускаю в WSL, другие версии питона? И как вообще это делать? Распидорасит весь системный софт?
Думал нормальненько дожить на python 3.9, но кодерский паравоз бежит вперед слишком быстро и нихуя не работает нормально aiohttp.
>>2662981 Редиска не пойдёт. Уже выполняющийся таск затирать нельзя. И нужен не ttl, а именно затирание новой задачей старых. Не должно быть так, что всё протухнет — должна исполниться хотя бы одна задача (таск).
Аноны, я тут считал хэш кучи мелких файлов. hashlib.md5(data).hexdigest() Где, data это прочитанный в бинарном виде файл. Файлов всего около тысячи, первый раз раз хэши считались долго, секунд 15 наверно. Когда второй раз запустил всё сделалось за пару секунд.
Чому так? Если питух где-то на диске собирает хэш этих файлов то я бы хотел это говно удалить.
>>2663119 Просто в таблице на вики появятся новые строки, формат таблицы врядли изменится(надеюсь). >>2663148 Я без понятия чё ты параноишь, у меня свой проект, под который эта шляпа нужна, ни в каких хакатонах и фриланс заказах не участвую( хотя уже кажется нашёл на бирже чела который сделает это за копейки пока двачеры параноят)
Как эту динамическую типизацию дрочить то. zalupa = classZalupa() list = [] list.append(zalupa) size = list[0].zalupaSize
Это будет работать, но на последней строке среда не знает что лежит в листе, никаких подсказочек при вводе и если я захочу переименовать zalupaSize на sizeZalupa, то буду это делать руками во всём проекте. Можно как-то исправить это?
Нормально, что у меня нет особого интереса читать http://composingprograms.com/pages/23-sequences.html ? Читаю про деревья и ловлю себя на мысли, что начальный запал вникать в какую-то абстрактную отдалённую хуйню пропал и на данном этапе материал книги воспринимается как нагромождение абстракций, которые не ясно как использовать и как они связаны с программированием.
>>2665171 Что за проекции начинаются? Я не писал, что я всё умею, если бы я всё умел, то я бы вообще сюда не писал. Я не писал, что деревья - хуйня для дурачков. Я просто написал, что мне стало скучно читать этот учебник и что не понимаю, что конкретно я буду уметь, когда пойму принцип работы деревьев. А в ответе на свой пост я надеялся получить мнение анона об учебнике, о том, правильно ли использовать его для изучения принципов программирования, если ничего до этого не читал и нормально ли, что абстрактные вещи учатся тяжело и не охотно. А ты хуйню какую-то спизданул мимо.
>>2665234 Я не креативен и не пишу код дохуя часов. Я в основном на отходосах и натужно пишу код на пхп-перле-питоне-шеллах, чтобы поркыть расходы. Писал бы и на шарпах-жавах, но лень ставить иде. Не зацикливайся на языках, it's all the same shit.
>>2663605 >если я захочу переименовать zalupaSize на sizeZalupa, то буду это делать руками во всём проекте. Ну, создай в классе магический метод __len__, это будет более тру. https://habr.com/ru/articles/186608/ Но вообще говоря, то, что ты описываешь это не про динамическую типизацию, такая проблема даже в самых статических случаях будет.
>>2665234 >Пацаны! Подскажите плез, как вы остаётесь креативными и пишите код по 12 часов в сутки 6 дней в неделю? Насколько я понимаю, есть только одно, что поможет в такой постановке вопроса: правильный режим переключения контекстов. И оно, насколько я понял, неуниверсально. Поизучай отдельно: https://alexthunder.livejournal.com/290612.html и про метод помидора, про него написано очень много, при чём есть разные практики, тайминги и замечания.
>>2665301 >я просто не понимаю, как люди сосредотачиваются под музыку Нужна правильная музыка. Мне, например, очень зашла нейромузыка из приложения Яндекс.Музыка на телефоне: только звук, ни слов, ни ещё чего-то, за что сознание может зацепиться, зато блюмкает приятно.
Как нынче правильно запускать fastapi ? Какая связь между uvicorn и gunicorn ?
Почему когда я vscode через менюшку прощу добавить в проект docker ( а так можно делать и я считаю стоит делать) он собирает мне docker-compose.debug.yml какой-то левый с gunicorn ? Всем нужен gunicorn ?
Стоит ли упоминать, что отладка в docker-compose не работает...
Ну я поставил эту срамоту - pyenv и python 3.11 Стоит ли говорить, что при установке и сборке с нуля все равно насыпало варнингов и работать в VSCode не так уж удобно? Хотя я надрочился выбирать версию python и в принципе жить можно.
>>2665347 Свежие питоны требуют в системе свежих GLib, а слишком новые GLib - потенциально поломают половину системы. Поэтому мейнтейнеры иногда ограничивают максимальную версию доступных пакетов. Собственно, скорее всего оно у тебя даже не скомпилится руками.
Мне проще, у меня Ubuntu на железе, а дебиан или центось, при необходимости, я и в докере запущу: > $ docker images > REPOSITORY TAG IMAGE ID CREATED SIZE > debian 11 f5b06fd90040 2 weeks ago 124MB > centos 7 eeb6ee3f44bd 18 months ago 204MB
>>2665471 > Ты же не думаешь, что кто-то кроме долбоебов использует centos ? Увы и ах! У половины моих контрагентов седьмая цента, ещё у трети - восьмой рхел (которого у меня нет, дорого, так что тестировать приходится прямо на их проде, естественно, всех предупреждаю о побочках). Я каждый раз полыхаю так, что видно из космоса, когда оказывается, что мне придётся снова связываться с этим окаменевшим говном мамонта, на котором окажется питон 3.6 (и соберётся из сырцов 3.8 - максимум) и ансамбль 2.11 какой-нибудь.
>>2665664 >кастомные коды ошибок для JsonResponse в Fastapi. Вообще плохая идея, как по мне. Есть HTTP-коды, которые ты можешь скармливать через raise в случае ошибок, или штатно указать корректный код, зачем тебе тут кастом? Чтобы тот, кто будет делать фронт - страдал?
Подскажите, пожалуйста, кто тут не прав (если я, то в чём и как правильно): BASH: > echo "pass" | sha256sum > 9f56e761d79bfdb34304a012586cb04d16b435ef6130091a97702e559260a2f2 - Python: >>> from hashlib import sha256 >>> sha256("pass".encode('utf-8')).hexdigest() 'd74ff0ee8da3b9806b18c877dbf29bbde50b5bd8e4dad7a3a725000feb82e8f1' Почему, применяя один и тот же (по-идее) хэш-алгоритм к одной и той же (по-идее) строке я получаю разные результаты?
А чем тебе обычный способ передачи сообщения об ошибке не угодил? Он точно так же возвращает джейсона, строку можешь передать свою, если надо. Я просто пытаюсь понять, может, я сам не прав и мне надо перерписать всё КЕМ...
>>2665701 1) Потому что на разные эксепшены навешены свои хэндлеры. 2) Потому что detail в таком виде вернёт фронту plain text, а не объект.
Я же хочу для всех ошибок возвращать ErrorResponse с атрибутами code и message, т.к. контроллер может вернуть хттп 400 по нескольким разным причинам. Т.е.: 1) упал на валидации токена -> хттп 400, код 40001, мессаге инвалид кредентиалс; 2) упал на валидации тела -> хттп 400, кож 40002, мессаге бади валидатор еррор; и т.п. для 401/403/5ХХ.
>>2665234 На самом деле это всё: >>2665329 , конечно, работает, но только до одного момента. Пока у тебя есть интерес. Хоть какой-то. Пока интерес сильный, тебе ничего не надо, когда его нет - тебе ничего не поможет. Если тебя всё заебало и ты понимаешь, что вертел ты на хую в тысячный раз писать один и тот же код для новых клиентов - надо что-то менять. Предметную область, фреймворк, язык, работу, в конце концов отрасль. Когда станет скучно, заебёт вконец, ты либо будешь писать 10 строк полезного кода в день, либо будешь механически впечатывать шаблонный код, работа по интеллектуальному уровню будет на уровне "отстоять смену у станка" 50 лет назад безо всякой автоматизации.
Нюфаг итт. pyinstaller вопрос. У меня программка разбита на файлики, в которых подключаются другие файлики и так далее. Я правильно понял, что pyinstaller вложенные вложения, так сказать, не видит и не читает?
Антуаны, у меня вопрос. А можно как-то запустить приложение в одном окне, а трассировать в другом? Ну, VSCode, например, может показывать значения переменных, расставлять точки останова и пр., но запускает при этом приложение у себя в подвале, а у меня там портянки текста, мне бы консоль на отдельном экране видеть.
Изучаю классы. Как сделать кучу переменных автоматизированно?
Вот есть у меня простой класс Person с атрибутами имя и возраст. Хочу допустим я создать 50 человек - не буду же я руками создавать ivan = Person("Ivan", 20), Alesha = Person(...) ....
>>2666119 Не, ня правільна. Ён усе чытае. Стартуй pyinstaller у дырэкторыі дзе зьмяшчоны твой __main__.py. Таксама магчыма дадаць яму бібліятэкі парамэтрам --paths
>>2666903 Тебе нужно сделать свой генератор c фейковыми данными, можно сделать создание рандомного списка из string.ascii_letters Еще можно заморочиться и заюзать эту либу, если хочешь что-то осмысленное https://faker.readthedocs.io/en/master/
>>2666903 В данном случае у тебя появляется лист "persons" и эти "люди" будут элементами этого листа. Обратиться сможешь либо в цикле, например: > for i in persons: > ....age = i.get_age() либо по индексу, например: > age = persons[-5].get_age()
>>2666959 Фейковые имена похуй какие, мне и имя 1, имя 2 сойдёт.
>>2666968 Понял, попробую использовать. Но это все равно все будет объектами словаря. А можно ли в питоне создать обычные переменные во время исполнения кода? Чтобы код создавал переменные вида ivan = Person() и чтобы потом использовать ivan.name, а не persons[0].name
>>2667260 Так не делают нигде. Вдруг у тебя потом будет не 50, а 20, или 1000. И что потом? Программу переписывать будешь каждый раз? А если у них имена будут другие?
>>2667039 >Чтобы код создавал переменные вида ivan = Person() и чтобы потом использовать ivan.name, а не persons[0].name Можно. И, более того, именно так это и работает. Другое дело, что юзверей ты хранишь в эрзац-БД, из расчёта, что их будет дохуялиард. Если у тебя немного объектов (предсказуемое количество, обусловленное логикой), то, конечно, делается что-то в духе > ivan = Person("Ivan", 22)
Блин. Оказывается, for i in list не перебирает все элементы, а делает что-то типа for i in range(len(list)): list я надеялся на более технологичный вариант, который именно перебирает элементы. Хорошо хоть наебать систему просто.
a = [1, 1, 2, 2, 3, 3] for i in a: ....if i == 2: ........a.remove(i) print(a) > [1, 1, 2, 3, 3] a = [1, 1, 2, 2, 3, 3] for i in a[::-1]: ....if i == 2: ........a.remove(i) print(a) > [1, 1, 3, 3]
Сука, мелочь, а я, наверное, час потратил на дебаг.
>>2667857 Ты мог и просто сделать a[:] во втором примере. Но вообще, код выглядит как срань потому что ты сначала делаешь копию, потом итерируешься по ней и вызываешь remove, который тоже итерируется по листу до первого вхождения.
>>2667863 Мне тоже не нравится. Но нужно почистить лист от вхождений по маске и для этого как бы есть ремув. >>2667867 >Да ты почти в любом языке обосрешься, мутируя итерируемый объект. Если идти с конца, то нумерация не поедет и это работает. А что думаешь, правильнее? Сначала сделать временный лист/тупл с тем, что надо удалить и потом пройтись уже по нему циклом?.. Звучит ещё страньше, а больше ничего в голову не приходит.
Кстати, идти с конца - практика, которую когда-то подсказали куда более опытные товарищи, которые в отличии от меня именно кодингом живут.
>>2667997 >Если идти с конца, то нумерация не поедет и это работает Ты не по тому же листу итерируешься, а по его копии, потом вызываешь remove, который итерируется уже по оригинальному листу пока не найдет заданное значение. Поскольку количество вхождений "2" в копию очевидно такое же, то оно и работает корректно. Сделай вместо a[::-1] a[:] и у тебя будет такой же результат. С таким же расходом памяти, но более идеоматично и быстрее будет так a = [1, 1, 2, 2, 3, 3] a = [i for i in a if i != 2]
>>2667997 Можно с конца, можна через генератор и зарядить дальше. Для небольших списков можно компрехен. todel = {1,2,3} gen = (el for el in lst if el not in todel)
Объясните самым простым примером зачем нужен class, обхожусь без него и не вижу смысла в применении. Понятно что мелких говноскриптах оно особо не нужен. Но где вот прям использование по делу?
>>2668020 >a = [1, 1, 2, 2, 3, 3] >a = [i for i in a if i != 2] Спасибо за подробное пояснение! Так и сделал, работает и смотрится норм. Почитал про ремув, потестировал, слегка разочаровался, что он бегает. Я что-то был чуть лучшего мнения о Питоне. То есть со стороны кода всё гут, но внутри не так красиво, как ожидаю. >>2668028 Спасибо!
У меня это пока заглушки перед переездом данных в БД, но хочется писать нормально сразу. Спасибо! Пробовал писать сразу в базу, но там половина кода уходит на подключение, выборы, курсоры... Решил обкатать логику без этого всего сначала.
Помогите тупому, как сделать функцию которая будет выполняться паралельно основной программе. В кратце функция должна присылать уведомление всем юзерам в определенное время. Вот на скрине то что я сделал, код работает, все присылается, но остальные функции бота перестают работать. Оно же вроде должно быть паралельным потоком, но нихуя.
>>2668270 >Я что-то был чуть лучшего мнения о Питоне Ты просто не очень его знаешь, удаление по элементу без прохода по массиву ты ни в каком языке не сделаешь. Для удаления по индексу есть pop
>>2668393 >удаление по элементу без прохода по массиву ты ни в каком языке не сделаешь. А если ты обходишь список, то в i во всех случаях попадает копия элемента? И никогда - ссылка на него? Если ссылка, то можно придумать, как исключить каррент айтем.
>>2668397 >А если ты обходишь список, то в i во всех случаях попадает копия элемента? И никогда - ссылка на него? Если это изменяемый объект, то ссылка, если не изменяемый то значение. >Если ссылка, то можно придумать, как исключить каррент айтем. Просто нормальный счетчик с pop.
Про list.copy() видимо не знает никто. >>2668270 Вот это вполне нормальное решение, чем не нравится? Созданием второго списка? А вы подумайте логически как по шагам сделать это в одном листе с сохранением индекса
>>2668397 >во всех случаях попадает копия элемента? И никогда - ссылка на него? В питоне все типы ссылочные, в нём не имеет смысла разделение на value и reference.
>>2668467 >Зачем тебе екзекутор? По стандарту нужен в библиотеке aiorgam для работы с телеграм ботами. >И в чем прикол asyncio.gather с одной функцией? Я просто до этого запускал вне асинхронной функции и без него не работало.
>>2668502 Тем не менее, если вот ты обходишь лист, у тебя есть указатель на элемент листа, но для удаления элемента из листа ремув не берёт готовую ссылку, а проходит по всему листу до подходящего вхождения.
>>2668703 >у тебя есть указатель на элемент листа Это ссылка на объект, о листе он никакой информации не имеет. remove ты изначально неправильно использовал. Если ты хочешь быстрого удаления из листа, то тебе нужно удалять по индексу.
>>2669218 Тебе надо изучить си и посмотреть, как работает вм питона. Тогда ты сможешь давать советы из жопы. Вот там выдлелся лист х на разрядность системы, а ты своим выражением утопил эту ололо-оптимизацию в говне. Вот так надо смотреть. А потом идти в си-тред и спрашивать, что значат полтора звездочки в выражении.
Двач, помоги Пытаюсь написать скрейпер сайтов на реквестах. Наткнулся на случай, который не понимаю как обходить. При каждом новом запросе в ссылку добавляется новая часть, аналогичная предыдущим и так до бесконечности. Никаких ошибок типа максимальной рекурсии не выдает. Я хз даже как гуглить.
>>2669225 Честно, признаюсь, пытался пару дней назад начать что-то делать на C++. Знаю, что малютки используют библиотеку SDL2, потому после того как скачал компилятор mingw, поставил её, но эта шлюха отказывалась работать что бы я не делал. Поэтому забросли эту дрисню.
Друзья, помогите пожалуйста, не понимай как сделать иллюзию ожидания (пропуска кадров, не знаю как это назвать) в Pygame, прочтите комментарии. Буду вечно благодарен за помощь. https://pastebin.com/z8bKhLcw
>>2661284 (OP) Вот яркий пример того что значит "быть слишком умным не к месту": https://habr.com/ru/articles/728194/ Петушок ударился в генераторы и предлагает засрать нахуй свой код ими. Поменять легко читаемую и легко отлаживают конструкцию на плохо читаемую и неотлаживаемую без каких-то профитов по производительности даже (и где-то наоборот она и хуже станет)
>>2669954 Дык, это же питон. Здесь много высокомерных чванливых пидорасов, ебущихся хуями в грязное половое ачько с говном, а потом сосущими эти гонорейные хуи друг у друга. Это норма.
Не стоит такое прямо вводить как догматику и писать код исключительно гомосексуально (даже если ты питонист). Но как разминку для ума или как некие приёмы, которые иногд аудобно или интересно использовать в своём обычном коде, который ещё и другим читать (или себе через год) — да, полезно, ящетаю.
>>2669954 Забавно, что он просит за свои услуги от 7к евро, при этом жиденько обсирается в комментах про коды ошибок, "ну я сам из мира assемблера" и "мне надо было отдать пол миллиона точек" -> "тут я наврал, было максимум 17 тысяч".
>>2661284 (OP) Всем привет, что почитать/посмотреть такого, что бы максимально разобраться в асинхронности? Нужно ли мне для этого так же вникать в многопоточность/многопроцессорность или достаточно условно асинкио только знать и все? В общем жду любых подсказок/советов, спасибо:)
>>2670561 Ну ты бы ещё посмотрел "кто обоссытся первым челлендж". Надо смотреть видео из удеми с улыбчивым индийским школьником и кудахтаньем куриц во дворе.
>>2670564 Ты пытаешься троллить, но получается какая-то глупость. Мне просто жаль, что нет нормального урока, который помог бы мне в сфере Дата Сайенс.
>>2670571 Я пытаюсь сказать тебе, что на ютубе не стоит искать вменяемых видео по айти. Они бывают, но это единичные исключения. А ты видимо зумерок, который и жопу без ютуба подтереть не может, да?
>>2670514 Почитал статей, тогда вопрос сокращу до: Всем привет, что почитать/посмотреть такого, что бы максимально разобраться в асинхронности? Сам пока читаю все, на что наткнусь, но все же буду не против более конкретным советам.
>>2670587 Читай книги, лекции с институтов и соотвествующих курсов. Найди людей с нужных направлений и попроси их сливать лабораторные и всякое такое. скачай курсы скилбоксов, если верхнее сложно, но лучше смени направление)
>>2670587 Я тебе ничем не обязан, срыгосник, просто обозначил, что ты ешь говно и почему оно на вкус как говно почему-то. Так что стоит поискать что-то получше. А пока можешь оформлять свои молодежные срыгосы обратно на ютубчик. СТАВЬ ПАЛЬЧИК ВВЕРХ.
>>2670571 >нормального урока, который помог бы мне в сфере Дата Сайенс. Тебе надо матстат, линал и тервер изучить, а инструментарий в Питоне для этого элементарен — хуяришь в ноутбуке, вооружившись пандас и нумпи, вот и всё.
Аноны, подскажите пожалуйста как решить. Есть несколько функций, в одной из них есть try, except, в одном из except вносятся изменения(удаляются по индексу) в список который используется как аргумент в 2 функциях. Сперва выскакивает вообще рандомное значение из списка, а если повторить запрос ошибка - "circular reference detected". Я вообще не шарю в питоне, чисто хочу для себя одну штуку сделать.
>>2670784 удалил лишний while, забыл с теста прошлого. Всё равно сперва в ans выдаёт просто role, а затем и в ans и в context - Circular reference detected.
Я в 3д вкатился по англоязычным курсам, на сайте где их скачал, нашел курсы по питону, вспомнил, что уже год сижу без работы, закончив айтишную вышку. Поэтому принес эти курсы в этот тред.
Я не вкатун с нуля, у меня есть база, знаю английский, и вместо шароебства по бордам я реально самообразовывался. Но не хотелось бы просмотреть условно говоря 10 часов курса, и понять, что хуйня, поэтому спрашиваю.
>>2671961 Ещё раз в этом треде могу тебе порекомендовать jose salvatierra. У него акцентик, но нормальный, не диарейный индусский. Есть ещё челик русский, который по тематике, я скачал на каком-то варезнике, не могу найти сейчас. Любого автора русских курсов надо ловить и пиздить арматурой, я серёзно.
Поясните спецы тредовые, правильно ли я понимаю что для вызова бинарника из кода мне нужно вызывать process.call? У меня есть sh скрипт в котором запускается утилита с ключами, ее хочу перенести в код, но если делать типа process.call('bash' -f 'apache2 хуе-мое') она не видит каталогов, а если process.call('apache2' -f'пук-среньк') то он не видит конфигурационных файлов хранящихся для юзера в $home/username Или как то иначе такое надо запускать? И как мне код ошибки обработать? Потому что если он срабатывает то приложуха дохнет.
Подскажите почему словарь d2 не хочет создаваться? В d1 у нас обычный генератор и там я могу брать по два элемента(x, y) из списка(a2). А вот d2 и d3 вложенные генераторы и сразу по два элемента если брать выдает ошибку. Это так задумано или я что-то делаю не так? >>2671935 Вот сейчас как раз курс от Балакирева прохожу, только бесплатный который, для самых маленьких. Очень годный курс.
Задам пожалуй еще один банальный вопрос. Допустим, у меня есть знания основ ООП и знания Python на уровне университетских лаб. Проходит год, за этот год я чисто по фану задрачивал тридэ как хобби, но мне вдруг захотелось есть поработать по специальности, и я решал изучить язык, с которым хотя бы немного был знаком в прошлом
Сколько времени у вкатуна не совсем с нуля, с моими входными данными, может уйти на становление джуном-питонистом? Чисто усредненное значение. Предположим, что в Айти я не ради денег, а потому что ничего другого просто не умею, а в тридэ работать не хочу т.к. отрасль мертва
При устройстве больше смотрят на петпроекты я так понимаю?
>>2672439 >Сколько времени у вкатуна не совсем с нуля, с моими входными данными, может уйти на становление джуном-питонистом? Пол года-год, зависит от твоего желания и будет ли твоей первой вакухой джанга
Здарова мужики. Куда мл тред делася? Хотел спросить как на цветных изображениях сегментировать элементы по цвету легче всего? Есть способ без создания больших дадасетов? Или готовые инструменты?
Сейчас сделал без ml чисто математикой. Сначала сильно блюрю через denoising, потом через kmeans уменьшаю количество цветов и потом ещё скэлю получившееся цвета к 32ум заранее заданным цветам. После разделяю исходную картинку на 32 разные по одной на каждый цвет, На каждой сначала удаляю шум, потом dilate оставшихся элементов а потом, нахожу все компоненты связаности. Дальше для каждой компоненты связаности беру прямоугольный контур, проверяю что он не слишком большй и не маленькией и не силньно пересекается с другими. Из выбраных выбираю до 6ти самых близких к центру. Но получается так себе. Некоторые картинки нормально сегментировал, на некоторые вообще неправильно. Как улучшить без излишних усложнений?
Нужно склепать простейшую веб-формочку, которая по нажатию кнопки будет отправлять ответ в апишник. Ничего кроме питона, баша и SQL я не знаю, и веб-разработкой не особо интересуюсь, ибо я у мамы DBA. Форме вообще не надо быть красивой, совсем. По сути, мне нужен веб-аналог tkinter'a. Какие библиотеки пробовать? Мне очень не хочется пытаться разбираться с фласком.
Пытаюсь запарсить сайт с картинками https://giantessbooru.com/post/list Проблема в том, что он как бе 18+ и питон выдаёт 403, потому что там при входе вопрос "а вам есть 18?". Пытался добавить в параметры "agreed=1" - не помогло. В заголовках используется cloudflare, пытался обойти с помощью cloudscraper, cfscrape - нихрена. При этом в браузере ссылка https://giantessbooru.com/post/list?agreed=1 прекрасно работает Как победить?
>>2672408 Кароче, вот более наглядный пример. Так и не понимаю, почему первый вариант работает, а второй нет? Ведь вложенный цикл во втором варианте это то же самое, что и первый вариант.
Питонач, помогай, нахожусь в очень интересной, но трудной ситуации.
Я вкатун-самоучка - по позиции вообще аналитик а не девелопер, пару лет клепал макросы на VBA, потом перешел на питон. В моей команде все такие же - бывшие ученые, бывшие аналитики, или люди прямо с курсов. Все умеем педалить юпитер ноутбуки и писать скрипты, но полноценных знаний хороших практик разработки нет. За последнее время, на команду начало прилетать много задач, которые больше про разработку - автоматизация отчетности, сделать какой-то простенький фронтенд для одной аппликухи, и тд. Говнокодом и такой-то матерью справляемся, но становится очевидно что надо менять практики - было уже несколько отчетов которые отправили клиентам неправильно потому что не было тестов, были случаи когда у кого-то три месяца (!) не отправлялся важный алерт, а об этом не знали потому что не читали логи крона. Фактор автобуса 1 на каждом проекте, потому что документацию. никто не пишет. И так далее. И пока что кроме меня - никто не видит в этом проблемы, все типа "ну как-то работает, и хуй с ним". Тимлид соглашается, что надо бы выработать какие-то другие практики, но он похоронен под завалами бюрократической работы и ему не до этого.
Я хочу попробовать выработать для нас какой-то базовый CI/CD пайплайн для начала. Научить людей нормально работать с гитом (чтобы вы понимали, для нашей команды сейчас пуши с локальной машины в мастер - норма, в большинстве реп мастер - единственная ветка), приучить использовать линтер и стайлер, начать делать ревью и мерджреквесты. Но опыта у меня у самого нет. Как мне в принципе подступиться к такому? Какие github action'ы - мастхэв для мерджей из дева в мейн? Надо ли требовать ревью при мерджах фичер-веток в дев, или хватит только из дева в мейн? Как приучить людей писать тесты на свой код? Какой линтер и стайлер лучше использовать? И т.д.
и если про линтер скажете про pylint - что лучше, попросить всех поставить себе прекоммит хуки и гонять его локально, или сделать обязательным при пуше с помощью экшенов? если второе - какое брать пороговое значение оценки? потому что если требовать 10/10 - у нас работа встанет, лол
Анчоусы, вопрос не совсем по питону, но подскажите, что почитать по криптографии, прям что-нибудь базовое-вводное. Прилетела задача по хешированию сенситивных данных пользователей в базе, я таким раньше не занимался, спецификации в ТЗ никакой нет, просто "захешируй и все". Как понять, хватит ли мне условного sha3_512, который я нагуглил, или его недостаточно?
>>2673377 Могу рассказать про свой опыт, был 1-в-1 в твоей ситуации и с почти таким же бекграундом. 1. для начала выбери флоу работы с гитом. Популярные - гитхаб флоу, гит флоу. Я выбрал гит флоу, потому что он проще и удобнее. 2. закрой в репозиториях мастер на пуши. Только МРы, только хардкор. 3. напиши своим пацанам доку "гит 101". Я прям написал инструкцию как для дебилов со скриншотами из ИДЕшки и покрытием классических вопросов в стиле "вот у меня новый проект, как подключить его к гиту?", "как выделить ветку", "я долго не обновлял локальный мастер, и в него уже насрали другие разрабы, что делать?" и т.д. 4. для репозиториев командых проектов введи правило, что для аппрува мержа нужен минимум один лайк от кого-то другого 5. если проекты можно типизировать, то накидай базовое приложение. У меня в команде для этого есть базовое fastapi-приложение с уже готовой структурой приложения. Клонишь его себе и насаживаешь функционал на скелет.
>>2673377 Кожны пуш у любую галіну ў мяне праходзіць праз тэсты flake8, pylint, pytest, менавіта ў такім парадку. Калі на якой-небудзь стадыі вынік незадавальняльны, то дэплоя не будзе, пайплайн пакажа чырвоны статус.
Мне да халеры што чалавек ужывае лакальна. Хтосьці бяз тэстаў шмат разоў дзяўбецца ў чырвоны колер і ўсё бачаць ёлупня. Галоўнае каб пасля сябе прыбраў, то бок пакінуў зялёны статус.
>>2666146 Сам спросил, сам отвечаю. Нужно перейти в раздел "Run and Debug (Ctrl+Shift+D)", наверху есть выбор профилей дебага и шестерёнка их настройки. Когда тыкаешь на шестерёнку создаётся файл "launch.json", в нём есть параметр "console", его нужно изменить, переключить с дефолтного "integratedTerminal" на "externalTerminal".
>>2672439 >Сколько времени у вкатуна не совсем с нуля, с моими входными данными, может уйти на становление джуном-питонистом? Если ты не пинал хуи 6 лет, а учился, усваивал то, что тебе преподавали и всё такое, то на джуна ты уже тянешь и даже знаешь сильно больше, чем все вкатышки. Если же тупо отсиживал лекции и покупал курсовые... Ну, туда тебе и дорога.
>>2673377 Простой ответ на сложный вопрос: обратитесь в девопс-агентство (например, Fevlake). Ну или наймите сеньора-довопса, но как его выбрать не имея экспертизы я не в курсе. >и если про линтер скажете про pylint - что лучше, попросить всех поставить себе прекоммит хуки и гонять его локально, или сделать обязательным при пуше с помощью экшенов? Второе. Строго и обязательно. Первое может кто-то не настроить или настроить неправильно и оно не будет работать.
Гуманитарий-вкатыш в DS/ML итт если есть отдельный тред по DS/ML, не закидывайте камнями, дайте ссылку, поискал не нашёл
Освоил базовый питон, пощёлкал алгоритмические задачки, полез в DS, разобрался с pandas, и почувствовал себя непобедимым. Решил попробовать пролезть на стажировку по DS в одну хорошую айти-компанию, получил тестовое задание и с ужасом осознал, что задача решается через машинное обучение.
Задача заключается в том, что есть две базы данных - учебная и тестовая, в учебной по двум столбцам даются данные (строки), из которых в зависимости от из содержания надо собрать третий столбец - фрагмент строки из первого столбца, включающий информацию, запрошенную во втором столбце.
Как я понимаю, нужно написать модель, которая обучится по учебной базе данных, затем запустить её с тестовой базой данных чтобы она отработала её по выработанному алгоритму.
Подскажите, куда тыкаться чтобы научиться так делать. Я так понимаю, мне предстоит познакомиться с sickit-learn, keras и мб ещё какой-то либой, но всё, что я нашёл за первые полтора часа исследований, упирается в работу с числовыми массивами.
>>2673806 Потому что знаешь как пишут эти вакансии? К тимлиду приходит совершенно ни хуя не понимающая рекрутерша и говорит "мне от тебя надо требования в вакансию". Причем если в команду набирают людей - то или их там не хватает и команда не справляется, или принято решение расширить команду как часть какой-то реорганизации. Соответственно, тимлид почти точно будет заебан как собака - или технической работой и затыканием дырок, или бюрократией и политическим маняврированием чтобы спихнуть хуевые проекты с ебанутыми клиентами и забрать себе в команду хорошие. В любом случае, вакансию он будет писать на отъебись. Типа "ну что тут написать, мы вроде там иногда классы создаем и наследуем - ок, пишем ООП, нам надо не писать охуенно медленно - ок, пишем алгоритмы". По факту, такое требование в вакансии не значит что вы будете целыми рабочими днями перетирать за полиморфизмы, паттерны и прочее. Но вообще понимать что такое ООП и что такое классы надо.
Конкретно по твоему вопросу - иногда такая абстракция как объект тупо удобней. Например, если у тебя есть много функций которые вызываются с одними и теми же аргументами и этих аргументов много - вместо того чтобы писать вызовы на две строки можно просто сделать эти функции методами класса, и класть аргументы в атрибуты класса при инициализации.
>>2673806 Буйны доўгатэрміновы праэкт патрабуе больш сістэмнага падыходу, каб праз некалькі год іншы праграміст здолеў разабрацца і працягнуць працу. ААП спрыяе таму каб розныя праграмісты пісалі аднолькава.
Вопрос по телеграм-ботам, написанным на пайтоне, может сталкивался кто: Хочу научить бота автоматом отправлять фото со своего сайта в канал, но проблема в том, что сами пикчи порой довольно большого размера (3-4Мб) и когда отправляешь вручную в канале, то там можно указать при отправке "сжимать фото", что меня более чем устраивает. А вот при отправке через бота методом send_photo нигде параметра для сжатия фото я не нашел в документации. Можно ли как-то сжать фото при отправке через бота?
>>2674264 Все фотки разного разрешения и сжимать их под определенный размер может быть не лучшим решением. Но идея интересная, попробую поиграться с методами pillow
>>2674377 Лучше избегать этой гомосятины в боте. Как и советов написанных на трасянке — это реальные престарелые пидоры, которые алчут твоего грязного от гавна ачька.
PIL у тебя в мамяти отожрёт гигабайта два и начнёт подтекать, собирая гигантскую кучу мусора. Есть трюк — кидать ссылку на картинку, а не саму картинку. Телега сама скачает и пожмёт.
>>2674379 А чего это пил отожрет? Он же будет в одной и той же переменной картинки конвертировать, значит ссылки на область памяти с прошлыми картинками будет удалять gc. В пиле есть какой-то баг, который делает утечку памяти или ты просто спизданул что-то неподумав?
>>2674381 >Он же будет в одной и той же переменной картинки конвертировать, значит ссылки на область памяти с прошлыми картинками будет удалять gc. Наивный. Это в сферическом питоне так, собранном руками эльфов и установленном на божественном серваке.
> или ты просто спизданул что-то неподумав? Да не, долго тебе в пищевод ссал гонорейной мочой, да решил по лбу ещё хуем в творожке постучать.
Делал с дюжину графических ботов и всё время память от этого PIl разрасталась как весь пиздец. Либо ребутить часто, либо заниматься ухищрениями. Но не хранить нихуя никаких картинок и не делать с ними ничего. Ну, либо если бабла немеряно, то конечно, по традициям разработки последних 10 лет идти — а хули нам, ещё кластер купим под бота!
>>2674383 Т.е. ты нихуя не знаешь почему, но вот просто твой код хуево работал и по этому ты сейчас закатив глаза визжишь по хуи и мочу. Ясно.
Алсоу, если бы у тебя были мозги ты бы просто пошел и посмтрел куда в твоих кривых ботах память уходит и сделал бы хук чтобы её очищать. Ладно можешь мне не отвечать, я уже понял что по неосторожности написал визглявому школьнику.
>>2674390 Отчпоканная в гавняное ачько свиноманька хочет осторожненько разузнать, а как же старшие товарищи узнают где она ачьком светит, что её ебут так часто почему память течёт. Ладно, манька, сжалюсь:
1. Подбирай пролапс из штанины. 2. Вытирай гавняные молекулы рукой. 3. Гугли tracemalloc, cProfile и pstats.
>>2674409 А это ты проласпозависимый вкатун, сразу не признал. Вижу ты всё ИТТ позоришься, ну добро добро. Без колунов вроде тебя тут наверное было бы скучно.
>>2673806 В том то и дело, что ООП это коммерческий стандарт. Его изначально "создавали" если так можно выразиться с прицелом на Кабан Кабаныча, чтобы он мог легко кодомакакау пидорнуть и другую на её место посадить без ущерба для себя. Это такой конвейер Генри Форда только в айти.
>>2674757 >его изначально "создавали" если так можно выразиться с прицелом на Кабан Кабаныча ЯПы и дохуя каких либ тоже, до этого айти нахуй никому не нужно было кроме институтов всяких где ни о каких бест практисах никто даже не думал.
Заморочился получить инфу что качает торрент, подключил WebUI, в браузере всё работает, нашел вот такой код как это реализовать на питоне, но он валит ошибками в самой библиотеке: https://github.com/LakithaRav/uTorrent-client-python
Сууука, чатгпт таки исправил чужую библиотеку: >>2674982 Я только ставил маркеры и кидал ему коды ошибок, я в ахюе, усё пашет.
Вот его ответ, всю чужую мусорку исправил:
Ошибка "name='GUID', domain=None, path=None" может возникнуть, если ответ на запрос на получение токена не содержит cookie с именем GUID. Возможно, сервер не отправляет этот cookie в ответе или он называется по-другому.
Для исправления этой ошибки можно попробовать изменить код таким образом, чтобы он проверял, есть ли нужный cookie в ответе, и если нет, то искать другой cookie с другим именем: далее простыня
Здесь вместо response.cookies['GUID'] используется response.cookies.get('GUID', None) or response.cookies.get('guid', None). Таким образом, если cookie с именем GUID отсутствует, функция будет искать cookie с именем guid. Если и его нет, то переменной guid будет присвоено значение None, и в дальнейшем функция вернет словарь cookies со значением None вместо 'GUID': None'.
Что за хуйня тут происходит, почему вывод комманд разный? Я думал по дефолту там синтакс
>[start: end: step] в Python означает следующее: >- start - начальный индекс выборки (по умолчанию 0); >- end - конечный индекс выборки (по умолчанию длина строки или списка); >- step - шаг выборки элементов (по умолчанию 1).
>>2675036 Лустачка не зьмяшчае сымбаль з канчатковым індэксам, у тваім выпадку s[0] = 1. Калі не указваеш гэты індэкс, у лустачку ўваходзіць усё да хваста радка, то бок да s[-11]
>>2661284 (OP) Работаю в одной рашн галере Инсайд инфа от HR-а и даже руководителя офиса: сейчас на рынке серьезный провис на питонистов, многих людей на бенче никак не могут пристроить на проект ФСЕ
>>2675327 Нахуй не нужны никому. По сути, популярность питона организована искусственно (да и он максимально упрощён для разметчиков данных с маленькими мозгами).
1. Отрасли надо было организовать вкат миллиона хомяков с надеждой, что часть из них пойдёт дальше. 2. Сильно раздували МЛ, давая глупому быдлу ощущение, что они тоже приобщены (хотя, матмодели программируют на С совсем другие люди с очень сильным интеллектом и дорогим обучением — питонисты только это применяют, как макаки подбирая коэффициенты в уже готовое).
>>2661284 (OP) Господа программисты и стремящиеся, подскажите пожалуйста! Как эффективнее работать с большими json-ответами? Допустим, я хочу застримить с бинанса примерно 1050-1150 тикеров, да так, что бы потом иметь возможность быстро посчитать то, что мне нужно, до следующего обновления данных через стрим. Примерно раз в 0.9 секунды. Как это лучше сделать? Я сделал тупо, и попробовал сразу через json.loads, а потом перевёл в пандасы, потому что так считать удобно. Но мне кажется, что можно сделать лучше. А как, это я хочу узнать у вас.
Аноны, some_random_init это список рандомных целых чисел. В этом выражении выше получается упорядоченный по возрастанию список. Значит в момент преобразования сэта в список происходит его сортировка? Чому про это нигде не написано?
>>2675380 Для начала попробуй заменить стандартную либу на orjson, если не устроит, то остается только сделать воркеры через мультипроцессинг, делать запросы из них и отправлять в мейнтред
а вот насчёт мультипроцессинга я планировал использовать мультипроцессинг для получения обновлений статуса тикеров через спот запросы я собираюсь проверять наверное раз в 30 секунд - 1 минуту статусы тикеров, что бы они были торгуемые, TRADING и MARKET, и там ещё по некоторым характеристикам
просто использовать мультипроцессинг для создания постоянно обновляемой таблицы я не могу даже представить как нормально сделать, потому что это получается нужно: 1. подключить несколько стримов 2. получить часть данных из списка тикеров через каждый стрим 3. свести всё это в одну таблицу 4. посчитать то, что мне нужно 5. и поставить ордер на покупку/продажу в соответсвии с расчётами 6. и всё это сделать за примерно 0.9 секунды
Я не профессиональный разработчик поэтому могу ошибаться.
>>2675547 Два вопроса, один, какова хуя? Второй вопрос, а что можно прописать этой мрази, чтобы она заканчивала включительно? Или это возможно только с синтаксическим сахаром с пустым местом вместо аргумента?
Зеленые вы мои Когда вам нужно что-то посчитать то всегда задавайте вопрос: как бы настоящий гошник это посчитал? В гохе всегда все минимализировано и оттого пиздато. У гошников самые высокие зпки в беке. У гошников самые большие члены. Все не просто так
Аноны, как узнать длину отрезка, если его значения могу быть отрицательными. Детализирую вопрос.
Вот есть точка А:-7 и есть точка Б:20 Расстояние между этими точками: 27 Тут просто, можно взять например модуль abs() каждого числа и сложить, но нужен полиморфизм нах.
Если А:-7, а Б:-5 то расстояние между ними равно: 2 Если А:20, а Б:-15 то расстояние между ними: 35
Как это всё можно считать одним каким-нибудь простым методом или уравнением?
Таки выходит, что работу чисто на Пайтоне не найти, т.к. основные сферы применения это BigData и Девопс, самозамкнутые области, куда без специфичного опыта не пролезть. На нем только задачки хорошо решать алгоритмические.
>>2675568 >Два вопроса, один, какова хуя? Добро пожаловать в мир сиподобных языков. Тут принято начинать отсчет с 0, а не 1, но при этом не включать в диапазон верхнюю границу диапазона. В джаве, например, это будет выглядеть так: String s = "1234567890"; String ss = s.substring(0, 5);
Меня иногда удивляют такие >>2675892 кадры Потрать ты, блядь, 10 минут на документацию, которая идёт в любой книге второй главой или в любых видеоуроках четвёртым или пятым видео, где всё разжевано по 10 раз, но хуеплёт будет пиздеть на язык и на всё, что угодно, только не на свою лень.
>В сиподобных языках нет ничего подобного Ну так в си-подобных языках это делается через for, а в питоне нет си-подобного for.
Срезы были ещё в фортране и алголе до с, лолка, только в первом вместо квадратных скобок круглые.
А ещё есть глобальная функция slice (как и в других языках, внезапно), которая позволяет создавать объект среза как параметр для оператора взятия индекса: slc = slice(0, 1, 10) a = s[slc]
>>2675861 Это чистая математика, для нас слишком сложна. Если хочешь, объясню, что верхняя граница не включается в интервал, и как просуммировать пять чисел.
>>2676104 Ты тупой? Смысл вопроса в возможности написать отображения окна без сторонних библиотек, нахер ты кидаешь ссылку на стороннюю библиотеку, ублюдок?
>>2676104 tkinter — это и есть библиотека. Тот юнош, девственный мозгом и попкой, хочет сам рисовать системное окно средствами питона без библиотек. Сдаёцца мне, это просто невозможно. Всё равно понадобятся системные вызовы, а для них потребуется библиотека.
>>2675947 Двачую, братан, только тот кто работает с С++ может носить гордое звание программиста, а все эти джавапетухи и петухонеры - просто пыль с их ногтей.
>>2676119 С++ — гавнина с хуя твоего папаши. Настоящий язык программирования — это (в моё время Алгол-68) Ада. На нём великие люди небесные колесницы программируют.
>>2676142 Но хуже божественных скобочек. Есть идеальный язык программироваия, С++, и всё остальное - либо жалкие копии, либо богомерзкая хуйня. Питон - убогое кривое говно мамонта, которое никому не нужно и на котором нет никакой работы вне ML.
>>2676143 А, это ты тот трясущийся мамкин сисси-гидроцефал, освоивший Вижуал Бейсик в объёме 3 страницы и выдающий себя за знатока непонятного языка, за синим ачьком которого идёт отчаянная охота всех маститых мэтров ИТТ треда, начиная от мисье Пузырька и заканчивая Бульба Калом?
>>2675380 >>2675383 >>2675471 Я разобрался. Он стримит всё, но только апдейты. Если по тикеру не было движения за последнюю секунду, то он его не показывает.
>>2676455 >плюсы генераторов Какие блять?)) Генераторы используются либо для экономии памяти (отложенные вычисления) либо для многозадачности (в основном в виде сопрограмм) Ни о какой экономии памяти там не идет и речи. О многозадачности тоже. Челик там просто лепит генераторы по принципу "а че?? мне так кажется что красившее"
Что будет с чем после следованию советам петушка из хабр-поста: Читаемость - снизится Производительность - не изменится (на больших выборках даже упадет) Отлаживаемость - снизится значительно
Пишу класс для работы с API. Каждая функция - вызов. Вижу, что код избыточен. Ок, оборачиваю в одну функцию и становится изящнее. Но что насчет динамического созданий функций? Есть магическая __getattr__, ок. А если мне нужно еще и передать в неё параметр, кроме имени? Мне кажется, что по любому уже все придумано.
>>2661284 (OP) Привет! Нужна помощь джангистов или причастных. А чем вы бэкапите базы данных? Речь про sqlite Попробовал django-dbbackup - и у меня не вышло. Он вроде как что-то бэкапит, даже через крон, но восстановить базу данных (через dbrestore) не получается. Я что-то делаю не так? Или есть какие-то более проверенные и популярные варианты?
>>2661284 (OP) Вассап программич. У меня возник вопрос касаемо ботов: как создаются боты в теллеграмме? Я имею в виду пользователей-ботов в телеграмме, которые наполняют канал как серая масса. Я в этом вопроссе ньюфаг, если можете подскажите что изучать/куда направиться .
>>2677606 Есть апи для ботов (api telegram bots), есть апи для юзерботов (ещё называют api telegram client). Под оба есть свои фреймворки. Под юзерботов — это telethon и pyrogram. Только под каждый инстанс придётся регаться на отдельный номер телефона.
>>2665817 >тебя всё заебало и ты понимаешь, что вертел ты на хую в тысячный раз писать один и тот же код для новых клиентов В чем проблема шаблоны делать?
Блять, какая мудацская новая капча стала, так сложно. Я минут пятнадцать пытался понять хуле ей от меня надо и нужно ли писать в ней знак вопросика посередине или нет. А оказалось что капча составляет слово, а под вопросом понимается буква этого слова. Я вам че Вассерман чтобы такую хуйню решать?
>>2677657 А что за скрипт? Ну, мне бы для начала эту бд как-то из контейнера вытащить, а, как я понял, это нельзя сделать просто так.», нужно именно специальной приблудой копировать.
>>2677336 Если я делаю бэкап командой dumpdata --exclude auth.permission --exclude contenttypes То у меня все работает Только вот есть один момент, я пока что не знаю, как засунуть это в крон Почему-то call_comand не работает с аргументами
>>2678234 Ну... вапще да, канеш, можно и без иф лишнего. Тут дело в том, что ты из функции хуй пойми чё возвращаешь. По идее, ты возвращаешь nums[последний] и nums [минимальный]. И нихуя с этим не делаешь. У функции своё пространство переменных и она ничего с глобальным списком не делает буквально.
Гайс, нужен ли ІELTS для работы удалено на западные компании? В вузе есть бесплатные курсы ІELTS, в будущем планирую работать на зарубежную компанию удаленно, я знаю англ на среднем уровне, но про тест хз, если он не нужен для работы, то время не хочу тратить.
Гайс, нужен ли ІELTS для работы удалено на западные компании? В вузе есть бесплатные курсы ІELTS, в будущем планирую работать на зарубежную компанию удаленно, я знаю англ на среднем уровне, но про тест хз, если он не нужен для работы, то время не хочу тратить.
>>2678248 >в будущем планирую работать на зарубежную компанию удаленно Осилишь конкуренцию с индусами и вьетнамцами, которые подчас на голову выше наших няш-гидроцефалов с кусрами па петону за спиной.
>>2678262 С каких пор ты монитор, гидроцефал в чулочках? Таблетки что ли сменили? Или у вас с папкой новая игра «проткни монитор» по пятницам, когда он нажирается? Сгинь к хуям, чючило, бля, не жужжи.
>>2677708 то есть нужно изучать API направление? И для каждого клиектского бота нужен телефон ? Это что получается 500 ботов -500 номеров ? Где я сток найду?
>>2678310 >то есть нужно изучать API направление? Нет, выучи одну библиотеку. Наверное, пирограм лучше.
>Это что получается 500 ботов -500 номеров ? Где я сток найду? Жопкой торгани. Твоя нужда — твои бабки. Тем более, ты засрать что-то хочешь, раз 500 ботов потребовалось. А это осуждаемое.
>>2661284 (OP) Подъебнули на собесе и задали следующий вопрос:
Структура range в Питоне вообще-то не является генератором, это отдельный объект, можно убедиться сделав следующее: 1_000_000_000 in range(1, 10_000_000_000)
И он посчитает почти мгновенно, потому что итераций нет и range сам определяет, попадет указанное число в диапазон или нет. Напишите свою реализацию подобного алгоритма которая работает с числами: def (target, start, end, step)
И чет я завис. Как это решать? Тут по факту метаматематика а не проганье даже
с помощью селениума паршу пару сайтов и на каждом сайте несколько однотипных ссылок, но один сайт постоянно по однотипным ссылкам выдает разные типы страницы (Т.е. Ссылка одна, а контент на сайте может быть одним из 3трех типов). Запускаю парсер и сам в браузере смотрю - страничка одна, потом парсер перезапускаю и страничка уже другая, и так рандомно
Проблема в том, что элементы не тасуются, это просто другая страница. На них отличается контент (какая-то инфа появляется, какая-то пропадает), ксс и xpath естественно эту ебалу не берут, приходится писать лютые костыли-проверки и разные парсеры под каждый возможный тип.
Но прикол ещё в том, что в обычном браузере (не селениума) страничка всегда однотипная, че за хуйня ваще как с этим бороться?
>>2678405 Чтобы создать функцию, которая будет проверять, попадает ли указанное число в заданный диапазон без создания итератора, мы можем использовать математические операции. Для этого достаточно определить, находится ли указанное число между начальным и конечным значением диапазона, и находится ли оно на соответствующем шаге.
Вот пример такой функции: def is_in_range(target, start, end, step=1): if step == 0: raise ValueError("step cannot be zero") if step > 0: return start <= target < end and (target - start) % step == 0 else: return end <= target < start and (start - target) % (-step) == 0
Эта функция принимает четыре аргумента: целевое число, начальное значение диапазона, конечное значение диапазона и шаг (по умолчанию равен 1). Если шаг равен нулю, функция возбудит исключение ValueError.
Для проверки, находится ли указанное число в диапазоне, мы используем операторы сравнения и деление с остатком. Если шаг положительный, мы проверяем, находится ли число в диапазоне и находится ли оно на нужном шаге, используя операторы сравнения и деление с остатком. Если шаг отрицательный, мы делаем то же самое, но сначала меняем местами начальное и конечное значения диапазона.
>>2678311 нет, думал создать телеграмм канал, но для старта нужно относительно много подписчиков, а в пустые каналы где 100-200 человек, мало кто пойдет
>>2678405 range это генератор, просто для провеки вхождения итерация или генерация не нужна. Что там релизовывать хуй проссышь, по-моему, даже в нубских книжках такие задачки есть.
Ладно, это не генератор, тут сиранул, но и не итератор, это отдельная хуйня вообще. Берем iter([1,2,3,4])[1] и хуй, рейндж может в такое и поиск как выше писали там не поэлементный, а логический. Это навскидку.
>>2678405 Похоже какой-то хуетой занимаются на этих ваших собесах. Нет чтобы просто посмотреть твой гитхаб чего ты там накодил и как пишешь, чтобы понять твой уровень понимания предмета и языка, а потом на основании этого что-то спрашивать, если вопросы остались. Вместо этого какие-то КАВЕРЗНЫЕ ВОПРОСЫ задают, "что тяжелее пуд сена или пуд железа", "вилкой в глаз или в жопу раз"? Зачем кодомакаке вообще знать такие подробности, достаточно просто понимать суть range, что оно делает и основные места его применения, а если будет ситуация УЗКОГО МЕСТА, где надо байтоебить то я, как макака без опыта, в любом случае полезу в доки смотреть что-там по О-нотациям. А если нет УЗКОГО МЕСТА то и нахуй не надо это знать. всё равно инфа без практики быстро забывается.
>>2678891 >Нет чтобы просто посмотреть твой гитхаб чего ты там накодил и как пишешь, чтобы понять твой уровень понимания предмета и языка, а потом на основании этого что-то спрашивать, если вопросы остались Многие разработчики в гитхабе имеют либо нихуя либо просто очень простые проекты что бы технологию пощупать. Плюс ты мог это просто спиздить с чужого аккаунта поменяв название переменных.
>Зачем кодомакаке вообще знать такие подробности, достаточно просто понимать суть range, что оно делает и основные места его применения, а если будет ситуация УЗКОГО МЕСТА, где надо байтоебить то я, как макака без опыта, в любом случае полезу в доки смотреть что-там по О-нотациям. Что бы ты в коде не делал самописные проверки вместо достаточно удобных практик. А вообще так можно про любое место на собесе сказать "просто посмотрю в доке"
>А если нет УЗКОГО МЕСТА то и нахуй не надо это знать. всё равно инфа без практики быстро забывается. Не совсем, я про range один раз слышал, но запомнил, как и про вынос методов в отдельные переменные что бы ускорить выполнение, хотя ни разу не применял, необычные детали запоминаются очень хорошо.
>>2678899 >как и про вынос методов в отдельные переменные что бы ускорить выполнение Это как? Вот есть у нас self.method(), если я сделою hui = self.method() И потом буду hui() вызвать это будет быстрее выполняться? Хуйня какая-то лишняя операция присвоения, и трата строки на то чтобы переложить пустое в порожнее.
>>2678991 и я ни в коем случае не говорю, что теперь надо срать этим по всему коду. но это реально нужно в функциях, которые по 5 миллионов раз в секунду вызываются
Дайте пожалуйста совет по дизайну апы. Предельно абстрактно: Есть данные, которая может быть в разных форматах. Реализую для каждого из формата свой ридер-класс со стандартным интерфейсом. При этом сами форматы довольно различаются, но из любого из них я энивэй могу извлечь нужные мне данные для даунстрим анализа. Есть несколько форматов, в которые также планирую записывать - реализую по функции для каждого из них. На уровень выше делаю класс, который оборачивает рутину по чтению/записи (условный метод рид - обмазан метод диспатчем по типу ридера), делает первичную обработку нормализацию осей на основе референса, но это в принципе неважно, извлекает/воссоздает как-нибудь нужную метадату, и когда все что надо сделано, возвращает инстанс другого класса, с которым уже можно как-то работать, делать нужные анализы, выдавать конечный результат и так дальше. Ну и офк у меня отдельные модули лежат для того, чтобы делать разные этапы и разные вариации анализов, здесь все достаточно удобно и логично сегрегируется и никаких вопросов нет. Для упрощения понимая шизойдной простыни смотри прекрасную мермейд схему ручной работы. Так вообще норм в петухоне делать? Я замарачиваюсь с отдельными классами под ридеры, потому что ожидается, что регулярно будут высираться новые форматы, и хотелось бы максимально упростить потенциальную дрочьбу в будущем с их чтением, что я и делаю путем создания стандартизированного интерфейса. Пока просто есть какой-то привкус жавы особенно явно бы ощущался, если бы я заменил функцию райтера на класс со статик методом., и ощущение, что излишним сегрегированием процессов я делаю какой-то физбаз-ентерпрайз. У коллег по цеху лютый кал с костылями, обходящие разные форматы, и все объединено во вложенные мастеробъекты. Ну и на текущий момент, у меня все это реализовано в виде бэйзик-лайк жупутеровской тетрадки, так что выбора у меня, кроме как сделать все нормально, просто нет.
Если можете сказать, в чем я не прав, буду благодарен. Еще буду очень благодарен, если направите меня на какие-нибудь гайды с бест практисами по дизайну пакетов/приложений на петухоне.
Кто пользуется redys-py asyncio, подскажите пжлст. Делать connection pool для всего проекта как global var и дергать подключений оттуда или лучше просто вызывать экземпляры Redis (знаю что внутри он сам создаёт пул в таком случае). Или создать один экземпляр Redis на проект как global var? И как пользоваться самим экземпляром Redis? Через контекст менеджер или без него? В доках через контекст менеджер он не используется, но методы aenter и aexit есть... Я не хочу явно вызывать .close() и не знаю надо ли это делать вообще..
Аноны смотрите: if any(dct["key"] == _p for _p in all_that_shit_nigga):
dct["key"] в данном случае будет браться из словаря для каждого сравнения с элементом из списка или он возьмется один раз в начале? Хочу знать нужно его в отдельную переменную выносить для такого случая.
>>2679394 Все так, но опять же, некоторые особенности некоторых языков, делают использование определенных паттернов лишними, либо сильно ограничивают их использование. Тут еще важно понимать, что из-за того, что я на расте долго работал, я перестал наследование воспринимать все правильно, наследование кал, и для меня дико выглядит двухслойное наследование интерфейса. И, если рассматривать предлагаемую схему отправки сообщений в основной статье, то сразу возникает желание вместо декорирования, просто закинуть разные типы мессенжеров в очередь исполнения, и запускал бы все ей. Но это конечно из разряда "поговорил с учебным примером". Ну и развивая мысль про ненужность и ограниченность паттернов. Какой-нибудь синглтон или пул просто не нужен в питоне да и нигде этот вафлепаттерн не нужен, будем откровенны, и его делать приходиться не самым очевидным пердолингом через метаклассы какие-нибудь. Так что можно считать, что синглтоны язык порешал.
Это Django settings.py BASE_DIR = Path(__file__).resolve().parent.parent Откуда __file__ берётся? И как BASE_DIR так хитро используется? 'NAME': BASE_DIR / 'db.sqlite3',
Что быстрее поиск ключа в словаре из 100 значений или поиск элемента в списке из 100 значений? У поиска ключа сложность О(1), но она сама по себе большая. Вот думаю перекатывать такой лист в словарь. Просто надо будет в нем 1 из 100 значений искать тысячи раз.
>>2679459 Засеки. Но вообще, если тебе известна нужная позиция в списке, то искать будет быстрее чем за О(n) потому что в петухоне лист - это массив ссылок. Если тебе нужно будет сравнивать значения для поиска нужного элемента, то все зависит от того, насколько сложно происходит сравнение.
>>2679456 Дурында, эти скобочки квадратные вызывают имплементацию __getitem__ для даннного класса, это называется subscription. У листа свой (там как раз указатель, ибо это array объектов питоновских), у дикта свой. Т.к. дикт это хешмап, то считается тот самый хеш для забора значения.
>>2679430 __file__ - унутраная службовая пераменная пітона, шлях да бягучага файлу. BASE_DIR - канстанта ў Джанге, шлях да галоўнай дырэкторыі праекту. Ня бачу ніякіх хітрыкаў у яе ўжыванні: BASE_DIR / 'db.sqlite3' - шлях да файла базы дадзеных. Перад ім NAME - уласцівасць аб'екту змяшчаючага наладкі БД.
>>2679423 Вартасць узораў праектавання ў тым што іх усе ведаюць. Нават той жа singleton - калі да праекту далучыўся новы чалавек што пісаў іншай мовай, ён бачыць сінглтон і адразу разумее што гэта, як працуе і навошта.
>>2679282 Декоратор - это интересная идея. Но мне тут (тем более на текущем этапе) нет особого смысла инжектить и тем более стакать поведение Декоратор, к слову, юзаю для даунстрим анализа, там он прям норм ложится, учитывая душность и обилие шагов предобработки. На той схеме `wraper_cls` это фактически гигадаптер с дополнительным утилити методом для записи файла на диск, и методом для гармонизации. Ну я в принципе понял теперь, что я не настолько уж и херовую вещь делаю. Энивэй, спасибо за помощь.
Посоветуйте какой-нибудь линтер с хорошими проверками сложности кода. Из адекватных видел линтер от wemake.services, но там помимо годных проверок на сложность, которые, правда, не всегда конфигурируются адекватно, есть куча васянского вахтерства. В идеале, чтобы это был плагин на флейк, в котором собраны все проверки на сложность и ничего больше.
>>2661284 (OP) привет, помогите пожалуйста, уже голова болит
У меня небольшой проектик на телеграме с парсером, который по таймерам постоянно выполняет ряд функций (парсинг, обработка, запись, и.т.д.)
Так вот вопрос - как реализовать чтобы при получении сообщения с телеграм бота все эти функции прерывались и возобновлялись только после обработки сообщения с бота?
>>2680188 потому что ты сначала принтаешь айдишник а потом меняешь значение var. Т.к. у тебя 2 переменные равны друг другу то айдишник одинаковый. Когда значение становится разным (var +=20) то айдишник var меняется. поменяй две строки местами и получишь разные айдишники
Хочу всего лишь нажимать на одну клавишу в одной игре. Почему это удаётся в Блокноте и где угодно ещё, но не в самой игре, хоть в оконном, хоть в полноэкранном режиме? https://pastebin.com/T9201SuC На плюсах пробовал сделать, та же хрень. Срабатывает один раз, когда фокус переходит на окно игры, и всё на этом. И через win api с выбором конкретного субэлемента окна тоже делал, не работает. В каком направлении вообще можно копать?
>>2678891 >Нет чтобы просто посмотреть твой гитхаб чего ты там накодил и как пишешь, чтобы понять твой уровень понимания предмета и языка, а потом на основании этого что-то спрашивать, если вопросы остались. Тащемта смотреть на опенсорс при устройстве на галеру, где будешь писать клозед сорс - максимальное лицемерие.
>>2678405 >И чет я завис. Как это решать? Тут по факту метаматематика а не проганье даже чисто проганье. Тебе надо знать, что существуют такие возможности, как перегрузка операторов, что угодно ты можешь определить, в том числе оператор in смотри на метод __contains__
>>2681462 Traceback (most recent call last): File "C:\Users\user\Desktop\test1.py", line 1, in <module> from forms.main_form.ui import ClassName as cn ModuleNotFoundError: No module named 'forms.main_form'
Да блять почему расширение *.ui.py не понимает-то????
Всё же ООП рулит. Подумал как это скрипт мне запустить в другом файле нормально и это была прям попаболь, пока он был написано без класса, решил записать через класс и теперь просто изично. Буду и дальше практиковать писать чисто на ООП
>>2681498 Первый раз в жизни попробовал написать программу с больше чем ордним файлом? При чём тут ООП? Это можно сделать просто написав функцию и вызвав её в другом модуле.
> != None > складывает строки в цикле Ты базовые вещи сначало изучи
Как импортировать файл из папки forms. Файл main_form.ui.py ???
Выдаёт ошибку:
Traceback (most recent call last): File "C:\Users\user\Desktop\test1.py", line 1, in <module> from forms.main_form.ui import ClassName as cn ModuleNotFoundError: No module named 'forms.main_form'
Так, анончики, поясните мне такую аномалию. Оператор or возвращает True только если один из объектов заданных в условии является True. Вот я задал условие, что если один объектов истинный, то он возвращает один из них:
inp=input('Введите 1 или m: ') if inp=='1' or 'm': print('Huy') #любой элемент через input возвращает True else: print('Jopa')
А если так, то: ke='1' or 'm' inp=input('Введите 1 или m: ') if inp==ke: print('Huy') #возвращает только единицу, при вбивании "m" или любого другого значения возвращает False
Через And тоже какая-то хуйня ke='1' and 'm' inp=input('Введите 1 или m: ') if inp==ke: print('Huy')
Возвращает Huy только с "m", а мне нужно чтобы возвращала или-или
Кто назвал в пандасах функции read_x to_x вместо того чтобы назвать read_x write_x или from_x to_x того труба шатал, пиздос как бесит, забываю как надо.
Нужен совет касательно следующей дичи. Я делаю симуляцию Монополии на Python. Основной целью проекта является сделать Reinforcement Learning агентов в качестве игроков, чтобы они с нуля научились играть и нашли оптимальные стратегии. Сначала делал через Q-Learning, но проебался. По итогу, нашёл подход с использованием Monte Carlo Tree Search, который как мне кажется подходит больше, но в душе не ебу как реализовать его в в моём проекте. К примеру, что именно передавать агенту как state чтобы он мог делать какие-то стратегии. На руках уже имеется готовое окружение, рабочие карточки Шанс и Общественная казна, оплата ренты, постройка домов и прочее. Единственное думаю выкинуть механику аукционов на хуй.
>>2682030 Логично. Конструкция из or всегда возвращает первый элемент, а из and последний. А как сделать то, чтобы либо 1, либо m было при введении в input?
> Оператор or возвращает True только если один из объектов заданных в условии является True. Ноуп. or возвращает первый истинный элемент или просто последний элемент.
>inp=input('Введите 1 или m: ') >if inp=='1' or 'm': Вангую, что ты хотел тут логику типа > if inp in ('1', 'm'):
>ke='1' or 'm' Хм-м. Вангую: >ke=('1', 'm')
>>2682111 >Конструкция из or всегда возвращает первый элемент, а из and последний. Нет, and - возвращает первый ложный элемент или последний.
>>2682164 >ke=('1', 'm') Да! Это именно то, что я и хотел. Спасибо. >or возвращает первый истинный элемент или просто последний элемент. >and - возвращает первый ложный элемент или последний. Щас проверил, бля, внатуре d=0 or 1 or 2 1 d=1 and 0 and 2 0
>>2682153 Это очень старый скрипт, который я писал чуть ли не в самом начале. Решил его прикрутить к другой программке просто для теста, переписал по быстрому, там говнокод был куда хуже ещё даже.
Хотел бы сделать так, чтоб из модуля(ака package) в файле датабейз можно было добавлять новые функции к тому датабейз что выше: > main.py > database.py > module_a/ > __init__.py > database.py Плюс как я вижу в том, что всё для модуля хранится в модуле, а не размазано по всему проекту.
По самой реализации: main.py импортирует и запускает module/database.py, который в свою очередь импортирует и database.py и добавляет в него свои функции и переменные. Всё остальное что использует database уже имеет дело с модифицированной его версией.
А вопрос собственно вот в чем: насколько это зашкварно(я ни разу не видел чтоб так делали) и какие подводные?
>>2682277 Ладно, хуйню написал. Внезапно лучше имплементировать бд для модуля в модуле и импортировать эту бд, раз у меня в принципе все функции не особо завязаны на конкретно тот датабейз на верхнем уровне.
>>2682175 >Щас проверил На пике ещё веселее. Это, кстати, надо иметь в виду, потому что можно наебаться с типами. Зато даёт некоторый простор, например, для эф-строк Капча релейтед.
сап програмач, правда ли что можно вкатиться в веб приложения на питоне очень быстро(за полтора-два месяца) и найти первую работу? Если нет, подскажите куда можно за такой период чему то научиться и начать зарабатывать, только законное.
>>2682387 >за полтора-два месяца >куда можно за такой период чему то научиться и начать зарабатывать Вкусно и точка, курьер, охранник. Если права есть — водитель. Можно помощником слесаря, плотника, столяра, токаря, сантехника вкатываться, потом самый низший разряд получить. Есть вариант — золотари. Вечная тема. Только бочку арендовать.
>>2682387 Учи php и html, а не Припон тогда, если хочешь быстро. Я задрачиваю в Питон по 4-8 часов в день на протяжении 4 месяцев почти без перерыва и освоил только процентов 5% от всей базы. Могу текстовый квест через ООП написать или программу типо магазина без подглядывания в букварь каждые две минуты, а парсер какой-нибудь самостоятельно с нуля уже хуй осилю.
>>2683150 С нуля язык так и учат. Плюс, надо решать десятки примеров по каждому выученному параграфу. Иначе ты будешь таким же пидарасом как местный ляцвин, тупое существо, почти скот.
>>2683150 >Что можно там 4 месяца учить по 8-6 часов? А можно ли выучить Питон полность? Все библиотеки, весь функционал, все возможности? Наверное от балды сотник книжек всякие непонятные дядьки по Питону пишут, воду льют из пустого в порожнее. Во ебланы! Не то что дядя Федя с двача. >парсеры за вечере на читая статью на хабре можно написать. Так любой может и я могу, а ты попробуй без подглядел в документацию и копипастинг из гитхабика.
>>2683301 >Ні ў воднай мове праграмаваньня не вывучаюць усе бібліятэкі Ну так естественно, потому что это невозможно. >толькі тое што спатрэбілася А если спатрееблися сделать что-то, что могло бы облегчить твою работу, а ты даже не подозревал о существовании такой фичи?
>>2684107 Ну вот попробуй для прикола импортировать 2 файла (любые) py, но с расширением с точкой. Или чтобы в названии были точки. Ну как ещё сказать.
>>2684479 Для себя поясни, человек дождя. Zalupa.ui - так должен выглядеть ui файл. Zalupa.py - так должен выглядеть py файл. У тебя Zal_upa.ui.py - в файле должна стоять только одна точка; перед расширением. А у тебя их две - одна в имени, где ее быть не должно, а вторая перед расширением, там где она и должна быть. По-этому import и не импортирует, он читает файлы с точками в имени, гуманоид ты тупорылый. Zalupa_ui.py - вот как оно должно выглядеть.
>>2684522 Та нет, О, Двуликий Анус!!! файл я же сказал - ПОСЛЕ ОБРАБОТКИ ЧЕРЕЗ компилятор pyuic6. После того, как кайлы перекомпилируются - их имена становятся типа frm_mainhuy.ui.py И внутренности у них (для тех даунов кто даже это не знает, а знает только джанко и прочую онлайн-поебень!) - типа портянка класса ui-form и внешнего вида.
>>2684522 файлы, если не ты в курсе, могут называться makaka.ebala.svoyu.pipisku.txt Или ya,piton.v.rot.vstavil.chto.budet.py И это _легальные_ имена файлов в файловой системе. Я вот о чём.
>>2684561 >ya,piton.v.rot.vstavil.chto.budet.py Тогда импортируй такой файл через интерпретатор. А ещё лучше анус свой импортируй в Нигерию, чтобы тебя макаки драли, потому что даже макака больше поймет, чем ты, ебанушка.
Кароч, тупая срань на доске, у меня две точки в названии файла, фалов 105 штук. Быстро мне, скоты, сказали, как их импортировать в виде модулей. Готовый код.
Создал новый проект, ибо было нужно нормально виртуалку поставить, перетащил туда файлы из другого и в итоге не работает проверка модулей, установлены они или нет, какие классы там спрятаны и методы тоже не находит толком
Причина, по которой хэш-функция Python возвращает -2 вместо -1, заключается в том, как она реализована в CPython. Для отрицательных целых чисел хэш-значение может быть отрицательным, поэтому CPython добавляет 2^64, чтобы сделать его положительным. Однако для -1 результирующее значение является наибольшим возможным целым числом, которое зарезервировано для коллизий хэша. Поэтому вместо этого CPython возвращает -2.
>>2661284 (OP) Господа, подскажите пожалуйста. А вообще возможно, в принципе, на питоне сделать следующим образом? 1.Запустить стрим данных, например с бинанса. 2. С помощью мультитрединга, каждые, например 15 секунд, делать обычный реквест запрос на этот бинанс для получения данных, которые я не могу получить через стрим, но не прерывая стрим. 3. Использовать обновленные полученные данные из простого реквест запроса в функции, которая вызывает стрим, но самое главное не прерывать стрим данных.
>>2685946 А что нет то. На питоне можно почти всё, главная его проблема, что это почти всё может быть от 5 аж до 100 раз медленее, чем на C++ условном.
>>2685958 Я спрашиваю, потому что я не профессиональный программист) и не хочу изобретать велосипед или решать нерешаемые задачи гораздо эффективнее спросить опытных людей
>>2685934 Можно, но нужно тред-сейф структуры использовать, потому что обосраться как нехуй делать. Еще можно асинхронность попробовать, но там другие подводные
>>2685978 Ну асинхронность под его задачи вряд ли подойдёт.
Нужно разбивать задачи на несколько потоков, что бы после ещё и получать сигналы от этих потоков не прерывая их. Асинхронность это всё тот же один поток, где функции просто тормозят своё выполнение, если ничего пока не делают и дают порулить другим.
>>2685978 >>2685972 ну вот например, мне бы и в голову не пришло обратить внимание на >тред-сейф структуры я даже не знал, что такое существует, а теперь знаю спасибо!
чатжпт мне про такое не рассказывал
> асинхронность попробовать я размышлял над этим, но потом пришёл к выводу, что я не смогу её нормально воткнуть, мне там неудобно будет выбор был между мультитрендингом и мультипроцессингом
>>2685988 >Асинхронность это всё тот же один поток, где функции просто тормозят своё выполнение, если ничего пока не делают и дают порулить другим. Так стрим обрабатывается батчами/сообщениями, там между ними прирывания как раз, хотя хз какой у него драйвер там и что вообще за стрим
>>2686102 Нихт. Не получается. Думаю сдаться, и всё-таки по-уебански не далать расширение файлов. А сделать как и по-идиотски следует, типа *.py. Жаль конечно. Грёбаный язык не умеет в расширения файлов. Ну что поделать, такой вот он. Не всем везёт.
>>2686102 Нихт. Не получается. Думаю сдаться, и всё-таки по-уебански не далать расширение файлов. А сделать как и по-идиотски следует, типа *.py. Жаль конечно. Грёбаный язык не умеет в расширения файлов. Ну что поделать, такой вот он. Не всем везёт.
>>2686102 Так, анон. Ну ты предлагаешь просканировать директорию. Найти фсе вайлы на . py. Их просканировать, и исполнить (execute) . Ну это решение "в лоб" называется. Я так сам смогу сделать. Можно ли в вашем "петоне" сделать так, чтобы файлы .ui.py смог бы импортировать по-нормальному, без извращений????
Q all! Посоветуйте нетривиальные каналы на ютубе по питону. База вроде есть, хочется посмотреть как нормальные люди пишут код с использованием разных фич языка.
>>2686253 Канал Ержана. Там много базы для смешариков. Но иногда он обсуждает разные интересные пакеты, и сторонние штуки, и некоторые неочевидные вещи. В целом норм фича ревью канал, можно посмотреть вечерком.