Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Прочитал про asynс и тут выясняется, что теперь все библиотеки требуется переписать на событийный цикл. И большая часть их не переписана. В том числе kivy.
Ну нахуя столько хайпа? Какие проблемы синхронизации убирает async ?
>>1676720 >Какие проблемы синхронизации убирает async ? Нет такой проблемы как thread-unsafe, переключение потоков идёт в заранее известный момент времени.
Синхронный код далеко не обязательно пригоден для многопоточности, вот в этом проблема, например.
>рандомному двачеру не верите, так хоть Хабр почитайте Автор путается в понятиях. Асинхронность в питоне ровным счётом не про callback-hell. И они переписывали на java, которая ориентирована на многопоточность. Там автор скорее рассуждает, что многопоточность там хорошая и можно от неё не отказываться.
>>1676759 Чел мне лень разбирать их говнопример, могу тебе сказать что там был торнадо и во вторых с помощью async await легко реализовать PubSub вебсокет например.
>>1676753 Нет так такого посыла, автор смотрел исключительно на треды в java, питон там вообще был не при деле. Просто на питоне был исходный код, который они портировали, чтобы весь код был на java.
На питоне треды вообще смысла не имеют, только в контексте, они выигрыша не дают. Но их можно использовать, чтобы портировать какой-то старый код в тот же асинкио.
>>1676783 у тебя твоя функция job принимает аргумент message, ты передаешь функцию job какой-то хуйне чтобы она эту функцию вызвала, но откуда взять message ты ей не сказал
питон тебе пишет Бля, в метод job не был передан аргумент message
я хз что ты сделать хочешь, но крч проблема вот такая
>>1676892 По специальности дата-сатанист стек соответсвующий, параллельно могу в автоматизиацию разных рутинных задачек (агрегация, рассылка, внедрение моделек в прод), парсинг разной сложности, синтаксический анализ. Веб пока как хобби (пилю интернет магазин для знакомых).
>>1676769 Ну а я прочитал именно так. В конце концов, программисты десятилетиями использовали треды. Откуда эта мода на асинхронность во всех языках одновременно примерно в 2014-2017? Даже в 1с анонсированы асинки буквально на днях. Все решили написать nginx? Так nginx давно написан.
>>1676897 Бро, подскажи что учить и как вкатываться в дата-саенс? Сам я интернет-маркетолог года 3 как, могу в PBI (dax и m), sql на норм уровне, основы статистики. Питон на уровне выгрузки данных из апишек систем веб-аналитики/веба. Пытаюсь подступиться к глубокому анализу данных (решаю задачки с pandas) и машинному обучению, но не знаю с чего начать. Лин.алгебра? Или погрузиться нормально в питон? Или все параллельно изучать? Заранее большое спасибо!
Аноны, дайте список того, что нужно знать и уметь для изучения машоба и комп. зрения. Сейчас дочитал главу про системное программирование у Лутца и задумался: нужно ли оно мне? (Стандартную либу всю проштудировал). Всякого рода офисную хуйню, ботов для телеги и парсеры писать не намерен, мне нужен именно машоб и зрение. Что делать?
>>1677343 >Или ты думал, что можно просто написать: >from data_science import ML >ai = ML.train() >ai.enable_vision() >И тебя сразу возьмут на 300к в наносекунду? на 300к вряд ли, а на килобакс - вполне
>>1677343 Ничего я не думал и 300к мне не нужно. Изучать буду для себя ибо есть идея для стартапа и лучшей реализации кроме как на перечисленом мной я не нашёл.
>>1677076 я ебал такие тренды. однако и ООП и функциональщина обусловлены конкретными проблемами и, как минимум, после спадения хайпа, умеренно обогатили программирование нужными концепциями . с асинком не очень понятно.
Может быть, ситуация когда вся программа представляет из себя набор "критических секций" разделенных await, проще воспринимается, чем треды, где нужна отдельная синхронизация и явный вход в критическую секцию ?
а как в дотнете? мне тут рассказывали что в дотнете есть пул тредов и таск не обязан создавать тред, но может и создать.
>>1677444 мы не понимаем, что ты хочешь спросить. в C# тоже есть async/await. Это нужно при большом количестве запросов на ожидание IO, тысяча таких ожиданий дешевле по памяти и проще в синхронизации чем несколько потоков.
Можно ли не юзать async/await а заебашить через TaskQueue? Да, можно, собственно async/await это обертка над такой очередью EventLoop.
Примером такой задачи может служить ручка, которая собирает ответы из разных сервисов параллельно, то есть делает три параллельных запроса к сервисам, потом собирает ответы в один.
Все это ответ на проблемы возникшие при возрастании нагрузок, обычные 4, 8, ... тредов блокировались и начиналась ебанина с таймаутами, изобретением собственных фреймворков и пр.
Если не понимаешь о чем речь, то постарайся ответить на вопрос: чем многопоточность отличается от асинхронности, чем многопоточность от параллельности, может ли быть асинхронность без многопоточности.
В конце концов, твой вопрос и все невразумительные ответы этот ответ тоже хуйня я понимаю довольно понятны. Даже среди прокаченных разрабов есть спор о том имеет ли вообще смысл такой подход, дает ли он реальных преимуществ? Четкого ответа как писать код - нет.
>>1677526 >мы не понимаем, что ты хочешь спросить 1. в чем реальная выгода async/await помимо строчки резюме? 2. нет ли здесь грандиозного наебалова? Ведь тысячи одновременных запросов среднему бизнесу не достичь все равно. А библиотеки не такое большое число. 3. заменить видео с ретреспективой говнофреймворков и реализаций из шапки, на обучение async в современном стиле. Я такое виде просто не нашел. У всех ретроспектива ненужных подходов.
Не понимаю тех кто не понимает зачем нужен асинк. Не понимаете не используйте. Сядьте и напишите два сервера на асинках и на тредах протестируйте производительность и потребление ресурсов а тогда задавайте глупые вопросы. Тренды хуенды я ебу утята вы.
>>1677607 >1. в чем реальная выгода async/await помимо строчки резюме? А ты хорошо умеешь в многопоточное программирование?
>>1677607 > Ведь тысячи одновременных запросов среднему бизнесу не достичь все равно. Для массовых веб-сервисов - реальное число.
>>1677058 >Откуда эта мода на асинхронность во всех языках одновременно примерно в 2014-2017 Это проекция микросервисного похода проектирования на проектирование конкретного сервиса. Внутри задачи у тебя крутится много подзадач, взаимодействующих друг с другом.
async/await - наиболее читаемая и понятная форма. Хотя и есть споры, что может быть это не самый лучший подход, можно было лучше придумать.
Сам принцип хорош тем, что даёт тебе хорошую читаемость и предсказуемость того, что происходит. Намного проще проектировать, и ты можешь с теми же усилиями проектировать значительно более сложные приложения.
Минусы в том, что параллельно сложно так что-то делать. Есть более сложные подходы, что позволяют совместить потоки и асинхронность.
Мне кажется, что сама идея использовать потоки для обхода блокировки порочна, это костыль. Не для этого потоки нужны. Потоки нужны именно для распараллеливания.
>>1677607 1. не блокировать поток выполнения 2. нет, для того чтобы все встало раком достаточно N блокирующих запросов в N потоках, и это N обычно в районе 9 (число ядер на машине x 2 + 1) 3. если найдешь замени. тут тонкость в том, что те кто уже прогают обучалки не смотрят, а те кто смотрит не всегда выкупают что хорошо, что плохо
>>1677625 все так, анон, про параллельность вопрос в общем случае мы говорим или про питон. Так-то async/await как тренд пошло из интепретируемых языков с около GIL проблемами
## other = asyncio.create_task(api.get('/other')) another = asyncio.create_task(api.get('/another'))
# запросы выполняются параллельно и latency на получение result меньше # + await деблокирует тред и мы можем принять другой запрос
>>1677611 вчера нюфаня, завтра сеньораня. Объясняя что-то ньюфагам ты: 1) прокачиваешь себя, объясняя базовые вещи, лишний раз повторяешь их и лучше начинаешь понимать 2) создаешь коммьюнити епта но троллей кормить тоже не надо
>>1677636 > про параллельность вопрос в общем случае мы говорим или про питон Сейчас тут началось со статьи на хабре, >>1676720 , а там на самом деле не про питон, а про java.
Я никогда реально не пользовался многопоточностью на питоне, потому что она неполноценная, делал в несколько процессов, когда-то очень давно, когда надо было читать из нескольких сокетов, делал через селекты (там вообще в проекте второй питон был). Сейчас пользуюсь асинкио.
Для питона многопоточность заведомо неоправдана. Или процессы, или асинкио.
Но чисто архитектурно, потоки не такая плохая вещь и всё в итоге зависит от реализации машины. Машину МОЖНО реализовать довольно хорошо. На питоне этого не делали, но на некоторых других платформах делают.
Машина теоретически может переключать потоки оптимально. Всегда внутри есть планировщик (scheduler), который решает, на какой тред переключить исполнение. Если планировщик видит, что исполнение застопорилось на системном вызове, то он просто не будет переключать на эту задачу исполнение, пока вызов не разблокируется. Так и в asyncio, так можно делать и с тредами.
Никакой принципиальной разницы в этом. Треды возможно реализовать очень оптимально.
>>1677723 Я же сказал, что когда-то ебашил селекты, сейчас пользуюсь асинкио.
Для питона асинкио оправдан. Треды не оправданы, потому что реализация говно в cython. Хотя есть альтернативы. В любом случае сейчас все библиотеки на асинкио перестраиваются.
Я говорю, что сама технология тредов не такая уж тупиковая.
>>1677625 >А ты хорошо умеешь в многопоточное программирование? внезапно, многие умеют отлично. потому что django использует mysql, а тот вообще-то не теряет данные внутри транзакций и лишь легонько блокирует sql внутри.
>А ты хорошо умеешь в многопоточное программирование? Пиздешь. Их нет. Единицы стартапов долетают до 50 запросов в секунду. А сколько из них не долетит до результата из-за переусложнения?
>Мне кажется, что сама идея использовать потоки для обхода блокировки порочна, это костыль. Не для этого потоки нужны. Потоки нужны именно для распараллеливания.
В дельфи же пример в каталоге examples лежит 25 лет! И нормально было. (хотя я не проверял лежит ли)
Кроме того, пугает объем книги по асинхронному дотнету. она реально большая и автор заявляет, что наконец-то он опишет все как надо, а не через призму устаревших подходов.
>>1677667 >Для питона многопоточность заведомо неоправдана. Или процессы, или асинкио. но ведь единственное, что нужно знать про GIL - просто забудь про GIL.
>>1677750 > внезапно, многие умеют отлично. потому что django использует mysql, а тот вообще-то не теряет данные внутри транзакций и лишь легонько блокирует sql внутри.
>>1677750 >Кроме того, пугает объем книги по асинхронному дотнету Для многопоточного будет ещё больше. Для разработчика async/await отличается только тем, что ты всегда знаешь, в какой момент может поток исполнения переключиться. А в тредах это может в случайный момент времени произойти, из-за чего и проблемы с ними.
Подходы к проектированию многопоточных приложений тоже меняются, в сторону, общую с async/await.
>>1677775 ну ладно. вот задача из носа: как архитектурно реализовать на питоне с помощью, например, aiohttp, серверное приложение загружающее все 16 ядер процессора ? важно чтобы http был с защитой от ddos. Для защиты от ddos, предлагается использовать глобальный хеш ip клиентов с подсчетом запросов в секунду или любую другую глобальную структуру данных.
>>1677813 > этот чел я вас не различаю вы все аноны если ты про
>>1677792 то нет, я не понял что он имеет в виду. Видимо какую-то муть с тем что в таблице mysql менять поле и везде чекать. Каким боком тут async не понятно.
нет, не взял. кмк не так страшно если чувак чего-то не знает, пусть даже важного, намного хуже когда человек выучил какую-то хуйню и теперь ее всем форсит
>>1678078 я другой анон, но тоже хочу освоить какой-нибудь vue.js плюсом к бекенду. Основные причины две: во-первых, лучше понимать, что и как происходит на фронте; во-вторых, иногда нужно просто сделать какую-нибудь страничку с двумя кнопками и напрягать фронтов просто нерационально.
>>1678081 Я вон пока в Django пытаюсь, только вот тоже есть желание выучить азы JS, т.к. понимаю надобность этого. Перед Django выучил азы HTML и CSS, но там ничего сложно. Только вот с JS не знаю как быть, миллионы всяких VUE, Angular и т.д. Какой фреймворк JS актуален и желателен для Django бэкенда начинающего?
>>1678095 Я вот думаю бэк на Django делать, только вот как ты подметил выше, хочется и фронт понимать, всяко лучше, нежели как макака смотреть на код почесывая голову. Если я правильно понял, последовательность должна быть такая: азы JS -> азы Vue, так?
Аноны, пытаюсь постингнуть дзен реста, но никак не пойму как правильно составить URL для регистрации/подтверждения регистрации/авторизации пользователя. Если назвать ресурс users, то на POST можно прицепить регистрацию, но вот другие методы нужны будут уже для выдачи данных. В доках DRF авторизацию предлагают вообще поместить на 'api-token-auth/', но это чет вообще хуево выглядит. Так а как в итоге правильно?
>>1678099 ну в принципе если уже на python пишешь, то достаточно просто почитать на хабре про странности js и по дороге гуглить. Я залетал по книге majesty of Vue.js 2 в принципе все понятно, но я где-то половину осилил, потом не было времени, а ща впадлу прост
>>1678106 как правильно в рест это отдельная дисциплина срачей. Обычно делают так POST /login с телом {"name": ..., "password": ...} в ответ кука-хуюка ну разберешься POST /logout сбрасывает куки-хуюки
Если делать POST /users то возникает вопрос, а что делать если ты уже залогинен? создавать нового пользователя? а если возвращать ошибку то какую? 403? 422?
Пишу, активно используя "типизацию", но с ней код валится из-за циклических импортов. Как с этим бороться? Я бестолково ковыряю sys (modules и path), но ничего не получается. Можно импортить внутри методов, но '->' тогда не работает.
>>1676587 (OP) Пара вопросов насчет графиков matplotlib: У меня есть набор данных DATA, в котором несколько кортежей с данными, я хочу по ним построить набор графиков, по одному на каждый набор dataset:
x = some_function_to_populate_x() for dataset in DATA: ____fig = plt.figure() ____ax1 = fig.add_subplot(111) ____for i, y in enumerate(dataset): ________ax1.plot(x, y, label=f"{i}") plt.show()
То есть по итогу у меня должно получиться некоторое число (равное len(DATA)) отдельных графиков, на каждом из которых нарисованы кривые (в количестве len(dataset)) и каждая кривая подписана порядковым номером в легенде НО: подписанным оказывается только самый последний график, он как бы "затирает" остальные. С хуя ли? (на пикриле пример с двумя графиками)
>>1678246 Попробуй поменять >ax1.plot(x, y, label=f"{i}") на >partial(ax1.plot, x, y, label=f"{i}")() чтобы состояние запоминалось в цикле. Встречал похожую проблему в PyQt
>>1678246 И еще вот что: как "сгладить" (интерполировать) эти графики чтобы получились гладкие кривые? Microsoft Word блин в 2 щелчка это сделать может, а у меня с scipy.interpolate что-то не выходит нихрена (результат тот же, будто ничего и не было). Может это потому что данных по оси x мало? так ведь Word'у тоже много данных не нужно...
Потсоны, как бы вы реализовали протокол сообщения в клиент-серверной настольной игре? Проблема истекает из особенности сокетов и того что я хочу знать сколько реально клиентов подключено, следовательно клиент легко узнает о остановке сервера ввиду его молчания, сервер же не может знать доходять сообщения до клиента или нет. Тогда 2 варианта: клиент должен кидать репорт о получении или сервер должен вести учет входящих реквестов от клиента и если клиент долго молчит значит отключам его по таймауту. Ввиду того что впервые сталкиваюсь с клиент-серверной ебаниной вообще не ебу как наладить их общение. Должен ли клиент каждый раз реквестить снепшоты состояния игры а сервер отвечать, или сервер должен широковещать всем подключенным по "тикрейту". Хз, например окно свернуто и евентлуп игры может быть приостановлен в целях экономии ресурсов а значит и получение изменений от сервера - лишняя нагрузка ио и проц. в игре могут одновременно находиться и игроки и наблюдатели, наблюдателю со свернутым окном нахуй не надо обновляться Я склоняюсь к "ленивому" серверу, который отвечает только на реквесты не нагружает канал и проц своим циклом лишний раз, а тех кто долго молчит отключает нахуй по таймауту. Гуглится в основном ебанина о шутанах лагах тикрейтах и предсказании ходов игроков.
>>1678349 Ты используешь какие сокеты, обычные, или вебсокеты? Я бы в любом случае на прикладном уровне советовал именно вебсокеты.
Есть отдельная проблема с тем, чтобы детектировать мёртвые соединения, как с обычными сокетами, так и с вебсокетами, там магия и масса граблей рассыпана.
В норме ты должен на все сокеты высылать текущее состояние, актуальное для клиента, или просто рвать этот сокет, если с него нет активности. Потом, когда клиент восстановит активность, просто высылаешь ему пакет данных, достаточный для восстановления состояния.
>>1678191 Можно типизировать строкой. (Не SomeType а 'SomeType') И повесить условие на импорт if TYPE_CHECKING Это надо делать вместе. Пичарм это норм понимает.
Орал, как пикрил, когда наступил на это говно в первый раз.
Вот в Джанге у меня есть 2 разных валидатора для поля формы. Как сделать так, чтобы валидация была успешна, если любой из этих валидаторов дает положительный результат? (иными словами, соединить валидаторы логическим ИЛИ)
Сап, питоны. Только начал вникать в могущество и красоту языка Python. Как ни странно, на начальных этапах могут возникнуть некоторые проблемы. Так вот, почему после except else не выполняется, а сразу начинается новая итерация? На сколько я знаю, else не должен выполниться, если в теле except было бы continue.
>>1678214 ORM типа джанги. В модели запросы делаю через QuryBuilder. QueryBuilder в конструкторе принимает класс модели. PROFIT 1 (да можно локал импорт). ForeignKey наследует от типа поля FieldType, для связи примает класс модели. В модели метод для обхода полей использует тайпчекинг по FieldType. PROFIT 2 (тут разве что пересмотреть "архитектуру" с наследованием). Далее MVC, представление содержит контроллер, контроллер реализует интерфейс нотификатора, нотификатор уведомляет модель через notify. PROFIT 3. И такого у меня сейчас дохуя.
Решил поебаться с питоновским typing Встал вопрос: как определить входное значение как любое из возможных? К примеру: def process_number(num: str or int) -> int: ... Вот эта функция должна принимать в качестве аргумента строку ЛИБО целое число. Я написал это через оператор or, код таки выполняется но в таком случае теряется весь смысл typing, т.к. or возвращает конкретный результат (то бишь синглтон True) и тот же Пайчарм не выбрасывает ворнинги, если я внезапно передам в функцию скажем список
Понимаю что пишу не туда. Но возможно тут мне кто ответит.
Как хостинг относится к исходящему и входящему tor-трафику? Не могут ли меня забанить? Или же им пофиг совершенно? Нужно развернуть приложение которое делает запросы к сайту в доменной зоне onion + основной поток будет идти по сети tor. Использую aiohttp + aiohttp-socks, но это наверное неважно.
Добрый день. Небольшой вопрос по джанге и пермишенам в ней
Есть path 'user/<int: uid>' просматривать который может только юзер с правами Admin, т.е. обычный юзер не может просматривать инфу о всех пользователях, в том числе и о себе. Мне необходимо сделать так, чтобы юзер с id например 5 мог просматривать информацию по ссылке user/5, но по прежнему не мог просматривать других юзеров. Задача элементарная, но либо я плохо гуглю, либо совсем тупой. Подкиньте мб какой полезный материал, что нибудь, что попадает конкретно под мою задачу. Заранее благодарю
Есть XML-файл на 10 ГБ, нужно каким-то образом извлечь из него информацию. 1. Запарсить целиком всякими домами и минидомами нельзя из-за размера 2. Всякие там изящные решения предлагаемые на StackO для very large XML files с обработкой дерева ветка за веткой и рекурсией тоже не помогают (скрипт работает вот уже 15 часов)
Короче, что я думаю - можно ли каким-то образом прочесть его построчно как текст и сохранить? Тогда бы я уже наколдовал бы что-нибудь, учитывая, что мне нужно только процентов 10% информации. А то сейчас я даже заглянуть в него не могу - вывести бы 10к строк хотя бы да посмотреть глазами что там и как.
Пока что при "for line in f: " (где f = open(файл, "r") ) скрипт считывает успешно первые строки, но потом обсерается с MemoryError - я так понимаю, в XML-файле он не так четко дробит на строки как в .txt и он натыкается на какой-то серьезный шмат. Вроде простая задача, но уже второй день и я тупо зашел в тупик
>>1678962 у файла как у объекта в метод read() можно передавать количество знаков. Т.е. я передал скажем 10000 f.read(10000) и читаю файл кусками по 10 тыс. знаков while True: ____piece = f.read(10000) ____[обработка и загрузка]
которые уже можно обрабатывать на лету перед загрузкой в другой файл
Нужна помощь по структуре проекта, посути есть 2 части, демон и веб морда.
Демон продьюсит данные в монгу, Вебморда ее отображает.
Демон просто будет ранаться просто напрямую, а веб морда доступна будет через wsgi. Общий модуль у них посути - доступ к данных и конфиги.
Как это красиво организовать с точки зрения гит реп и папок? Посути каждая часть будет собираться в свой докер и возможно деплоиться отдельно, но надо как-то общий модуль коннекта к базе подтягивать...
>>1678899 Не помню как в Джанго делать премишены кастомные (мб Миксинами для class-based view), который будет будет проверять, чтобы пользователь имел админ.права или uid совпадало с его id
А то после python/django/flask/fastapi, жс выглядит не очень логично, очевидно и читабельно. Имею ввиду не pure js, а фреймворк какой-нибудь вроде vue.
>>1678988 короче долго я ебся с этими пермишшенами, по итогу просто во вьюхе сравнил request.user.id с uid из url, если совпадают - идет респонс с необходимыми данными, если нет то выбиваю 403
Поясните залетному, если мне нужен бекенд для мобильного приложения, я возьму Django Rest Framework и получу сразу админку сущностей, какой-нибудь импорт данных из экселя и тд ? DRF такой же как Django с админской стороны?
>>1678983 Один из вариантов, простых, сделать просто один репозиторий, с каталогами mongo, web, deamon, в корне docker-compose.yml, который за эти три сервиса отвечает. В каждом каталоге уже свой Dockerfile, который за сборку сервиса отвечает.
Nginx можно или в отдельный контейнер, или вместе с вебмордой упаковать.
>>1678915 тебе нужен потоковый парсер. Вроде как питоничьи либины этого не умеют. Посмотри доклады с Pycon Russia 2019, там чел рассказывал как они взяли Раст для парсинга XML через serde и как у них теперь всё парсится за секунды. Может тебе тоже подойдёт.
>>1678915 Да на сях это закодируй. В таких больших говноиксемельках обычно просто очень много данных, а уровень вложенности низкий. Если тебе надо потом индексировать, то в реляционную базу с индексами перегоняй.
>>1679189 >>1679196 Та все, аноны, спасибо, я уже напитонировал. На лету повставлял \n между строками данных, переливая файл в копию кусками по 10000 знаков, а потом перелил из копию во вторую копию уже построчно, выкидывая все ненужное, а значения интересных столбцов сохраняя просто с разделителем.
>В таких больших говноиксемельках обычно просто очень много данных да, в данном случае - это и есть просто большая таблица
>>1679317 вообще, это даже через sed решается однострочником: sed -n -e '/DROP TABLE IF EXISTS `store`/,/UNLOCK TABLES/p' < bigdatabasedump.sql > one_table_dump.sql
Нихуя не понимаю. Делаю из кортежа список, хочу его отсортировать, получаю вывод 1. Делаю из этого списка опять кортеж, получаю вывод 2. Создаю сразу список и сортирую его, вывод совершенно другой. Какого хуя?
>>1679481 я, кстати, вспомнил, что в перле отладчик просто ебово тормозил. так что, в принципе, брейкпоинтами можно как-нибудь перебиться.
Ладно, а как насчет Глубокой Инспекции в vs code ? я просто хочу в local variables отфильтровать и поискать содержимое или название переменных, что тоже в некоторых случаях упрощает ковыряние в незнакомых фреймворках.
>>1680075 Что на нем писать собрался? Кроме системного программирования ничего на ум не приходит, но там нужно постоянно юзать С. Для веба раст оверхед.
>>1680084 Алсо недавно нужно было написать небольшой модуль для сервера который юзает функции ядра, думал написать на раст, но в итоге взял С, так как геморроя меньше.
Разбираюсь с Django, Pythonanywhere и GitHub Что за ошибка на пикрилейтед и как фиксить? Возникает в ответ на команду pip3.6 install --user pythonanywhere
Вот что я делал: >Чтобы опубликовать сайт на PythonAnywhere, нужно загрузить на PythonAnywhere твой код с Github и затем настроить PythonAnywhere так, чтобы он распознал твой код и запустил твоё веб-приложение. Существуют способы сделать это «вручную», но для PythonAnywhere есть программа-помощник, которая сделает это для тебя. >pip3.6 install --user pythonanywhere
>>1680075 А чего не scala? Можешь перекатываться куда хочешь, только вакансий на питон в десятки раз больше чем на го/раст/и прочую узкоточенную хрень.
Смысл заниматься тем что не востребовано на рынке.
>>1680084 Го пытались делать как универсальный язык, но в итоге это язык для сетевых сервисов, та же ниша, что у node.js и асинхронного питона.
На Си такие вещи не понятно, как делать. В коробке для этого вообще ничего нет.
Го подкупает тем, что он компилируется, причём в один файл и легко под разные платформы собирать, быстрый. Но, статическая типизация добавляет массу проблем, обработка ошибок в стиле 90-х и т.п.
>>1680167 Ну го еще норм, там гц есть, но все равно мало кто может позволить тащить его в прод. Даже чтобы писать на асинхронном питоне многие конторы сначала пишут свой фреймворк, а потом сам проект на нем.
Как максимально просто и без ебли запустить flask сервер на vps? Мне нахуй не всрался ни апач, ни расширяемость. Все, что требуется от сервера - принятие post запросов и ответ на них. С фласком будет взаимодействовать ровно одна функция. Все гайды либо описывают настройку для нескольких сайтов с миллионами страниц, либо рассчитаны на локалхост, который не адаптируешь под впс. Ос - центос, бубунта или дебиан. Pythonanywhere и прочие сервисы не подходят
>>1676587 (OP) Как установить параллельно 3 разных интерпретатора Питона (глобально)? 2.7 , 3.7 и 3.8? Чтобы все были доступны? И если я буду юзать команду pip3 install (не из виртуального окружения), то для какого именно интерпретатора она будет работать? 3.7 или 3.8?
>>1680279 >Как установить параллельно 3 разных интерпретатора Питона (глобально)? 2.7 , 3.7 и 3.8? google: windows install multiple python versions на линаксе проще.
>И если я буду юзать команду pip3 install (не из виртуального окружения), то для какого именно интерпретатора она будет работать? 3.7 или 3.8? в линаксе должна быть выбрана 1 дефолтная версия питона. соответственно для той версии и будет устанавливаться.
Заебала реклама Яндекс.Практикума на курс Питон Аналиста. Сторонился всей этой дата саенс тусовки, потому что сам по себе я тупой и не могу в математику, модели, формулы, теории(разве что в теории, где моча съедает говно) и прочее. Но периодически встречаю мнение, что дата аналист это не про высшие матреии. Чекнул бесплатную первую часть, там какая-то детская ебанина с основами синтаксиса. Что думаете, стоит углубляться в это? Платить я конечно за их курс не буду(я ведь тупой = нищий), но спизженные курсы/книги и ютуб бы поглядел.
>>1680228 Апач не нужен совсем, nginx прекрасно работает и без него. Какой функционал от апача ты собираешься использовать?
nginx даёт тебе работу со статикой, прокидывает трафик куда надо, умеет TSL, и всё другое.
Точную настройку не скажу, никогда flask не настраивал. По идее, достаточно просто flask + nginx. Возможно желательно ещё что-нибудь вроде supervisord иметь, чтобы контролировать количество инстарсов. Или, альтернативный вариант, поднимать через докер.
>>1680299 >Заебала реклама Яндекс.Практикума на курс Питон Аналиста хуевый ты аналитик, если не понял, что это не тебя выбрала реклама, а ты выбрал контекстную рекламу.
>>1680352 >>1680200 У СУКАпс, ну и пошли они нахуй тогда. Хотел снизить им нагрузку на сервер, не дергая его каждые 30 секунд, но они выбрали свой путь. Все вопросы снимаются, сервер больше не нужен, просто оберну основной цикл в while True.
Привет, аноны! Я тестировщик Пожалуйста, подкиньте задачи на написание автотестов, курсы уже освоил, синтаксис знаю. Нужны именно тренировочные задания с либами типа Selenium, регрессионным тестированием и т.п
Какого хуя питон выебыватся. Есть проект на Джанге, в нем модуль products. И если во вьюхах я делаю так и все работает >from .models import Products то в другом файле такая же хуйня вызывает >ImportError: attempted relative import with no known parent package
>>1680815 >>ImportError: attempted relative import with no known parent package Модуль или модель? попробуй там вставить название своей папки перед точкой: from dJaNgOpRoJeCt.models import Products
Здравствуйте. Мой потолок это квадратики и круглишки в питоне, основные понятия типа функций, классов и объектов. Для того, чтобы влиться,так сказать, в вашу сферу, что нужно учить? Идти в какой то язык(например, питон) и смотреть, что можно с ним делать, и так постепенно изучать новое и новое. ИЛИ же большую часть времени уделить comp science (Алгоритмы, базы данных, структуры , типы данных и прочее), не привязываясь к языку (книжки там на каждую тему немаленькие) С одной стороны, если валить все силы в язык и опыт там, то быстрее приду к тому, что смогу быть полезным где-то, но с другой стороны, если я прочитаю все эти книжки умные(мб даже пойму), по идеи, я должен быть более ценным программистом? В общем, помогите структурировать своё обучение, поделитесь опытом.
>>1680828 >Модуль или модель? Структура products: --models --views --tasks Импортирую класс из модели, в этом же модуле. И в views это работает, а в tasks - нет. Правда вьюха дергается самой джангой, а таскс я пока так смотрю на работоспособность. >from products.models import Products В итоге получаю >django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. >Без venv работаешь поди? С ним
>>1680851 Видел уже, после этого еще десяток ошибок от джанги сыпется. Решил в итоге тем, что просто добавил вьюху, в которой вызываю нужный метод из таскс, чтобы потестить. Так работает нормально, правда непонятно, почему были пробелмы с импортом, если __init__.py в модуле с интересующими меня файлами есть
начал учиться программированию семья - о молодец, будешь 300к в наносекунду делать также - целый день сидишь за компом постигая границы недостижимого сквозь горение ануса и корпуса ноута семья - ты че целыми днями за компухтером сидишь? нет бы нормальным делом занялся и на работу бы пошел
Пытаюсь парсить csv с сайта с помощью pandas.read_csv. Вот код и вывод https://pastebin.com/Wwz09bsk Бывает, что на сайте пустые файлы и мне выдает ошибку pd.read_csv. Я это исправил через try except. Но теперь мне выдает кучу пустых списков и Empty DataFrame. Нужна выдача [1000, 1775, 1775.1, 1000.1, 0, 90, 2019-01-17 00:00:00, 2019-01-17 23:59:59] [325, 325.1, 325.2, 325.3, 0, 1, 2019-03-18 00:00:00, 2019-03-18 23:59:59] Жирным выделил, чтоб видно, что строки разные. [325, 325.1, 325.2, 325.3, 0, 1, 2019-03-12 00:00:00, 2019-03-12 23:59:59] Без слов Empty DataFrame; Columns:; Index: []. То есть только 3 строчки
Сап двач. Есть один класс Base, который в __init__ производит инициализацию своих параметров. Эта инициализация нужда вообще для всех подклассов этого класса, причем важно, чтобы пользователь ее даже изменить в подклассах не мог, а только добавить что-то свое. Можно, конечно, просто заставить всех вызывать этот конструктор в подклассах, но это call super антипаттерн, а еще можно забыть его вызвать и ничего не будет работать. Ныне я сделал как на пикче(https://pastebin.com/eKLn2sh6)(шаблонный метод __init__, который вызывает initialize, который переопределяют пользователи). Не надают ли мне за такое по лицу? даже PyCharm подсвечиват, что лучше инициализации перенести в __init__
>>1681312 Есть конструктор у базового класса с действиями, которые нужно обязательно всегда делать для любого экземпляра классаподклассов, поскольку он абстрактный. В подклассах ОБЯЗАТЕЛЬНО требуется сделать то, что в конструкторе базового класса + инициализации для данного подкласса.
>>1681177 Мне тоже не понятен смысл. Пользователю необходимо реализовывать initialize, это надо документировать. При этом если пользователь переопределит __init__, всё сломается.
Обычно схема с отдельным инициализатором нужна, если тебе нужно часть функционала от __init__ сохранять в наследниках, либо когда инициализацию можно делать или позже, или несколько раз, то есть когда надо сбрасывать состояние уже существующего объекта.
В такой схеме надо подумать, может можно куда-нибудь в __new__ влезть или в метаклассы, и заставить класс принудительно вызывать такой метод, даже если __init__ переопределён.
Все эти извращения разумны, если ты фреймворк какой-нибудь делаешь. Если просто прикладной код, то ты что-то делаешь не так.
>>1681351 >В подклассах ОБЯЗАТЕЛЬНО требуется сделать то, что в конструкторе базового класса + инициализации для данного подкласса. Очень непрозрачное поведение, учитывая, что классы-наследники могут переопределять эти методы. А в твоём скриншоте даже должны.
Особенно непрозрачно разделение общего функционала на два метода, за обоими методами при этом пользователь должен следить и их реализовывать.
>>1681596 Если в цикле дописать data_sheet['Ticker'][len(data_sheet['Ticker'])-1]=f'MX{h}BA0' то часть заполняется. Но проблема в тех, где парсится более 1 строки и в последней строке. Код https://pastebin.com/BXtEzCQ5
>>1681654 Прикольный проект. На гитхаб залить не хочешь? Я бы ковырнул. Касательно твоей проблемы - особо нихуя не понятно, нужно все смотреть чтобы понять контекст, воспроизвести и найти ошибку.
>>1681723 Я просто сначала не допер, думал там ещё есть кода. Я уже ковыряю, пытаюсь причесать код для понятности. Советуют вместо пандаса юзать модуль csv.
>>1681723 Можешь объяснить эту строку: data_sheet['Ticker'][len(data_sheet['Ticker'])-1] = f'MX{h}BA0' И да, если будешь писать чище - будет всем понятнее, включая тебя
>>1681733 'Ticker' это столбец в который нужно писать откуда мы берем инфу например MX330000BA0. Цифры посередине меняются потом и другие части будут меняться, но пока только цифры. Мы обращаемся к столбцу Ticker, а чтоб понять в какую строку писать я выдумал конструкцию len(data_sheet['Ticker'])-1. Поскольку в цикле просто к низу присоединяются строки, то посчитав количество строк всего мы поймем где сейчас находимся. Минус 1, чтоб начинать с 0 позиции. >>1681750 > Нужно переписать логику и будет все хорошо. Я пока ничего лучше измерения количества строк не придумал. Еще проблема с самой последней строкой. Поскольку там новые строки не добавляются идет перезапись дальше чем нужно. Например MX370000BA0 370000 это последнее число в цикле, но в последнюю строку в тикер нужно писать MX360000BA0.
>>1681756 Например MX370000BA0 это последнее число в цикле, но в последнюю строку в тикер нужно писать MX360000BA0. убрал \t370000 не знаю откуда это прилипло
>>1681771 Есть такое. Вот придумал как убирать NaN из таблицы и заполнять следующим значением (которое ниже). https://pastebin.com/3a4nvuj1 Но проблема в том, что так можно убрать только если NaN бала в одной строке. Если будет две подряд такие, то уже не поможет. Может завтра кто поможет или сам догадаюсь.
>>1681776 Ты какой-то хуйней занимаешься, но мне лень разбираться в этом pd. На первый взгляд, что мешает воткнуть это в каждый результат csv_read, а потом уже делать append?
Как вмешаться в процесс присваивания значения атрибуту класса? Вроде __setattr__ - то что надо, но он даже не вызывается в этом случае. По-уебански, наверное, написал. Проблема такая: я при определении класса создаю в этом классе кучу статических атрибутов, и вот в эти атрибуты (это объекты моего еба-класса, они, если что, инициализируются и присваиваются сразу) хочу установить класс в котором эти объекты записываются в статические атрибуты.
>>1681789 > воткнуть это в каждый результат csv_read, а потом уже делать append? Как это сделать? Результат csv_read каждый раз разный. Чаще всего пустой, бывает одна строка, бывает 10. Я не пойму как добавить значение в одну колонку в каждую не пустую строку. На сколько я понимаю прямо в функцию pd.csv_read добавить это нельзя.
Прошёл школьные задачи на пайтонтьюторе, параллельно прочитываю теорию. И тут залез посмотреть на Ютуб, а что нужно знать вкатывальщикам, помимо Пайтона, фласка и джанго. И понеслось: работа с линуксом, гитхабом, понимание основ фронтенда. Знание, как работают сети. И ещё небольшой список разного. Потратил часов 50 уже. И приходит понимание, что работа компьютера - это не просто магия, а что-то совсем пиздецовое. И за год учебы по вечерам не факт, что освоишь минимальный уровень.
>>1682842 > И понеслось: работа с линуксом, гитхабом, понимание основ фронтенда Несколько команд для консоли которыми будешь пользоваться постоянно и все. Фронтенд - на базовом уровне html/css/ и желательно js.
>Знание, как работают сети. Какие-то простые вещи, хз что тут на практике может пригодится, несколько моментов разве что.
Чет мне после Сишечки сильно пригорает с питухона. Нахуй эти пердолки поделили обычные сраные массивы на словари, списки блять и сука последовательности? Я еще понимаю добавить к массивам ассоциативные массивы. Но вот это вот пердоленье сущностей... zalupa.items() блять но при этом enumerate(['zalupa','manda'])...Пиздос. Нахуя? Что они курили? Почему питухон такой кривой и уродливый?
Интересно узнать есть ли у кого-то опыт заработка на блекхет коде? Вроде написания прог на заказ которые заведомо делают нелегальные вещи? Сколько с этого имеете? Как можно выйти на таких заказчиков?
>>1683385 Всякие большие спамилки-авторегалки делал. В принципе оплачивается неплохо, но не чтобы аж так. Все деньги в малвари, а она на скрипатх не пишется, лол.
Привет, ребят. Помоги пожалуйста. До этого писал на винде и через гуглхром.драйвер, перешел на убунту, тут все совсем по другому почему то, с гуглхром драйвером не стал разбираться, решил писать через фокс, вопрос в чем, не могу добавить add.arguments в чем проблема не понимаю
import selenium import time import random from selenium import webdriver spisok_proxy = ('188.170.233.100:3128') imena = ('Вика', 'Алена') for j in range(5): PROXY = spisok_proxy[j] selenium.webdriver.firefox.options = webdriver.Firefox() options.addArguments('--proxy-server%s%PROXY') webdriver.get('https://www.selenium.dev/')
ошибка такая Traceback (most recent call last): File "/home/user/pojerct/skkkript.py", line 10, in <module> options.addArguments('--proxy-server%s%PROXY') NameError: name 'options' is not defined
>>1682867 Знакомо, мне так же от сишечки после голого ассемблера пригорало. Хотя, вот это zalupa.items() одновременно с enumerate(zalupa) - это рили косяк. Пиздуй-ка ты лучше к нам в раст. У раста хотя бы синтаксис прозрачный и очевидный.
Последовательности, это, считай, анонимные структуры. Когда тебе лень создавать структуру, но нужно завернуть данные разных типов в общий контейнер. Например ("zalupa", 5, 0.0001)
Блин, в общем есть у нас химическая формула в виде строки, состоящей из латинских букв, цифр и скобок (круглых и квадратных). Необходимо вывести число каждого из хим. элементов, входящих в эту формулу (в любом формате)
>>1683599 Все что в скобках - помножается на число стоящее после скобок Сдается мне что надо запарсить сначала все скобки (они могут быть как квадратными так и круглыми - ни на что не влияет) - с помощью регулярок скорее всего, но я не шарю в них - затем парсить все что внутри скобок при помощи этой же рекурсивной функции, в конечном итоге функция должна вернуть словарь с химическими элементами (ключи) и числом их вхождений в скобки (значения, в конце также помноженные на число после скобок)
<script src="static/scripts/main.js"></script> написал, как и было в примере, но он не может найти эту директорию, засунул просто один файл main.js в ту же папку что и template, но джанга падла переходит по src="main.js" как по url-ссылке. Как ему указать путь?
двачеры, помогите нубы, с кодом никогда связан не был, просто решаю 1 задачу для учебного процесса сейчас есть прога: в ней есть список фраз на английском языке словарь в котором у английских фраз есть русский аналог команда которая выдает случайную фразу на русском кнопка Далее которая выдает следующую случайную фразу на русском кнопка Проверить которая (тут начинается проблема) должна показывать английский вариант из словаря вопрос - что вписать чтобы программа смотрела на ту случайную русскую фразу, которую сама нарандомила и выдавала ее английский вариант?
Хм, у меня час не получалось запилить ajax-форму в django, несмотря на туториал от medium. А после просмотра 10минутного видоса от индуса все заработало...
>>1683644 Красивее и не сделаешь. Более правильные варианты значительно менее читаемые и нужны для синтетических примеров, когда формулы могут быть очень большими, на миллионы элементов итоговых - это не про реальные формулы, конечно.
>>1683674 Есть список («привет», собака») Словарь выглядиь примерно d(“hello”:”привет», «dog”:”собака») Есть команда выдающая случайное слово из списка Нужно понять как сделать чтобы если к нарандомленному слову из списка давало ключи из словаря и выглядело это так команда для рандома Привет пользователь пишет проверить *программа находит в словаре ключ к Привет и пишет «hello”
>>1676720 Посоны, полностью удовлетворен (переводной, разумеется) статьей с Хабра. https://habr.com/ru/post/337420/ Ставьте ее в шапку, а видео старперское - обоссать
>>1683682 вот тут-то и оно. не понимаю как это сделать Вот случай с1 это когда пользователь пишет Проверка. В этот момент программа должна выдавать ключ из словаря к тому что было нарандомлено после строки random.choice вот я и хз как это делать
>>1683682 вот тут-то и оно. не понимаю как это сделать Вот случай с1 это когда пользователь пишет Проверка. В этот момент программа должна выдавать ключ из словаря к тому что было нарандомлено после строки random.choice вот я и хз как это делать
Как узнать все комбинации, возможные при броске N одинаковых кубиков, у каждого из которых X граней? (на гранях цифры от 1 до X)
Казалось что просто, но на деле херня какая-то. itertools.permutations, combinations и combinations_with_replacement это не то, они не учитывают все возможные случаи. Хотя по факту это весьма "тупой" перебор. Если у нас есть 3 кубика по 6 граней в каждом, то там 666=216 комбинаций, надо просто скурпулезно перебрать все, но вот как это сделать? В данном случае нам нужно 3 вложенных цикла for, но что делать с произвольным случаем? Число этих циклов может быть любым (зависит от числа кубиков N). И как же блин это сделать?
>>1684416 По циклу запускает перебор. Типа for x in range(1, 7): ____for y in range(1, 7): ________for z in range(1, 7): Количество циклов и возвращаемый кортеж равен длинне repeat=3. И соединяет в список
Смотрите какая задача: есть веб-приложение на php и yii. Разумеется, у него в базе свои методы работы и описание схемы. И им занимаются другие погроммисты. Но сделано это, как обычно, хуево,
Я не изучал джангу но готов это начать делать, если будет немедленная практическая польза. Можно ли на джанге сляпать админку чужих таблиц ? Мне просто нужен редактор связанных таблиц и специфические массовые операции над ними.
Теорией бд легко владею . Сейчас по сути я поддерживаю эти таблицы в голом sql и это заебывает.
Аноны, надо пройтись по словарю и заменить некоторые его ключи (при сохранении значений канешн) При прогоне for key in my_dict: key=key.replace("a", "b") по факту нихрена не меняется (потому что key это immutable строка и ключу в словаре глубоко похуй, что за операции я мучу с переменной key) Неужели нет другого способа кроме как тупой проход по всем my_dict.values() и копировании их в новый словарь?
>>1684992 мне нужны ключевые слова. Какие именно механизмы в django позволят это делать ? Что именно почитать? я же не могу по книгам для вкатывальщиков делать тупые приложения. Мне нужен результат.
>>1684918 Мне кажется, что скорее нет. Джанго сильно привязан к своим моделям, админка уж точно. Соответственно чужие таблицы ты так просто не привяжешь, придётся подгадывать под них модели (это возможно).
В Джанго ты админку более-менее быстро можешь сконфигурировать, чтобы добавлять-редактировать элементы, связанные с другими элементами по ключам, но не сильно более того.
>>1685030 Книги для вкатывальщиков в любом случае придётся глянуть. Хотя бы на уровне демо-приложения Джарго, которое голосовалка, и главы в книге про админку и модели.
>>1685105 Погоди, но мне не обязательно портить чужую бд таблицами , я могу отдельную выделить только для джанги, а вот управлять хотелось бы конкретным набором таблиц в другой базе.
>>1685218 это было бы слишком примитивно. там связанные таблицы и я не хочу вводить ид , а хочу редактировать как будто выбираю значения из выпадающего списка. Кроме того, автоматизировать по шаблону генерацию или групповое изменение этих данных и тд.
Сап, питонач. Вопрос по PyQT5, а точнее по QThreadPool:
Есть программа, которая проходит по файлам и делает с ними определенные штуки, после чего выполняет следующий этап. Манипуляции с файлами вынес в потоки, чтобы не фризился интерфейс и можно было одновременно обрабатывать N файлов. Но никак не могу понять, как продолжить выполнение работы только после окончания всех потоков? Ссейчас скрипт создает треды и переходит сразу дальше, что меня не устраивает.
Блэт, добавляю js-код в темплейт Джанги: <script src="index.js"></script> а он ищет этот файл в https://my-domen.net/index.js вместо поиска на хард драйве. Какого хрена?
Ананимас, подскажи какой-нибудь начальный материал по алгоритмам для совсем ебнутых даунов, которые вообще ничего не понимают. Я наткнулся на этот видос https://www.youtube.com/watch?v=pKO9UjSeLew И даже ни из объяснений семпая, ни из самого кода этого tortoise and hare не понял, что это и как оно работает.
Как замутить циклический список в Питоне? Чтобы можно было обратиться к элементу my_list[5], когда в списке их скажем всего 4 и он вернул бы мне элемент my_list[1]? Меня хватило на:
class CycList(list): ----def __getitem__(self, n): --------return self[n%len(self)]
но внезапно эта срань рекурсивно вызывает саму себя и не годится
Всем привет, а кто-то может подсказать адекватное решение проблемы, когда нужно отправить ссылку на фото, которое где-то хостится? Гугл Диск не получается заставить, Гугл Фото дает "закрытую" ссылку, открывать надо ручками. На Фликр только 1000 фоток доступна. Шото моя не понимать....
Сап вопрос по больше по докеру. Короче, обычно я диплою проект( django) так. создаю nginx.conf, gunicorn.service. руками создаю базу и тд.
Собственно вопрост. если я делаю это через докер. то посутие мне на сервере не нужно ставить nginx я могу его поставить в докере? или как вообще правильнее?
>>1685873 птздец, яндекс хочет за свои говнокурсыпрактикум 90к Инглишь курсы на coursera дешевле +можно скупить всех индусов на udemy Совсем пизданулись
По какой логике они вообще находятся? Нихрена не понимаю. Настроил STATIC_URL="/static/" в settings, создал в одном из приложений myapp папку static и засунул туда свою таблицу стилей my_styles.css - при вызове src="{% static 'my_styles.css' %}" все работает. Создал такую же папку static в другом приложении newapp - и джанго уже его "не видит"!
По какой логике эта хрень вообще ищет статичные файлы на моем диске?
>>1686044 Спасибо. Вариант с ВК не помог, потому что поиск должен происходить по имени файла, но при загрузке оно меняется. Есть вариант с описанием каждой фото, но это не то. Держу в курсе.
>>1686060 Если юзаешь докер то тебе нужно только поставить на целевой системе докер/докер-композ и всьо. Дальше ебешься с написанием основного докерфайла и, если надо, докерфайлов для других частей(нжинкс и т.д.). Потом вставляешь все это в докер-композы, описываешь порты/вольюмы и прочее. Всьо. Если проект серьезный то бд ставится на отдельный сервер и без докеров.
попробовал тут аннотации и чуть не блеванул нет для доки оно конечно хорошо, и даже заставляет заранее додумать, что конкретно должен делать код но это говнище же просто нечитабельное, его внатуре сейчас используют? или хотя бы есть какие-то планы по включению этого тайпинга в обработку интерпретатором для ускорения вычислений, например?
>>1686598 Да, юзают, не особо читабельно, поэтому я, к примеру, юзаю простые конструкции что бы потом было более понятно какой тип данных надо передать и куда.
Кто может помочь, кто работал с asyncio для telegram bot api, как там организовать поиск геолокации и маршрута, через обычные библиотеки типо geopy оно не работает, ибо диспатчер требует чтобы индексы были интами, но по api телеграмбота они там стринги и что делать со словарём я уже не знаю
>>1686598 Если твоя говнофункция принимает столько разномастного говна, не проще передавать ей в аргументы словарь или именованный кортеж? А уже на уровне моделя (или кастомного namedtuple) провести документацию, не?
>>1686918 Boolean это либо True, либо False, в то время как это 11010000 10111111 11010000 10111110 11010001 10001000 11010001 10010001 11010000 10111011 00100000 11010000 10111101 11010000 10110000 11010001 10000101 11010001 10000011 11010000 10111001
>>1686925 Не, я имел в виду бинарный как "бинарный оператор". Есть унарный: -number есть бинарный: a+b=c, а есть тернарный number if number >= 0 else -number Бинарный оператор - это оператор с двумя аргументами. Но ведь булевый оператор - это же тоже оператор с двумя аргументами?
1. По гайду импортируется только from twitchio.ext import commands. Получается импорт только из папки ext происходит?
2. Как импортировать файлы из основной папки twitchio, в частности нужны функции из файла abcs.py.
3. Алсо, почему у меня не получается импортировать из моего файла config.py все переменные целиком? Чтобы они все импортировались мне пришлось их по одной перечислять.
>>1687010 Понял. Заменил на звездочку, вроде работает. Но почему пичарм эти строчки серыми сделал?
Добавил abcs и функцию timeout. Бот запускается без ошибок, но когда срабатывает событие с этой функией - пишет ошибку NameError: name 'timeout' is not defined Что не так?
>>1687033 >Серым, потому что не использовано в коде. Как это не используются? Из конфига используются вот все эти переменные в настройке бота. Используется каждая из переменных. Ведь если я испортирую их всех по одной с тем же кодом - строка с импортом не серая же.
>Для timeout вероятно надо указать неймспейс, если ты его прямо не импортировал себе. А вот тут подробнее. Что значит прямо импортировал и как указать неймспейс? я только вот вот дочитываю укус питона, еще мало чего понимаю
>>1687067 нет все правильно, просто надо понять откуда он хочет их импортнуть мб надо в pycharm указать папку со скриптами как source. Вот он красным подчеркивает, какую ошибку показывает если навести?
>можешь ответить? могу но я уже другой анон неймспейс это пространство имен, как бы сущность которая содержит имена для доступа к ним. Если у тебя config.py и ты его импортишь как import config а потом обращаешься к CLIENT_ID как config.CLIENT_ID то говорят что имя CLIENT_ID находится в неймспейсе config
поэтому замечание того анона было скорее всего про то что у тебя в importах не видно никаких timeout а ты их используешь (и ошибка говорит как раз что timeout не определен)
но мне каж ошибка в том, что у тебя в папке twichio нет config.py и ты хуй пойми что откуда запускаешь
добавь untitled2 PYTHONPATH (или пометь как source, тогда pycharm вроде должен сообразить)
>>1687079 >просто надо понять откуда он хочет их импортнуть но ведь без этих переменных бот просто не законнектится к твичу, если бы он их не импортнул. А бот работает, значит импортирует правильно. Подчеркивает вот что -
>Если у тебя config.py и ты его импортишь как import config а потом обращаешься к CLIENT_ID как config.CLIENT_ID то говорят что имя CLIENT_ID находится в неймспейсе config Если я делаю from config import * и дописываю config. перед переменными то получается вот так, сами переменные не подчеткивает, но config. подчеркивает(пик2) и при запуске выдает ошибку NameError: name 'config' is not defined Как блядь? Файл config лежит там же где и основной файл программы.
>поэтому замечание того анона было скорее всего про то что у тебя в importах не видно никаких timeout а ты их используешь (и ошибка говорит как раз что timeout не определен) как нету? timeout это функция из abcs.py которую я импортирую.
>но мне каж ошибка в том, что у тебя в папке twichio нет config.py и ты хуй пойми что откуда запускаешь А с чего бы ему там быть? Я его же отдельно импортирую
>добавь untitled2 PYTHONPATH (или пометь как source, тогда pycharm вроде должен сообразить) Вот сейчас не очень понял
Однажды надоела дрочильня в sql и я решил свои старые сохраненные запросы sql перевести jupiter notebook и запускать их прямо там. Почитал доку на виджеты и типа все заюзал.
нахреначил такой блок: import datetime import dateutil.relativedelta
Почему не обновляет глобальные переменные в ipython ? Как правильно это делать?
Нет, это не код для питона, это код для ipython. обратите внимание на декоратор @interact_manual. Задумка в том, чтобы создать простой веб-интерфейс оналитика и без джанги.
Есть и еще вопросы: что ж так хреново с локалями в браузере? Как выбирать даты с российской локалью? не ебанулся ли я? как бы решали задачи эпизодического анализа данных вы?
>>1687147 Так у меня вроде и так основная программа вне venv, не? (пик 1) Где добавить папку со своим проектом в pycharm? есть только дефолтная папка куда все проекты создаются.
>>1687149 >чет у тебя с пучармом, поч config.py не определяется как питоновский файл? А хуй его знает. Это на что-то влияет? >какая конфигурация запуска? Это что и где?
>если ты импортишь import abcs то использовать надо abcs.timeout
Я импортировал всю папку с twitchio (пик 2), добавил к команде abcs( пик 2, в самом низу) и выдало уже другую ошибку( пик 3) что в модуле нет такого атрибута.
>>1687181 > Ты путаешь модули и пакеты, так не получится. Это ты про что? Что я с чем путаю? >Просто почитай документацию, а не перебирай наугад. В документации нихуя не написано почти, поэтому наугад и пробую. Можешь глянуть гитхаб twitchio? В какую сторону хоть копать? > Алсо, с этим config что-то явно не так. Что именно? Основная программа подхватывает переменные же.
Как же у меня горит жопа с Джанго. Пиздец просто, гора последовательных действий ради обоссаной менюшки. Хуй знает сколько нужно потратить лет, чтобы запомнить все.
>>1687189 twitchio не причем проблема с тем как ты запускаешь код в пучарме
1) убедись что ты реально запускаешь тот самый пайтон что лежит в venv, а не системный 2) убедись что ты запускаешь его из папки проекта а не из ~/ 3) убедись что config.py не config.ру например (русские символы или какая-то юникод дрочь вместо точки) 4) ну не доку так гайд какой-то как запустить первый проект в пучарм
>>1687004 Чет проиграл с этого проекта venv это просто среда исполнения с нужными библиотеками конкретно под твой проект, зачем ты прямо в пакет (либу) твичио вкорячил свой "код", если по логике тебе нужны некие методы из этого пакета модуле с чятиком? (а так же методы из пакета asyncio итд). Или ты собрался сначала добавить новые функции в сам твичио, а потом уже их использовать в своем проекте?подозреваю, что нет Иными словами, этот код должен располагаться там же, где и chatbot.py и конфиг (а может и вообще в самом файле чатбота, если кода немного)
кстати, поясните, а зачем вообще нужен virtualvenv, если есть более современный pipenv, требующий в 2 раза меньше телодвижений для настройки проекта?
>>1687256 чел и не добавляет код в пакет ты че в глаза ебешься, посмотри че за файлы слева и че за файл открыт красной стрелкой он показывает на импортируемый файл а не на открытый
> нужен virtualvenv, если есть более современный pipenv есть более современный poetry есть более современный dephell
>>1687218 > потратить лет, чтобы запомнить все. Ну такое мало кто делает, сниппеты/шпаргалки как написали выше, ну и гуглят информацию по надобности. Запоминают только базовые вещи, всего не запомнишь и особо нет надобности.
>>1687219 > 1) убедись что ты реально запускаешь тот самый пайтон что лежит в venv, а не системный А как это можно посмотреть?
> 2) убедись что ты запускаешь его из папки проекта а не из ~/ А не из откуда? > 3) убедись что config.py не config.ру например (русские символы или какая-то юникод дрочь вместо точки) Я config.py создавал из под ide, не должно быть ошибки, но проверю. А есть разница есть ли на файле значок питона или нет? Разрешение же что надо.
> 4) ну не доку так гайд какой-то как запустить первый проект в пучарм Ок, гляну.
Очередной вкатывальщик подъехал. Прочел книгу с пика и теперь вопрос: куда двигаться дальше? Хочу развиваться именно в области бек-энда. Пилить свой пет-проект простейший, типа форума или твиттера? Или ещё за какую книгу взяться, где ещё подробнее разжуют джангу, базы данных и прочее?
>>1687549 начать пет-проект не рано никогда, лучше читай и ебашь параллельно переделывая. Проект бери такой, какой тебе интересно пилить. Хороших книг могу посоветовать две: - Лучано Ромальо. Fluent Python. Подойдет если ты уже представляешь, что такое циклы, ветвления, модули, память. - Лутц, если не представляешь
Так блин, Жаба-господин пожаловал к вам на огонек Я понимаю что адекватного сокрытия данных от питоновского ооп ждать не приходится но у вас бля вообще есть понятия аггрегации и композиции? Я расширяю класс EngineClass методом копозиции, засунув ему в атрибуты self.extra = list(), хули я могу кинуть ссылку на self.extra извне и даже после удаления EngineClass instance этот объект останется в памяти?? Такое же говно как и жопаскрипт
У меня есть генератор, как заставить его выдать мне только 5 первых элементов? Есть вариант с result = list(gen)[:5] но это пиздец неэкономично, т.к. список создается полностью и лишь потом значения отсекаются
Ищу ментора/будущего друга за спасибо либо фин вознаграждение после устройства на работу Интересует Джанго мимо 23 года , за плечами уже один том Лутца. Гуглить умею, намерения серьёзные - олл-ин . Не токсичный, адекватный , правда с математикой беды, но есть желание и время это исправить (для алгоритмов и тд) Не хватает человека который наставит тем самым сократит время самообучения, а во вторых конечно хочется друга/пул друзей в таком направлении. А то мои все уже давно скололись, либо сидят. @xkamiyada
Вопрос скорее по БД (SQLite). Чому текстовое поле не выбирается через LIKE? Как это исправить? FROM "table" WHERE "col" LIKE '%05%' нихуя не выбирается, хотя там пара сотен записей с цифрой пять в поле "col" (вот прям сейчас навставлял сторокове представление, возвращаемое str(datetime.datetime.now()) и пытаюсь в утилите пайчарма сделать запрос.
>>1688232 Второй том уже на середине , да совестно что-то делать, не пройдя основы. Основы - курс на ютубе не воспринимаю, а лишь дополняю книгу. Хз, возможно не правильно это, но боязнь пропустить ту самую информацию (предложение/слово)
На вход я получаю число как строку. Нужно преобразовать так чтобы было на выходе d,m,yyyy Нашел strptime, но он меняет порядок и время добавляет. date= '18.09.2019' datetime.strptime(date,"%d.%m.%Y") Выдает datetime.datetime(2019, 9, 18, 0, 0) Конечная цель подставить в функцию вот так quantlib.Date(18, 9, 2019) Как так форматировать?
>>1688617 > Нужно преобразовать так чтобы было на выходе d,m,yyyy Нашел strptime, но он меняет порядок и время добавляет. Не знаю как в питоне, но в си вывод даты зависел от того как форматируешь сам - можешь выставить %d %m %y вместо %m %d %y или в любом другом порядке.
Ну так давно взялся изучать питон, решил побаловаться объектами и появились несколько вопросов
1) если мне надо создать много экземпляров одного класса, то как эти классы хранить с возможностью обращения к ним? Создать что-то вроде списка и добавлять в него новые экземпляры? 2) существуют ли какие-то магические приемы создать экземпляр класса с произвольным именем? То есть я через input ввожу имя в консоле, питон читает мою строку и создаёт объект с этим именем >>> Input( "my_var" ) >>> my_var = my_class() Не уверен, но звучит такая мысль как хуйня какая-то
Как правильнее читать проги? Начинать "снизу" - с вызова if __name__ == "__main__" и идя далее последовательно по вызовам или "сверху", читая объявления классов и переменных, а затем переходя к main?
>>1687963 Мне понравилась. Теория вся базовая есть по самому языку. И практика есть по трем разным направлениям(игрульки, визуализация данных, веб-сайт). В целом чувствую в себе силы пилить простые сайты, параллельно все гугля и подсматривая в stack overflow. Но не обосрись с изданием, анон. Я буквально вчера обнаружил, что ещё с февраля доступна новая версия книги с пика на русском. В оригинале она именуется вторым изданием, а в переводе на русский она уже зовется третьим изданием(все потому, что у нас до этого два раза книгу издавали из-за правок в оригинале). В новом издании есть кучка новых плюшек, типа f-строк, от которых я охуел в хорошем смысле. И книге всего-лишь год. Наверное, самый актуальный вариант для салаги.
>>1688937 Я читнул по диагонали. Слабовато охвачен язык, а проекты мне не особо интересны. Вообще, это довольно неприятная проблема книг по питону - сегмент для новичков переполнен с вариантами вплоть до разжевывания для даунов. Средняковые можно по пальцам пересчитать, а хардкорных вообще нет.
Как работает pyperclip? Сделал скрипт, где он while True чекает буфер обмена, и если содержимое изменилось, дёргает некую функцию. Но работает это очень нестабильно, и безо всякой системы. То раза три-четыре подряд сработает, а потом начинается через раз на пятый. То прямо сразу не хочет, надо ждать и раз десять тыкать Ctrl+C, чтобы запустилось.
>>1688937 Спасибо, анон. Книжные как-то сейчас закрыты, так что заказал, не знаю какая версия придёт, но вроде самая последняя должна. На крайняк буду в электронном виде смотреть некоторые вещь.
Товарищи, помогите пожалуйста. https://medium.com/nuances-of-programming/обнаружение-объектов-с-10-строчками-кода-953bd0e22a2 На этой странице рассказывается как запилить компьютерное зрение не имея мозгов, и там есть файлик resnet50_coco_best_v2.0.1.h5. Так вот он не качается(50 кб\с это не скорость, я пережил эти времена и больше не хочу), помогите. Где можно скачать нормально. Все ссылки что я нашел ведут на гит, с странно медленной скоростью загрузки.
Вставил в начале вот такой код на проверку запускается ли питон что внутри виртуального окружения или нет. Запускается внутри. Проверял просто создавая скрипт в любом левом месте и запуская - пишет вне виртуалки.
Кто-нибудь знает как через scipy.optimize.root задавать ограничения на переменные? Например больше нуля и другие. Может есть гайд по оптимизации Levenberg-Marquardt для всяких сложных функций, а не как в примерах sin(x)=0?
вновь реквистирую помощь для чайника, впервые открывшего пайчарм. если у меня есть random, выдающий случайную фразу из забитого словаря, есть ли какая-то команда, чтобы за 1 запуск программы 1 и та же фраза НЕ повторялось (т.е. чтобы каждой фразы из словаря выдавало только по 1 разу) и так чтобы в конце когда все фразы из словаяр уже были либо начиналось по 2ому кругу либо просто прерывало прогу?
>>1689416 Мидлом на задачах в вакууме не станешь, мидл в первую очередь специалист опытный, он знает что то о code design и архитектуре. Так что тут сколько бы ты времени не потратил нужен боевой опыт.
>>1689541 + Сейчас код выглядит так if name == c4: while word: key = random.choice(list(word.keys())) val = word[key] check = input(f'переведи = {val}: ') if not check: break if check == key: print('Верно!') del (word[key]) else: print('Неверно') print({key})
Аноны, как в пучарме в проекте Джанго импортировать самописные файлы? Нужно отметить папку с нужным файлом как source? Прохожу тутор по Джанге и тут нужно импортировать polls.models. В интерактивном интерпретаторе все работает.
Потсоны, можете заревьювить код, указать на проебы? С меня как всегда. Задача: Создать объект класса Сутки, используя классы Час, Минута. Методы: вывести на консоль текущее время, рассчитать время суток (утро, день, вечер, ночь).
Сап питонач! Есть класс ArticleDetailView(DetailView): и он выводит информацию с модели хуи, а при переходе по ссылке на страницу этой информации мне нужно, чтобы появлялась информацию с еще одной модели, например залупа, но нихуя не получается, что не так?
Пикча 1. Все збс, выводится ,но только информация с модели Manga, а мне нужно там же еще с одной модели, но нихуя не пойму как, хелп
>>1676587 (OP) В чем смысл Serializer в Django REST? Что он там блэт "сериализирует"? Он принимает на вход объект модели и возвращает питоновский словарь. Чтобы дополнительно сериализовать данные в json нужно заюзать JSONRenderer. Че за хня?
>>1689596 Код может и ок, но не имеет никакого смысла. Алсо - ".format", как там в 2007? Норм? Аместо написания классов ненужных, лучше по полной заюзал бы datetime там же много классных возможностей.
>>1689665 > Что, прямо векторная функция у тебя? Вроде да, я точно в определениях не разбираюсь. Я хочу калибровать модель Хестона для опционов (описание https://www.quantalgos.ru/?p=500). Там огромная ёба функция и надо подобрать 4 коэффициента. Как я понял там считаем min(функция(параметры)-известный результат). Только там еще есть ограничения на подбираемые параметры. Функция эта пробегает по таблице. По сути надо сделать МНК, но крутой Levenberg-Marquardt. А Levenberg-Marquardt как я понял считается через scipy.optimize.root.
Как удалить строки в Pandas.DataFrame, при условии наличия в колонке "Н/Д". > for i in range(колво строк): > if dataset['Название колонки'] =="#Н/Д": > dataset.drop(, inplace=True) Крашится с KeyError: 19 или KeyError: 17
>>1689728 А, ну тогда хуй знает. Возможно следует вопхнуть ограничения для параметров в саму функцию (прибавляя большое значение к результату при выходе параметра за границы, например). Но это не точно
Как в цикле игнорировать ошибки? Например при i =2 ошибка, нужно просто идти дальше к i=3. Код https://pastebin.com/Lf8uwTL4 У меня цикл просто прерывается. Если continue заменять на pass ничего не меняется.
>>1689991 мне достаточно совпадения 1 слова в двух списках. После 1 совпадения проверять все остальные слова не надо.
Еще вопрос - я пытаюсь сделать список из текстового файла. Сделал как на пик 1. Все работает, но забирается еще и символ переноса строки к каждому элементу( пик 2). Как его исключить из добавления в элементы списка:?
>>1689994 Тогда оптимально any(word in list for word in words) Чтение файла у тебя так себе. Достаточно for line in f: ___line = line.strip() Непонятно, зачем там i.
>>1690000 Хм, работает. Только вот он разбивает по строкам. Поэтому приходится делать в текстовом файле вот так: 123 456 789 Можно сделать разбивку если у меня будет 123 456 789 в одной строке?
>>1676587 (OP) Так блэт, нашел фичу (хотя скорее баг) В ебучем numpy
Есть у нас строка с разделителями \n по типу: string = """ здравствуй\n двачер\n нахуй\n иди\n """
Если я захочу сформировать из этой херни двумерный numpy-массив таким образом: a = np.array([list(line) for line in string.splitlines()]) То на выходе у меня получится хуета вроде той что на пикриле.
Чтобы все работало "как и должно" надо сначала сформировать ебучий список списков с буквами: x = [list(line) for line in string.splitlines()] (та же самая блять операция же что и в предыдущем!) А потом его заснуть уже в np.array: a = np.array(x)
Вот че это за хуйня? еще и видно что в первом варианте получился dtype=object, а во втором как надо: dtype='<U1'
>>1690021 Проблема обнаружена: в начале затесалась ебучая пустая строка, отчего длины строк не совпали a = np.array([list(line) for line in string.splitlines() if line]) должно решить проблему
>>1690016 А еще такой вопрос - можно проверять как-нибудь на длину слова? т.е если у меня в списке words есть элемент лупа то в списке list не получалось совпадения с элементом залупа.
Ребят, как реализовать?: Я пишу свою манга читалку в вебе и уже сделал вывод по категориям, жанрам, вывод всех добавленных манг. Реализовал переход на конкретную мангу, где появляется обложка, описание и все, что у есть у других, но не могу понять, как реализовать отображение глав для перехода на них и соответственно чтение. Я создал модель Add_chapter и связал ее с моделью Manga
class Add_chapter(models.Model): chapter_name = models.ForeignKey( Manga, verbose_name="Манга", on_delete=models.SET_NULL, null=True, max_length=100, default="" ) Даже получилось реализовать загрузку zip архивов и прочего. При заходе в админку и добавлении глав в через модель add_cpater и все збс, я могу выбрать уже созданную мангу и как бы привязать ее. НОООО, при выводе уже привязанных глав, в детальной информации у всех тайтлов появляются эти созданные главы, то есть есть тайтл наруто, я добавил к этому татйлу 3 главы и при заходе в тайтл блич у меня появляются 3 главы наруто, хотя их та быть не должно. Че не так?
>>1690066 Тут наглядно видно. В наруто есть главы 2, 3, 5, 7 и они же выводятся в других татлах, хотя при добавлении главы в add_chapter я указывал наруто
>>1689587 Отметил папку с моделью как source. Теперь требует environment variable, но походу тогда надо добавить весь проект в path Нахуй, пойду пичарм про скачаю
>>1690064 Я не сказал что анон лох, но если он вкатывается в питон сейчас, незнание новшеств 3,6+ будет делать ему больно. >>1690044 Ну если задание такое, то ок. Сюда бы еще статик/класс методы, наследования, суперы и т.д. А так - малаца.
>>1690086 сделал именно так и сделал из строки message список message_list. Но не работало пока я в конце сделал не if word in message_word: а if word == message_word:
>>1690087 f-strings это грязь, потому что это смешивание кода и вывода, выжигать такое надо калёным железом. Кто хочет php забыть как страшный сон, тот таким "инновациям" не радуется.
format хорошая и удобная штука, для всего хватает. Вот где пиздец, так это в традиционных компилируемых языках. Как вспомню, что из себя вывод в C++ представлял (без сишных принтфов), так вздрогну, хз, может сейчас и туда что-то подвезли.
>>1690157 Это строка и список. В строке ищутся подстроки, в спсике элементы. А чтобы искать в списке подстроки надо дополнительный цикл, о чем и была речь.
>>1690176 Всегда. Это пришло из шелла в перл, а оттуда в пхп. В то время все выебывались, что это смешивания и спагетти и юзали конкатенцию или всякие ебанутые стрингбилдеры у жаб и шарпов. А потом утащили себе и теперь это пиздец фича модная, ага.
>>1690203 начинают говорить что х плохо потому что это как в php, при этом на пхп не писали, поч именно плохо объяснить не могут, но могут пиздеть и чувствовать себя важными
>>1690210 я в курсе этой ошибки. Но функция get_chatters находится в Client.py внутри пакета twitchio, который я подключил(правда строка почему-то серая)
>>1690105 Мне чем пичарм нравится - автокомплит и дебаг заебатые, хз как вскод в этом плане. Вскод он вроде дохуя модульный, когда поставлю линукс себе - попробую атом или емакс. Пичарм конечно многие вещи за меня делает - даже на примере тутора Джанги пичарм про сам файл settings изменил, когда я новое приложение создал. Когда тутор через консоль делал - заябывало отсутствие автокомплита в cmd и внятного представления структуры папки. Хотя и понимания происходящего требовалось побольше.
>>1690266 Это просто грязь, когда ты делаешь вычисления внутри строк и прямую подстановку туда переменных. Код необходимо отделять от представления.
format даёт для этого оптимальную возможность.
PHP "из нулевых" самый яркий представитель, где в коде смешивали строки и сам код. От переменных до циклов с sql-запросами.
В идеале ты вообще должен выносить определения строк куда-то наружу из кода, чтобы, например, поддержать многоязычность. Format это идеально позволяет.
>>1690293 > Это просто грязь, когда ты делаешь вычисления внутри строк и прямую подстановку туда переменных. Код необходимо отделять от представления.
Кроме вычислений внутри строк, формат же точно также подставляет в строку значения переменных? Только пишешь ты их в строке, а не рядом. В этом и проблема? Я форматом не пользовался никогда просто.
> В идеале ты вообще должен выносить определения строк куда-то наружу из кода, чтобы, например, поддержать многоязычность. Format это идеально позволяет. Можешь дать пример? Может приложение с гитхаба, а то у меня еще не было необходимости использовать именно format, обходился f-strings.
>>1690323 >В этом и проблема? Да, в этом проблема, это грязь. Это подход по принципу "слепить побыстрее". Отложенное форматирование довольно часто используется. Ты где-нибудь в конфиге определяешь строку для форматирования, а потом её используешь. format ведь позволяет и по имени переменной работать.
>>1690347 все из twitchio импортируется без проблем, но какого хуя пишет AttributeError: module 'twitchio.client' has no attribute 'get_chatters' ? Внутри client.py есть get_chatters
Есть некий датафрейм с отсутствующими значениями. Для каждой строки я вычислил среднее значение. Как теперь подставить в каждую строку вместо NaN свое среднее значение для каждой строки? votes_data = votes_data.fillna(votes_mean) чет не работает.
Сап, ананасы. Как сохранить изменения во вложенном списке, после того как я списком по нему пробегаюсь?
К примеру есть список [['1','2'],['3','4']]
Я делаю такую конструкцию: for row in list: for elem in row: elem = int(elem) И ожидаю, что после того как снова запринчу этот список, значения там будут в int, но не работает. Надо новый создавать?
Здравствуйте, господа! Хочу научиться работать с библиотекой vk_api, вернее у меня есть идея, которую хочу реализовать для бота в сообществе. Но, начинать надо с чего-то простого, что у меня не получилось. Объясните плз, как можно элементарно с помощью бота отправить, например сообщение самому себе? А то просмотрел несколько источников, на одном источнике была подобная информация, но данную функцию тупо выпилили с какой-то там версией vk_api. Будьте добры, напишите код, (я знаю, что там строчки 3-4 должно быть, пролема в знании методов), ии подкиньте доков читабельных
А есть в природе какие-то готовые библиотеки для глубокого (полного) разбора JSON? Ну, например, чтобы все строковые значения выдернуть? Или надо каждый раз смотреть самому и разбирать логику данного словаря? Это не будет велосипедингом? Или только так и можно делать?