Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: 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: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
дарова дрыч, начал изучать ctypes и мне не понятно как скомпилировать свою си функцию в длл'ку для импорта, я нашел только как это сделать на linux(я юзаю mingw)
>>1873325 Обновляют значение, чтобы не исчелзло случайно. Скорее всего раньше оно делало что-то полезное, а потом так заглушили вместо закомментирования.
>>1873364 >Скорее всего раньше оно делало что-то полезное t.pythonlets
range и list(range)
Аноним05/12/20 Суб 11:57:52№18733678
Правильно ли я понимаю, что основное различие между range(0,1488) и list(range(0,1488)) в способе выдачи данных? Первая функция выдает их в последовательности-бегунке, а вторая сразу хуячит целый список?
Короче 2 года пассивно-агрессивно осваивал этого вашего питона (последние курсы универа), а сегодня резко осознал, что это жуткая нубтраба вплане вката на работу. Ибо сейчас каждая собака знает язык + условную джангу, и соответственно пытается вкатится => конкуренция жутчайшая. Перекатываться во что-то другое не хочется, ибо в принципе повседневно кодить на сабже нравится, модулей на все случаи жизни просто миллионы. В связи с чем возникла идея дополнительно выучить вью и позиционировать себя как джун фулл стек django, vue.js, postgresql ну и там всякое попутное говно типа докера, очередей итд. Нормальная идея, че думаете?
>>1873421 Брат, у тебя вышка есть, а у 90% вкатунов нет. Их даже рассматривать не станут, а твое резюме автоматом залетает в нужную стопку. Алсо, фулстек это днище.
>>1873513 Ну, в джанге же есть возможность создавать формы. Да и без джанги есть библиотеки, которые создают фронтенд для веб-приложений на питоне, конечно, под капотом там генерируется html/js/css, но пользователь библиотеки может чисто в питоне все закодить. Кто знает, может, в обозримом будущем webassembly разовьется, и можно будет писать фронтенд действительно на чем угодно, хоть на питоне.
Сап аноны, вопрос от ньюфага. Насколько версия 3.8 актуальна? Есть одна вакансия тестирование, где требуется питон. Есть ли смысл осваивать 3.8 версию?
Анон, не шли на хуй Пытаюсь вырвать текст из программы На первом пикриле я по hWnd получаю текст из объекта, всё работает отлично На втором пикриле делаю то же самое, но текст не печатается. Я не прошу подробного ответа, хотя бы скажи, куда гуглить
>>1873661 Что значит осваивать 3.8? В принципе, можно учить по материалам любой 3+ версии, но лучше 3.6+, дальше уже не особо важно, это несложно подтянуть при желаниии.
>>1873670 Ты вообще делаешь неправильно, эти айдишки будут меняться каждый раз. Надо искать главное окно по тексту, а потом по его чайлд контролам уже.
>>1873682 Ну хуй знает тогда, посмотри ещё подобные функции, по-моему там несколько штук для разных контролов, т.е. для лейблов и подобного что-то одно, а для эдитбоксов может быть другое.
Я чет даун наверное, но я всё не могу понять, как я должен создать форму в джанге, если данные должны быть помещены не в одну таблицу, а в несколько? Ну вот если у меня БД нормализована, то, например, таблица с заказами будет содержать в себе внешний ключ таблицы с клиентами. Человек выбрал товар и ввел свои данные. Информация о товаре идет в таблицу заказов, а информация о клиенте идет в таблицу клиентов, а в заказы попадает только айди этого клиента. Но вот чет нигде не видел, чтоб так кто-то делал.
Судя по вопросу, тебе надо просто осваивать программирование и питон. Иначе бы такого вопроса не было.
Есть какие-то конкретные вещи, которые сильно усовершенствуют в версии N. Если эти конкретные вещи изучать по старой версии, то ты немного лезешь в легаси.
>>1873283 (OP) >А стоит ли читать Лутца, том номер N? а стоит ли читать лутца? я вообще полнейшая зелень во всем этом. лутц сможет дать мне уверенное знание синтаксиса для дальнейшего развития в питоне? время и сила воли есть. просто мало ли... вдруг тут уже давно советуют другого автора для начинающих? ведь еще так много разных книжек об одном и том же в закрепе...
>>1873854 >уверенное знание синтаксиса Чего? Зачем тебе читать беаную книгу на 400 сраниц дабы знать синтаксис? Я вот за пару вечеров основы подхватил на неделе. Если не уверен в чем-то, вроде return type - в отличие от других языков, кинуть мгновенные print(x) и затетить займет меньше секунды. Питон вообщ оджин из языков которые unironically проще дебажить принтом нежели полноценнымбдебаггером в 80%-90% случавем
>>1873898 >youtube-dl >4k issues, Я ни разу проблем не видал с ним Постоянно с ним проблемы, хотя бы потому, что сервисы регулярно что-то меняют и что-то из-за этого ломается.
Просто к разным проблемам привыкаешь и учишься жить с ними, просто не делать какие-то вещи.
В самом питоне тоже дохрена таких проблем, каких-то багов и недоделок. И на других платформах.
>>1873938 Бля, ну это я для простоты примера, у меня вообще не магазин никакой. В общем есть форма, данные из которой должны попасть в две связанных таблицы, а не в одну.
>>1873944 Тут три таблицы по идее надо. Модели, например CliientModel, GoodsModel, OrdersModel Дальше цепляешь выбранный клиентом товар запросом из GoodsModel form = ClientForm() if form.validate_on_submit(): new_client = CliientModel(kwargs - данные о клиенте) new_order = OrdersModel(client_id=new_client.id, kwargs - данные о заказе + данные из запроса товара)
Тут я на Фласке писал, он мне ближе. Сам переведешь, надеюсь
>>1873934 Никогда не встерчал, обновлял раз в 2 месяца.
Суть в том, что ты дебилойд. Счетчик "issues" на гитхабе не показатель нифига.
Проблемы есть у всех, но твой интероп с ГО удет иметь больше проблем. Плюс, будешь писать колесо ммаршалинга данных, потому как существующие решения, что найдешь, будут атк же полны багов, проблема в том, что что бы для них сдеать воркаранды тебе придется вникать в чужую кодебазу
Да и вообще, в абсолютном смысле, единственное зачем ты будешь юзать интроп или Cython - для реального параллелизма, ибо Pyton ограничен GIL в этом плане, однако с асинком IO у него проблем нет. ВОт и получается, в итоге, что задачи сведутся к минимуму и cython/C будет 100% за глаза - послал ссфлку на память, цифры закрунчил и вернул результат. Все останое будет на Питоне.
>>1873978 Плюс GO - это такой-же managed language c GC. Нахуя тебе такой интероп? Этот как интероп питона и C# или Джавы. Интероп делается в нативный тогда, когда приоритетом являетмся производительность до байта, до бита, блять, ибо оверхед овердохуя. Одна из причи почему в НЕТ5 большую часть фнукционала экосистемы C# перенесли в IL/C# вместо нативного кода, ибо оверхед
Антош, не шли на хуй. Я всё так же пытаюсь вырвать данные из соседней программы. Пока курил SO случайно прочитал, что в некоторых программах есть защита от парсинга. И вот, например, на пикриле я не смогу получить текст из полей. Это правда?
>>1873283 (OP) Здравствуйте. Есть ли здесь шарящие за библиотеку telebot. Не могу понять функцию forward_message. Что туда передавать, как, БЛЯДЬ, номер сообщения переселаемого ей писать?
Уважаемые аноны, есть ли хоть один пример простенького бота в телеге с возможностью пересылать сообщения. Желаетльно с комментариями, объясняющими что и как. Все перерыл - не смог найти
>>1874260 а ну и номер сообщения надо брать по какому-либо параметру через запрос сообщений из чата: по времени, по id пользователя или по контенты сообщения. Там уж сам реализовываешь как надо.
Черрипикинг для затравки. Подскажите, пожалуйста, по практикуму внизу https://younglinux.info/oopython/objects.php. Если сделать функцию просто рандомом определяющую кто кого ударит, то это не интересно. Я решил сделать небольшой оверкилл по этому заданию- сделать классы с наследованием и чтобы дралось любое число войнов. - есть класс human, атрибут name и health - число, дочерний класс Warrior с прочими параметрами. Есть 2 (или N) экземпляра Warrior firstwarrior и secondwarrior. Они должны драться, и вся эта логика еще будет реализована через функции. Я себе представляю это так- в одной функции я соберу вызов трёх функции подряд- первая составляет список имён (name) всех войнов со здоровьем больше 0. Если такой воин один- он подебитель. Потом вторая берет двух случайных из списка, пусть даже это будет один и тот же вои, который сам себя бъёт и возвращает их имена в список "кто-кому-ударил". Третья функция берет первого из списка и отнимает его урон от здоровья второго. (тут грамотно нужно бы удалять экземпляр со здоровьем меньше 0, чтобы убрать проверку здоровья в начале)
Я застрял на получении списка атрибутов всех созданных экземпляров класса воин. Я могу вызвать атрибут name у определенного война типа print(firstwarrior.name) и оно верное. А как получить список атрибутов всех существующих объектов класса? https://pastebin.com/Hc2ArdHm листинг. Буду благодарен за советы.
По уму, тебе нужно создать было публичный атрибут класса (name-list), куда при инициации вносится новое имя.
Потом через любой инстианс класса можно получить доступ к публичному атрибуту, или просто призывом к классу, но я не помню синтаксис вызова общего атрибута.
П. С. Если ты изменишь публичный атрибут призывом к инстансу, то инстанс получит свою отдельную копию публичного атрибута, а не изменит публичный, поэтому избегай этого.
>>1874496 блять только щас догадался засунуть все в класс прописав в инит подгрузку списка, а потом функцией дёргать элементы... сукааа.. Ладно, мб варианты поумнее есть
>>1874584 И? Наработки IBM брошенные коммьюнити как кость собаке, как и все JS наработки. Бота для Telegram делал на этой хуйне, все очень просто, еще проще чем на питоне. Но так как вкатыши часто просто не читают документацию до конца, это вряд ли поможет.
>>1874561 >считающие что Python простой, потому что инфоцыгане так сказали. Сам по себе Питон простой, еще проще C# А advancуd concepts везде сложные, в любом языке, ибо обычно требуют SICP и comp-sci
>>1873283 (OP) Юзаю sqlalchemy, как понять с какой именно БД я в данный момент работаю (postgresql или mysql например) чтобы выполнить последующий код нужным образом?
>>1874633 >Сам по себе Питон простой Под знанием питона обычно подразумевается знание кучи библиотек, которые далеко не простые, и требуют знания тех самых advanced concepts.
>>1874709 >Математика ничего общего не имеет со "знанием языка X" Причем здесь математика? Не считая некоторых специфических тем, она в программировании вообще не нужна. >Большая часть этих бибилиотек идентична для любого другого языка. Не идентична. Тот же numpy не имеет аналогов ни в одном другом языке, а чтобы научиться им нормально пользоваться нужны месяцы. opencv, pandas, matplotlib - это все большие библиотеки, которые за один вечер не освоишь. Помимо этого придется осваивать типизацию, без которой в больших проектах будет совсем плохо, multithreading/multiprocessing с которыми в питоне заебешься из-за GIL, генераторы с корутинами, лямбды и прочее. Везде свой синтаксис и свои особенности.
>>1873513 >Я что-то не знаю? Москва. 50k. Не расстраивайся очень сильно.
Скорее всего какая-то компания, где был один разработчик, которые поддерживал веб. Потом он сделал x2, и они ищут нового, а сами мало чего в этих словах понимают.
>>1874717 >Не идентична. Тот же numpy не имеет аналогов ни в одном другом языке, а чтобы научиться им нормально пользоваться нужны месяцы. opencv, pandas, matplotlib - это все большие библиотеки, которые за один вечер не освоишь. Все эти бибилотеки ничего общего с питоном и языком не имеюТ, они вообще на С написаны При желании numpy на C моэно портировать
>>1874717 > чтобы научиться им нормально пользоваться нужны месяцы Это столько у тебя ушло? Можешь привести примеры как писал в начале с numpy, через месяц и через 3?
>>1874723 >Это столько у тебя ушло? Можешь привести примеры как писал в начале с numpy, через месяц и через 3? Я не помню, сколько точно ушло времени на один numpy, поскольку учил с нуля весь датасаенс и машоб. Библиотек, которыми я постоянно пользуюсь, где-то штук 15-20. На все вместе, включая практически всю стандартную библиотеку и особенности питона, ушло около 2 лет.
Минимальное адекватное понимание numpy - это знать, как ответить на вопросы вот такого уровня: >>1869665 →>>1869685 → . Полное понимание - это не задумываясь вертеть как угодно многомерные массивы, уметь в логические операции над массивами, индексы, минимальные/максимальные/средние значения по осям (например, найти среднее значение RGB у массива из картинок). Короче, когда любую операцию над массивом, которую можно описать одним предложением, ты можешь записать в одну строчку при помощи numpy.
>>1874734 Ты же понимаешь что вопросы такого >>1869665 → уровня решаются в течение 13 секунд содания test.py и написания print(x)?
> Полное понимание - это не задумываясь В этом то и проблема современных овер 45789е674586784 бибилиотек - implementation details change. За ними сложно уследить. Это как питон 2 и 3- там пиздец изменений. Их невозможно все в голове человеку держать UNLESS ты только этим и хзанимаешься всю жизнь. На эту тему говорил сам автор SICP https://habr.com/ru/post/282986/ Системы, что мы нынче оперируем, слишком сложные и не надежные. Нужен новый подход, подход "мертвого запоминания простых блоков" не действует, ибо простых систем и блоков больше нет. Индустрия за 20 лет изменилась. В результате, таких людей, которые воротят нос от тех, кто решает мелкие вопросы на месте путем а-ля "print' вместо запоминания мелочей, который могут постоянно менятьс - вживут. Вы вымрете, это не приспосабливаетесь.
>>1874745 >уровня решаются в течение 13 секунд содания test.py и написания print(x)? В том, чтобы тыкать print и смотреть на результат, нет ничего плохого - все с этого начинают. Но это этап вкатывальщика, эффективность которого стремится к нулю. Вместо затраченных 15 минут и 10 строчек кода, вкатывальщик потратит полдня и напишет 100 строк говнокода, а нетривиальные проблемы вообще не сможет решить. В этом и есть отличие сеньора от вкатвальщика - сеньор знает свой стек технологий от и до, и может быстро и эффективно решать на нем задачи.
А статься вообще не про это. Она про то, что не нужно все писать с нуля, и не нужно знать все уровни абстракции, начиная от принципа работы компьютера заканчивая тем, как работает питон.
>>1874749 > Но это этап вкатывальщика, эффективность которого стремится к нулю. I don't know, man, если даже Гвидо приходится смотреть, как работает стандартная библиотека, то есть ли шансы у нас, простых смертных?
Помогите, пожалуйста, уважаемые господа. Знаю английский язык, подскажите сайтов годных с курсами хорошими, можно даже за деньги, но лучше бесплатно, где можно потом сертификат получить знаю что всем на него похуй, но все-таки для себя хочется, а западный будет явно солиднее наших контор
>>1874904 Просто шарп это энтерпрайз ебанина с анальными стандартами. Го для молодых и шутливых, как и пистон, да и для одного и того же используются. Очень часто в вакансиях их связка идёт, так как с питона начинают критические сервисы переписывать.
Что из годного можно читануть после первой книги Лутца? "Fluent Python" Ramalho и "Effective Python" Slatkin'а норм будет или есть что-то годное промежуточное?
Анон, хочу вктатиться в автоматизацию тестирования, сам макака типичная. Выбирал между джавой и питоном, посоветовали начать с питона. Нашел какой-то фришный курс по питону на stepik для нубов, но там пока стандартные математические задачки и пока непонятно как это все пригодится. Возможно стоит что-то почитать дополнительно из литературы чтобы углубиться в тему? Как вообще лучше вкатываться в кодинг через питон?
Пистон просто просится стать компилируемым, в проекте все типами обмазано, никаких листов с разными типами данных, вот просто бери и оптимизируй компилятором.
>>1875214 Тип данных в списке может быть довольно абстрактным, вроде Callable, может быть Union из совершенно разнотипных данных, может быть Any в конце концов.
Братишки выручайте. Писал я сервис тесты для бэ и тут наш архитектор выдаёт мне что они фуфло, потому что некоторые сервисы проверяют как сервер возвращает CORS headers. И поэтому они валятся на контейнерах (которые нам сейчас вживляют). Потом он пишет, что CORS это механизм защиты браузера и это имеем смысл, Олько если сервис напрямую стучит браузером. Это типа не наш случай, потому что большинство наших сервисов идут через Gateway и соответсвенно это зависит уже от GTW передавать CORS супорт.
Ну и потом пишет свою версию теста, где проверяет Хедеры на содержание Access Control Allow Credentials true.
Что это за ботва и как ее правильно тестить? Спасибо
Есть два стула: сделать if else или генератор. Входные объекты инстансы классов (наследовать не могу, имплементации команд. Куски кода огромные) В один из инстансов в метод надо передавать параметр, потому не понимаю как можно реализовать красиво. Input: command.number Output: implementation = next(imp for imp in CMD_LIST if imp.command_code == command.number) return implementation.handle(). Так вот в один из handle надо передать параметр из класса в котором CMD_LIST является атрибутом. Дичь? Ну так вышло
Создавал сайт на Django в PyCharm, виртуальное окружение (venv) создавалось. Потом попытался выгрузить сайт на сервер, по инструкции из видео с ютуба что-то вбивал в putty - не получилось. Сейчас пытаюсь создать новый сайт - виртуальное окружение в PyCharm не создается и все файлы в проекте написаны шрифтом красного цвета. Что это и как это исправить?
>>1875410 Когда в командной строке вбиваю pip install venv, вылазит: ERROR: Could not find a version that satisfies the requirement venv (from versions: none) ERROR: No matching distribution found for venv
>>1875427 Ручками прямо папку venv и другие сопутствующие гитигнор-вещи. Потом в настройках Pycharm удаляешь интерпретатор для старого виртуального окружения и создаешь новый.
Аноны, я потерял мотивацию искать работу спустя 2,5 месяца, думаю продолжу минимум после сессии и тут я начал думать, хочу объективного ответа, а не от продаванов всяких курсов насколько нужна вышка, насколько нужна вышка программистом, насколько нужна вышка прикладным математиком-программистом. Я хочу стать настоящим профессионалом, но учусь на инженера и вопрос в том что я получаю техническую вышку, при этом я не ботаю 24/7, у меня есть время страдать хуйней, но корачка будет не программиста, другой вариант пробовать переводится на программиста, но там придется тратить сильно больше времени на учебу, а я боюсь не смогу еще деньги находить на еду тогда, вопрос стоит ли переводится на программиста и последнее, независимо от того где я учусь сейчас я мечтаю поступить в магу вышки на эти дата саенсы, надеюсь за 2,5 года хоть на платку смогу поступить, мне кажется тогда у меня точно есть будущее, посоветуйте что мне делать. Алсо хочу добавить, что мне интересно именно программирование и математика, а не получить навык и быть макакой даже 300к/нс, я бы хотел работать над чем-то действительно сложным и интересным. Особенно интересует мнение анонов с вышкой, которые докатились на мидлов хотя бы
>>1875482 Добавлю на всякий, я понимаю что я и так смогу вкатится, вопрос в том дает ли вышка действительно особую систему знаний, связи, проекты и т.д или лучше самому все наверстать, а ближе к синьерству там разберусь и всем будет плевать на мой диплом?
>>1875470 Алсо если ты тот анон с вопросом про деплой сайта на сервер, то не забивай на гит, а сначала узнай что это и почитай в гугле «pip requirements.txt”
>>1875470 >>1875473 >>1875484 >>1875486 >>1875487 Ctrl+Alt+A or selecting Add to VCS - надо было "добавить файлы в VCS" сочетанием клавиш Ctrl+Alt+A, и все файлы стали зелеными. Что бы это VCS не значило.
>>1875490 Правда я так и не понял почему это случилось и почему venv перестало создаваться без команды python -m venv venv. Загадки, загадки. Только начал учиться программировать - а уже чувствую себя таким заебанным.
>>1875490 Сказал же читай про гит, зря ты за джангу взялся, vcs вершон контрол систем, ты добавил в индекс файлы, советую курс на степике по гиту, а пучарм прекрасная ide, подсвечивает красным файлы вне индекса, зеленым дбавленные, серым закомиченные, синим измененные
>>1875500 Не создается даже если галка создать включена? Первое что я могу посоветовать, приготовится к грению жопы, потому что у тебя пользователь создан на кириллице, возможно это мешает, второе попробуй в консоли(cmd) ввести python3 -V или как там, сам погугли, вероятно питона нет в PATH, тут нужно читать как его добавить, так же почитай про переменные среды, переименуй пользователя, гайд есть на ютубе, а так же приготовься переходить на линукс, иначе будет слишком много проблем в будущем, отдельно гугли саму проблему с тем, что у тебя venv не создается(однако если раньше создавалась и ты включал галку, то я вообще хз что могло поменятсья)
>>1875501 Спасибо за совет. Когда я делал простенький сайт по курсу itproger (небольшой блог) - venv создавался. Потом с помощью этого видео - https://www.youtube.com/watch?v=BWtrVIVgA6c - я попытался переместить сайт на хостинг. Ничего не получилось. Но после этого venv перестал создаваться. Думаю это как-то связано с тем что я создавал виртуальное окружение в putty, хотя это не точно. По поводу твоего совету по переходу на linux подумаю, спасибо за совет. Как думаешь, какая версия лучше для программиста? Ubuntu?
>>1875502 Я сам вкатывальщик, установил убунту и ни разу не жаловался, думаю ты зря этим занимаешься, пока не разобрался с линуксом ставить на хостинг что-то, еще и без гита сложновато, начни с его-то более простого
>>1875504 Антош, как зарабатывать планируешь на программировании? Я вот сайты хочу научиться делать - и на upwork с fiverr, английский попутно учу. Еще думаю java выучить и android приложения пилить, может создам чего вроде Тик-тока и озолочусь. А ты что планируешь?
>>1875514 Хз как у анона, но пучарм у меня ещё тянет кучу плагинов и прочей хуйни. Написан он на джаве и тяжеловат при запуске. При этом вскод тянет парочку плагинов уровня "подсветки код в файле с расширением 'хуйпизда'".
>>1875534 появляется только файл django-admin.py, подсвеченный красным цветом, и в нем написано: "#!d:\python\shop\scripts\python.exe # When the django-admin.py deprecation ends, remove this script. import warnings
from django.core import management
try: from django.utils.deprecation import RemovedInDjango40Warning except ImportError: raise ImportError( 'django-admin.py was deprecated in Django 3.1 and removed in Django ' '4.0. Please manually remove this script from your virtual environment ' 'and use django-admin instead.' )
if __name__ == "__main__": warnings.warn( 'django-admin.py is deprecated in favor of django-admin.', RemovedInDjango40Warning, ) management.execute_from_command_line()"
>>1875483 Открой вакансии работ где собираешься РАБотать и посмотри требуется в них вышка или нет, че ты как маленький. Или ты думаешь на тебя после вуза выстроится очередь работодателей с зп 50-100к? лол
>>1875580 a возвращает элемент в позиции b a.index возвращает позицию элемента b в списке, если он там нашелся
Какая переменная конвертирует какой индекс в какое слово? У тебя в коде несколько переменных инициировано, мог бы ее имя назвать, а пока непонятно что тебе непонятно. Правильно и подробно заданный вопрос содержит в себе значительную часть ответа.
>>1875541 Я знаю что есть вакансии где требуется и где не требуется, я не об этом спрашиваю, я говорю о том, возможно ли без вышки стать программистом, а не макакой
>>1875721 У тебя лекции MIT по программной инженерии выложены в инет бог знает в каком году, если студентам-хирургам ещё нужен доступ в медвузы потому что там им надо на трупах людей тренироваться резать, то комп у тебя итак есть, надеюсь, а больше в вузе ничего нет к чему бы ты не мог получить доступ самообразовываясь, ну разве что вузовский преподаватель по сишке за отсос порекомендует тебя какой-нибудь 1с конторе в твоем городе или студенток в общаге ебать.
>>1873283 (OP) аноны, как в пандосе фильтровать по нескольким строкам? Наприме есть датафрейм, один из столбцов имена, хочу оставить всех кроме наташ и оксанок. Убрать только наташ или только окснок работает, но как сразу несколько таких фильтров сделать? df.loc[df['Name'] != 'Oksanka']
Вечер добрый, анонимус. Назрел вопрос. У меня есть несколько словарей в списке. Мне нужно перебрать все значения в списке, но это да черт с ним. Я не понимаю, каким образом взять одно из значений списка (кличку животного) и заключить его в name.
Можно как-нибудь посмотреть зависимости в pip до установки пакета? Нужно выяснить какая последняя версия rasa поддерживает tensorflow==1.14 и я задолбался перекачивать релиз за релизом.
>>1876099 Что надо-то? Какие имена подразумеваются? Если manya, devil, piggy, то, чтобы с ними рабоатть, у тебя должны быть соответствующие ключи в словарях {'name': 'manya', 'kind': 'cat', 'owner': 'dar'} и так далее. А так, что-то не ясно, какая у тебя задача
3 часа работы - и вот уже с сайта выгружаю тысячи архивных фотографией 4 часа работы - и вот уже при нажатии кнопки в текст вставляется старорусское оскорбление (белебеня) или умная цитата 3 часа работы - и фотографии автоматически редактируются в облаке и сохраняются с красивой нумерацией по дате
как же охуенно, а ведь я раньше неделями дебажил макросы на X7, а тут всё то же самое, но ещё и с распознаванием откликов программы и даже распознаванием изображений, это просто охуенно
То есть ничего не поменялось. Почему? Ну вроде как потому что for создаёт итератор объекта tulpa и работает уже с ним, а не с оригинальным объектом. После выхода из цикла итератор удаляется сборщиком мусора, а оригинальный tulpa не тронут. Такая реализация языка, узнали запомнили. Я же прав? Или нет?
Но это только начало. Давайте запишем умножение в виде краткой формы записи.
a = [1,2,3,4,5] b = (1,2,3,4,5) tulpa = (a,b)
for i in tulpa: ....i = 2 print (tulpa)
вывод: ([1, 2, 3, 4, 5, 1, 2, 3, 4, 5], (1, 2, 3, 4, 5)) То есть в изменяемом объекте поменялось, а в неизменяемом нет. Какого хуя?
Третья часть. Давайте попытаемся применить списковый метод к i в for:
a = [1,2,3,4,5] tulpa = (a,)
for i in tulpa: ....i.append(2) print (tulpa)
вывод: ([1, 2, 3, 4, 5, 2],)
То есть работает. То есть здесь i ссылается на элементы кортежа tulpa.
>>1876368 Макаба ожидаемо насрала мне в штаны. Но вы поймёте. Проебались две звёздочки. В первом примере i = i x 2, а во втором i x= 2, где вместо х звёздочка.
>>1876368 Это он тебе ещё ошибку не поднял ВМЕСТЕ с применением изменения, как, например, в >>> r = (3, 4, 5, [11, 22]) >>> r[3] += [33, 44] TypeError! >>> r (3, 4, 5, [11, 22, 33, 44]) Не помещай изменяемые объекты в неизменяемые. Насоздают парадоксов, а потом сами в них влипают.
То есть имя + запись в фигурных скобках и произвольное количество мусора между ними. Все такие записи в файле нужно найти и поместить в какой то контейнер и по запросу выдавать список имя-код. Попробовал реализовать с помощью pyparsing, вроде получилось, но с оговоркой. Вот код:
То есть он формирует кучу лишних вложенных списков, например кладет запись в дополнительный список если она отделена от предыдущего мусором. Если эту переменную(класса pyparsing.ParseResults) преобразовать в список хоть в ручную через list(a), либо через функцию этой библиотеки .asList(), то получается еще больший пидец в первом случае, либо вид никак не меняется во втором.
Что я делаю не так? Может мне другими средствами нужно с этим работать? Никаких содержательных гайдов по pyparsing не нашел, только совсем простые примеры, а работать с описанием модуля напрямую не хватает опыта, вроде беру оттуда функции, а результата нужного не получаю.
>>1876517 Спасибо, братик, почти получилось. Учитывает только строку в которой была открывающая "{", а дело в том, что записи бывают многострочные размером с целую страницу:
RCGO2.A.1 { @ Rule CGO2.A.1 : maximum poly > 1000 maximum poly > 1000 maximum poly > 1000 maximum poly > 1000
>>1876585 Можно добавить таг, который будет проверять конец контента import re
dictionary = {}
with open('file', 'r') as fp: name = "" content = "" end_of_content = True for line in fp: if not end_of_content: if '}' in line: end_of_content = True else: dictionary[name] += f"\n{line}" if re.match("[0-9a-zA-Z_.]+\s+{", line): name = line.split(" ")[0] content = line.split("{")[1].replace("}", "") dictionary[name] = content if '}' not in line: end_of_content = False
>>1876668>>1876677 От ошибки избавились, это да. Нужно подумать, что поставить вместо N, чтобы он строил сразу множества значений risk и doh как на пикрил Про np.zeros гляну, спасибо
>>1876609 >>1876585 Имя всегда идет с новой строки? И очень большой файл? Если в память влазит без проблем, тогда проще классикой, бегунком. Читаешь файло со строки до первого { - вот тебе имя, переходишь в режим чтения данных внутри, и двигаешь каретку до закрывающего } - вот тебе данные, резет лупа и снова пошел.
>>1876609 >dictionary[name] += f"\n{line}" >f не лишняя? Нет, это укороченная версия format() метода, работает, вроде, начиная с версии 3.5 или 3.6, если младше, то вот так: dictionary[name] += "\n{}".format(line)
Пагни, если сервис реквест тест не пасает спустя 3 минуты. Скажем из-за ошибки сервера, можно ли как-то ускорить окончание теста, чтобы он не ждал все это время? Как-то это регулируется? Грубо говоря снизить timeout до 1 минуты например.
>>1876988 Если сервер не висит, то отвечает за 5-10 секунд. Согласен, поэтому и хочу изменить. >>1877028 Да обычный get reques на Сервер с хедерами и прочими параметрами. Запрос в стиле: request = requests.get(“google.com”, headers=headers)
Котаны, продолжаю обучение, надавно спрашивал про создание instancов класса, и мне ответили, что проще инстансы создавать в списке. Я так понял, что вообще если хранящая объект переменная не задана изначально, то объект лучше НУЖНО хранить в чем-то перебираемом-итерируемом типа словаря, списка? Я не могу насоздавать себе переменных динамически типа: def names(how_many): for x in range(how_many): string = f'Warrior{x} = Warrior()' eval (string) names(how_many) ругается Warrior0 = Warrior() ^ SyntaxError: invalid syntax Только списки только хардкор? И еще из задания от линуксоила- задавать принадлежность команде игрока сгенерированных "войнов" (первая или вторая команда) нужно случайным образом. Делаем класс героя на классе юнит: class Hero(Unit): def __init__(self,id= idcounter(),team = random.randint(1,5),level= 1): Unit.__init__(self,id,team) self.level = level И при создании двух героев First = Hero(), Second = Hero() у них почему-то всегда будет одна команда, как будто рандом возвращает всегда одно значение. Если я делаю random в отдельной функции типа def randomteam(): return random.randint (1,5) и уже по умолчанию ставлю class Hero(Unit): def __init__(self,id= idcounter(),team = randomteam(),level= 1): то герои получают значение действительно случайное. Почему так? И где мне лучше писать эту функцию? оно работает, если я пишу в коде просто сначала глобальные переменные типа ID, потом функцию рандома, потом классы. Если я пишу классы до того, как встречается функция, то классы выдают ошибку при попытке генерации объектов. Куда эти функции прячут прогеры? Они выносят их в другие файлы и подключают в начале импортами? Как тогда рационально выносить эти функции чтобы не раздувать main.py? Стоит ли для чего-то глобального выносить каждую функцию отдельно в файл и потом уже в финальном main.py подключать всё? (имю ввиду подключать последние используемые уже в main.py модули)
И вопрос на развитие- как реализуется игровая логика, например, стратежки, а именно расположение функций и переменных в коде- есть глобальная переменная с id объекта где она объявляется? Она загружается при загрузке карты или еще где-то? Есть вывод графики, интерфейса, управления и собственно карта и юниты, и юниты , как я понимаю ООП- они должны быть базовыми классами "Юнит" с параметрами принадлежности игроку, с дочерними классами типа "Пеший"-"Техника" и для "пехотинца" уже подкласс "Человек"-"Орк", чтобы, например, по разному определять урон других юнитов "по оркам +100", и вот действие выделения юнита- оно может быть прописано в GUI или его можно/нужно прописать методами для базового объекта "Юнит" (если выделение оверлап юнит при отпуске мышки сделать переменную выделение True) И это все проверяется игровыми циклами типа фреймов или тиков по 60-n раз в секунду?. Я раньше только Construct немного ковырял, поэтому то, что находится глубоко в движке для меня загадка.
>>1877179 Блин, ты столько дохуя написал. Про рандом - значения дефолтных аргументов определяются один раз, при объявлении функции, а не каждый раз при ее запуске. Обойти можно так def func(param=None): if param is None: param=generate()
В продолжение поста >>1877179 И вообще- я решал задания на Codewars, всё было нормально кроме специфичного задания с созданием генератора чисел Фибоначи для трибоначи, четыребоначи и т.д. -я просто спасовал через пару часов, т.к. делать это для меня 1) сложно. У меня была обычная школа и дома обычный батя, забиравший провод и говоривший идти погулять к наркоманам на улицу 2) не вижу практической пользы. Мне бы формошлепствовать научиться нормально. Я жмакнул "показать ответ" и увидел, что многое было решено специальными формулами для вычисления, или вообще запросом к OEIS. Как и в прошлых заданиях, где я делал громоздкие конструкции if-else, а лучшими ответами считались короткие записи в одну строку, которые выглядят как будто их писал обфускатор. Я понимаю ценность краткости- её, после получения определённого навыка, проще-быстрее читать. Может она даёт буст к скорости выполнения (сомневаюсь, ну разве что мы не пишем дрова для нвидии на С или базы ютуба, фейсбука и т.д.)? Я даже гуглу задал вопрос- зачем разработчики пишут так кратко? И вот одна статья, которая оставляет вопрос- https://dev.by/news/ctrl-c-razrabotchik. Собственно, вопрос- нужно ли усиленно изучать математику и олимпиадные задачи, если пока что нету навыков формошлепа. Да, для ума это полезно, и забрасывать такие задачи не попробова- моветон. Но, всё же, может позже будет рациональнее изучать нужную тебе ветку? Не думаю, что попаду в НИИ в свои 30 лет, или вообще куда-то на работу. Пистон изучаю скорее для себя и, возможно, для фриланса, потому что работа теряется. А для практики-заказчика- не так уж важна будет предельная скорость работы, оригинальность и краткость кода, так? Ну, по крайней мере, для мелких проектов-решений. Или это будет плохая привычка, и хром тормозит всё больше, скорее всего, потому что там сейчас собралась куча формошлепов?
>>1877160 >Файлы довольно большие, 550Кб Большие это 550Мб. Вот тут уже оптимизировать надо. Если меньше 100Мб, то проще считать в память. Если меньше 10Мб, то даже и думать не надо.
В принципе если формат простой, то можно после этого обычными регулярками разобрать, то есть регулярками ищешь имя + скобки. Они работают очень быстро. Правда это для простых случаев, если возможна история, что есть комментарии со скобками, или же скобки могут внутри строковых значений каких-нибудь, то уже придётся извращаться и делать парсер.
>>1877283 Не очень корректен для ситуаций, когда закрывающая скобочка где-то есть, но не в начале строки. Надо чуть переписать на самом деле, чтобы группа 'value' жрала всё, пока не напорется на правильную закрывающую скобку.
Но смысл в том, что в данном случае скорее всего достаточно обычных регулярок, просто надо использовать режим re.MULTILINE. Pyparser не нужен.
Как возможно Jinja2 Template перевести обратно в объект XML или хотя бы Dict? <receipt> <header align='center'>{{ params[0] }} </header> <company align='center'> {{ params[1] }} </company> <inn align='center'> {{ params[2] }} </inn> </receipt> Есть такой вот шаблон, jinja2 высирает строку, а мне надо снова объект для парсинга
>>1876129 Попробуй использовать файлы requirements, сделай файл requirements.txt с таким содержанием:
rasa tensorflow==1.14
А потом набери, pip install -r requirements.txt, желательно в отдельном новом виртуальном окружении. По идее, pip сам должен раздуплить как и что ставить, чтобы результат соответствовал требованиям в файле.
>>1876129 Вот тут можешь джейсончики попарсить https://pypi.org/pypi/rasa/1.4.0/json список версий взять тут https://pypi.org/pypi/rasa/json Только учти что он requires python>=3.6, поэтому скорее всего у тебя питон древний и pip вынужден ставить 1.13 tf чтобы поставить сиротинушке с некропитоном хоть что-то
Я правильно понял, что асинхронность в питоне реализованна через эвент лупы операционной системы? В линухе epoll, например А либа uvloop подменяет его на свой, который более эффективно менеджит корутины?
Как с минимальными усилиями сделать фронт с парой виджетов для веб-приложений на фласке, если ты в рот ебал учить стак JS/CSS/HTML параллельно питону, не говоря уж о жсных библиотеках?
Посоны, а в какую сторону думать для того, чтобы понять частоту тонового сигнала входящего?
Есть такой код - https://pastebin.com/E8ssr397 Сгенерировал последовательность тоновых сигналов, записал. Как я могу (опираясь на свой кортеж) получить обратно буквы отдав последовательность тоновых сигналов?
>>1877942 Да нет, не в этом вопрос. Если я скрипту отдам wav файл с последовательностью тоновых сигналов, как скрипт научить понимать частоту каждого? Сопоставить-то нет проблем. Вот в какую сторону думать.
>>1877943 А что представляет из себя файл? Просто набор звуков одинаковой длинны без пауз? Найди какую-нибудь либу, которая показывает частоту и добавь это в массив попутно удаляя последовательные дупликаты
Ребята, писал в реверс тему, напишу на всякий случай и сюда, тк не особо шарю в пайтоне. Решаю ctf Есть такой вот лог файл: https://hastebin.com/nuxunofumu Из него вытащил само задание: https://hastebin.com/qikirofoli Это простой python скрипт, который сам себя расшифровывает
НоооОО! Пароль нам неизвестен. Я насколько понял - пароль 3 символа UTF-8!!!!!! Те 100к в 3 степени вариантов? Это только брутом решать? На том же пайтоне скрипт написать? Есть идея проверить utf-8 рендж у соли и прочих base64 строк чтоб на основе этой гадости генерить варинаты под брут пароля. Но это низкобальное задание, вряд ли там настолько все сложно..
Суть в том, что если печатаю из системы у меня текст нормально определяется принтером и он печатает символы в верной кодировке, из IDE получается хуйня. Не понимаю в чем дело.
>>1873283 (OP) есть задача: в папке лежат файлы с названиями: a1.jpg, a2.jpg, a3.jpg, b1.jpg, b2.jpg, b3.jpg, b4.jpg. Программа выбирает в элемент массива список с именами a1.jpg, a2.jpg, a3.jpg, после окончания - создает второй лист в массив с именами b1.jpg, b2.jpg, b3.jpg, b4.jpg Вопрос, как такое реализовать?
Не совсем понимаю, где в джанге хранить бизнес-логику. Например, я пишу API, и мне нужна функция, которая принимает географические координаты, потом обрабатывает их и возвращает другие координаты. Где мне эту функцию разместить?
Разбираюсь с индийскими pytest тестами. Ну черт с ним половина хотя ты работает. Поставили задачу создать тест сюты для определенных релизов. Например, в релиз А включить эти тесты, в релиз Б - вот те. А в релиз С включить все теста. Как это сделать грамотнее всего? Через маркёры собирать новый тест файл для каждого релиза? Или через импорты. Тогда импортов будет много. Ещё проблема что там есть сервис тесты, а есть Юай где запускается браузер. Для таких тестов создавать отдельный тест файл?
>>1873283 (OP) я делаю программу, которая будет создавать слайдшоу из изображений и музыки, но проблема в том, что мне надо сделать как-то чтобы изображения менялись с такой скорости, пока не закончится видео (длина видео = длине музыки), но они меняются быстро, и получается, что последнее изображение так и висит до конца видео.. пробовал играться с частотой кадров, но это ни к чему не приводило
Внезапно придумал себе идею для пет проекта (с целью вката на роботу) Короче сервис-обертка над яндекс маркетом (потенциально не только над ним). Пользователь выбирает услугу/магазин/что-то с большим кол-вом отзывов. Сервис парсит комментарии и с помощью машин лернинга пытается сделать вывод - какое примерно кол-во отзывов могло быть написано ботами/работниками магазина. Чисто лингвистическим анализом, всякие повторяющиеся паттерны в текстах и прочая залупа из этой области. В качестве вротенда вью, бек джанга, как мл присобачить, пока не знаю.
Че думаете? оценит ли потенциальный даватель зряплаты мои потуги?
>>1879186 Если это можно сделать без машиннообучателя, значит будет без него. Это просто, что первое пришло в голову. У меня пока мало познаний в ёба-алгоритмах, 3 курса шараги все-таки. Говорю же, идея совершенно спонтанно родилась - смотрел какого-то обзорщика на утубе и он такой говорит "бля, не верю отзывам с высокими оценками, всегда все куплено!"
>>1873283 (OP) срочно, двач, дедлайн горит/// я закончил писать скрипт, билдю её в .exe через пакет pyinstaller, но после запуска .exe файла, выдается такая ошибка, с чем это может быть связано? python 3.7
>>1879356 Обмануть АИ с помобщью АИ легко. Твой анналоиз так же не будет вызывать доверия. Плюс всегда будет понимание что у тебя так же могут купить "анализ" как купили отзывы.
>>1873283 (OP) Как в Пистоне в датаклассе тайпингом обозначить поле, которое не обязательно? То есть при создании датакласса его может и не быть и это нормально
В тайпскрипте я бы написал: someField: number, someUselessField?: string
Не знаю прилично ли такое просить но не мог бы кто-то накатать такую функцию? Не могу осилить, курил за гаражами вместо геометрии с математикой.
Есть точка в центре экрана, есть вторая рандомная в любом месте экрана, нужно построить вектор и на определенном расстоянии вычислить третью точку. То есть на вход подается зеленая и синяя точки + расстояние, на выходе получается красная.
>>1879976 > и на определенном расстоянии вычислить третью точку Если у нас не задано направление, то эта красная может находится на любой совершенно позиции на твоём заданном расстоянии, то есть, на окружности с радиусом, равным твоему расстоянию. Разберись для начала с задачей. На рисунке у тебя они на одной. Прямой. Это тоже внезапное условие или нет?
здаров, двачеры отвлеку вас от питонячих проблем и задам вопрос (но сначала подводка) Короче слушал я радио-т недавно, и Бобук, один из ведущих (и человек, к которому в целом у меня доверительное отношение в плане профф области) сказал, что, если ты не делаешь свои пет проекты в свободное время после работы, то ты не считаешься нормальным программистом и программистом вообще отсюда вопрос: какие у вас пет проекты? и когда вы находите на них время? при условии, что рабочий день (ну лично у меня) никак не нормирован и может занимать от 10 до 16 часов работы в день
>>1880094 Pet-project'ы для белых людей, у которых рабочий день 4 часа, им платят в 5 раз больше, чем должны и 6 часов в день они на тваттере проводят. Ты - негр. Куда ты к белым людям лезешь?
>>1880063 Так условие писал деградант какой-то > нужно построить вектор и на определенном расстоянии вычислить третью точку Вектор от чего к чему? Почему это именно вектор, а не прямая? Это важно для задачи? Вычислить точку? Может, координаты вычислить, малолетний дэбил? И на определённом расстоянии от чего? Короче, либо пиши нормальное условие, либо пиздуй в начальную школу учиться выражать свои мысли.
скажите, если я хочу соблюдать все лицензии на что обращать внимание, я даже не знаю могу ли я постгрес использовать или джанго, в каждый продукт нужно залезать и узнавать свободно ли он распространяется??
Антоши, в треде по математике никто не ответил, хочу здесь поинтересоваться. Задача написать сайт с генерацией примеров по вышмату, нужен алгоритм генерации примеров, что можно найти по этой теме, пока 0 информации, как искать критерии правильности примеров, как составлять и т.д, крч как составители учебников это делают, особенно если примеров в книге 300 штук
>>1873283 (OP) Челы, нужна книга по истории языка пайтона, для пополнения библиографического списка, есть ли такие? Просто хоть че-то вставить, наобум писать книгу не хочу, вдруг проверят.
>>1880361 Создатели обычно такое пишут на своих сайтах, и в статье на Википедии такие моменты указываются. Чтобы знать наверняка, вот в опенсорсных продуктах прям лежит такой файл LICENSE, там все указанно, продукт распространяется вместе с этим файлом. Если проект лежит на гитхабе, то можно прямо там и посмотреть этот файл, без скачивания всего проекта, можно просто найти файл LICENSE и жмякнуть по нему, а можно на специальною кнопку нажать.Или вот если что-нибудь устанавливаешь, там бывает вылазит окошко, где надо согласится с условиями использования, чтобы продолжить, там и указываются эти условия. Вот, например, файл LICENSE джанги: https://github.com/django/django/blob/master/LICENSE
>>1880423 > крч как составители учебников это делают, особенно если примеров в книге 300 штук Ну как бы специалисты в конкретном предмете учебники составляют. Люди десятилетиями наукой и образованием занимаются, примеры накапливаются.
А кто ты такой? Для которого всё "вышмат". Тебе по дифференциальной геометрии примеры нужны, по уравнениям в частных производных, по алгебре выссказываний или может ещё по чему-нибудь? Или всё вместе одновременно?
>>1880724 Я серьезно даже не для собеса а чисто для себя, прост каты на основные алгоритмы чтобы посидеть поразбираться ну и чтобы знать что есть такие алги.
>>1880863 Альтернативный вариант, не добавлять атрибут, а завести отдельный глобальный словарь (либо хранить его в атрибутах функции-декоратора), где ты считаешь, сколько раз функцию вызвал. Декоратор будет регистрировать функцию в словаре и при каждом вызове увеличивать соответствующий счётчик.
Так в чём-то лучше, поскольку ты не меняешь атрибуты функции, функция уже совсем никак не может узнать, что ты её оборачиваешь, и ты можешь центральным образом мониторить, какие функции ты вызывал, а какие нет.
>>1880751 Мне как-то кинул книгу по алгоритмам, я начал читать, и знатно прихуел, и даже не то что читать я листать заебался. Там даже не код, а псевдокод, и даже не как примеры, а вообще все подряд, и еще при том что книга переводная. Ну полистал и бросил. И почему то все советуют ее, мб это троллинг такой как с боку но пику, хз.
Пора бы мне уже свои хэлло ворлд и говнокалькуляторы заворачивать в красивые оболочки. Анонче, посоветуйте туй (на худой конец гуй, но тогда хотя бы максимально универсальный, что бы и для десктопа, а не только для мобилы). Спасибо.
>>1880094 В общем согласен, с этим товарищем. Очень странно на собесах наблюдать людей, с 5+ годами опыта, которые рассказывает про то, как классно они решали задачи на работе, при этом, на гитхабе у них лежат лабы из универа, максимум. И всё это ещё более странно выглядит, когда знаешь, что сам пилишь пет проекты и тебе это интересно, коллеги твои пилят их и узнают много нового, изучают технологии.
>>1880871 Low-IQ долбоебушка Алгоритмы не привязаны к конкретному языку, Big O применимо к любом языку программирования. Ты никогда не вкатишься, забей.
>>1881016 >при этом, на гитхабе у них лежат лабы из универа, максимум А что у крутых пацанов лежит?
> когда знаешь, что сам пилишь пет проекты и тебе это интересно, коллеги твои пилят их и узнают много нового, изучают технологии. И нахуя очередной бложик выкладывать в паблик? Щупанье технологий может быть и в рамках тривиальной задачи.
Анон я не понимаю. вот выполнил я $ pip install пакет-нейм дальше если пытаюсь выполнить $ пакет-нейм действие-нейм я получаю пакент-нейм: command not found
>>1881019 > А что у крутых пацанов лежит? Ролл-идей-тред лежит не так далеко, попробуй там.
> И нахуя очередной бложик выкладывать в паблик? Сделай не очередной бложик. Сделай фреймворк для создания кроссплатформенных ботов, или зайди в идей тред и там выбери что интересное. Задач тысячи, старых либ, которым нужна поддержка, тоже тысячи, но вместо этого анон "не знает что делать" и только бложики пилить может.
> Щупанье технологий может быть и в рамках тривиальной задачи. Да? Ну вот работаешь ты на галере, юзаете для сбора логов/метрик/визуализациий внутренний продукт <Залупа2000>, приходишь на собес и как тебе помогут знания внутренней хуни, если ты тот же Promtail/Loki/Prometheus/Grafana в глаз никогда не видел и только "читал що такое есть, да", а попробовать то и негде. Тру стори с недавнего собеса. И да, с этими технологиями я познакомился в пет проекте, как и с Sentry, к примеру, потом было приятно о них на собесе сказать и применить в работе.
>>1881121 >Ролл-идей-тред лежит не так далеко, попробуй там. Там в основном алгоритмы, а не щупанье новых технологий, да и спиздить к себе проект перетерев гитового автора дело 5 минут.
>Задач тысячи, старых либ, которым нужна поддержка, тоже тысячи, но вместо этого анон "не знает что делать" и только бложики пилить может. Ковыряние в легаси говне это "пощупать новые технологии", это ковыряние в легаси говне
>Да? Ну вот работаешь ты на галере, юзаете для сбора логов/метрик/визуализациий внутренний продукт <Залупа2000>, приходишь на собес и как тебе помогут знания внутренней хуни, если ты тот же Promtail/Loki/Prometheus/Grafana в глаз никогда не видел и только "читал що такое есть, да", а попробовать то и негде. Да, для этого пет проекты и делаю. Только вот смысла их выкладывать в паблик не вижу, это никак не приумножает твою ценность как кодера, быстрее опрос по самой технологии сделать.
>>1881153 > спиздить к себе проект > пиздинг Вся суть.
> Ковыряние в легаси говне Можно переписать заново или сделать по-своему у себя в репе, было бы желание. Писал пару библиотек для АПИ сторонних сервисов, аналоги уже были, но не поддерживались и их подход совсем мне не нравился. Как результат - моя либа попала в доки этих сервисов, как пример работы на питоне.
> пет проекты и делаю > Только вот смысла их выкладывать в паблик не вижу > У меня все есть, только я вам это не покажу Напомнило шуточку про "сосед говорит, что 8 раз за ночь может".
Открытый код на гите показывает твои навыки и умения писать код, наличие своих долгоиграющих проектов так же показывает твое умение в поддержку своей кодовой базы(и тут уже код и закрытым может быть, главное что б проект работал, и его можно было бы потыкать).
Твой проект\инструмент не обязаны быть популярными, не в счет твои звезды и подписчики, но если тебе есть что показать - огромный плюс. Если нечего показать - ок, твой выбор, кому-то все равно, кому-то нет, каждый собеседующий сделает свои выводы. Как я писал выше - очень смешно наблюдать за человеком с охуетькаким опытом, который с запалом рассказывает про свои успехи на работе, но при этом не имеет никаких пет-проектов, ни открытых, ни закрытых. Т.к. по опыту могу сказать, что бизнесс развивает проект не тем путем, которым бы развивал его разработчик и, если тебе интересно направление, неизбежно появляются свои идеи\предложения, которые трансформируются в пет-проекты\инстурменты.
>>1881229 >Вся суть. Но доказать, что это твой код, если это не контрибьютинг в попенсорс ты не сможешь.
>Открытый код на гите показывает твои навыки и умения писать код, наличие своих долгоиграющих проектов так же показывает твое умение в поддержку своей кодовой базы(и тут уже код и закрытым может быть, главное что б проект работал, и его можно было бы потыкать). Давай тестовое, увидишь как кандидат может писать код и будет гораздо большая вероянтность, что ты увидишь, именно его способности.
>Напомнило шуточку про "сосед говорит, что 8 раз за ночь может". While he has written a ton of code at his work in the last year, he hasn't posted anything that can be viewed publicly: he has no public commits, he hasn't created any repositories of his own and he has an insignificant number of followers. Despite all that he's still the best developer I've ever had the pleasure of working with.
>Твой проект\инструмент не обязаны быть популярными, не в счет твои звезды и подписчики, но если тебе есть что показать - огромный плюс. А статья выше говорит обратное, в подавляющем большинстве случаев его не смотрят. И пока не предложишь способ определения является ли код действительно кодом кандидата, который он писал когда-то это не имеет смысл.
>>1873283 (OP) ньюфаг в питоне, знаю только часть основ по видосикам на тыртубе, пришел сюда за информацией и ахуел: книг в шапке много и хуй знает с чего начать, глаза разбегаются. добрый анон, помоги, напиши название книги которая для этого подойдет больше всего и на русском.
>>1881529 >September 29, 2013 Anon pls, там количество изменения со 2-го на 3-ий коммунити нахуй разорвало в клочья, до такой степени тчо некоторые пердуны все еще на 2-ке сидят, ибо НИСОГЛАСНЫ. Та книга вообще про 3 не знает
сап питонобоги! Я сам тупица, помогите плз, по биологии надо вытащить несколько столбцов из txt файла в строку. И записать их потом в другой файл. https://dumpz.org/aCAadC743RQg получается вытащить столбец, но не знаю, как его перевести его в одну строку.
>>1881763 Там должны быть разделители же. Вот по ним отделяй один столбец от другого Потом: arr = [] for i in столбец: arr.append(i) string = 'твой разделитель'.join(arr)
Здорова пацаны. Есть стринга, состоящая из столбцов чисел 20 154 51 543 85 351 и т.д.
и есть словарь, где каждому первому числу столбца соответствует стринга id_to_word = { 20: 'raz', 51: 'dva', 84: 'tri'}
Задача в том, чтобы первое число каждого столбца поменять по словарю на какое-то слово, а потом выблевать такие же столбцы, например: raz 154 dva 543 tri 85 и т.д.
Как это сделать? Не понимаю. При этом надо учитывать, что во втором столбце могут быть числа как в первом столбце, их переводить не надо. Числа в первом столбце не по порядку и не подряд.
Никак не получается побороть циклы над списками. Вот анон, в чем разница между for i in spisok for i in range(spisok) for i in range(0, len(spisok))?
Я так понимаю, в первом случае я итерирую по объектам внутри списка. А во втором и третьем случае?
А если мне надо совершить в этом цикле какое-то действие с объектом списка (например добавить его в другой список), то это будет spisok2.append(i) или spisok2.append(spisok)?
Ко-ко-ко, мы хотим чтоб в методах были видны все аргументы, по этому селфы это круто. Но блять, нихуя непонятно как этот селф ПЕРЕДАЁТСЯ блять, сука, любой инстантс класса всегда чтоль методу себя передаёт в первый аргумент??? А если у меня там числа нахуй нужные?? Где посмотреть исходники этого говна!
>>1882358 self это просто соглашение, что бы вот так называть первый аргумент. В принципе его можно нарушить и назвать как-нибудь иначе, например this. Хотя настоятельно религия требует self.
Когда ты объявляешь метод класса, создаётся какая-то функция, которая даже не метод, а просто функция. Когда ты вызываешь метод объекта, тогда в эту функцию первым параметром передаётся сам объект, а остальными прочие параметры, с которыми ты этот метод вызвал. Вот и всё, никакой магии.
>>1882358 Всё просто же. Смотри https://ideone.com/Oyhu19 Строки 11 и 12 это одно и то же, и вот чтобы не носить этот self постоянно за собой, он передается автоматически.
>>1882343 >>1882345 Ты нахуй приносишь примеры, которые в питоне выдадут исключения??? Ты хоть чуть чуть проверяй, иначе не вижу смысла тебе что-то рассказывать
>>1882471 >Это как у всего раньше был твитор, так теперь должен быть телеграм, чтобы как у людей. Пиздос. Все пишут ботов для телеграма, но реально их вообще кто-нибудь использует? Или это зумерские поделки, которые отваливаются еще на стадии идеи?
пацаны у меня есть два модуля: один не поддерживает питон 3.8, но поддерживает 3.7. Другой не поддерживает питон 3.7, но поддерживает 3.8 втф и что делать? на 3.6 пилить проект? это ж старье
Привет, аноны. Вопрос к работягам: можете описать свой рабочий день? Пришли на работу, и что? Сразу начинаете по-стахановски закрывать таски? Сколько часов у вас получается работать продуктивно?
>>1882501 Встаю, умываюсь, включаю пеку. Открываю трекер, читаю рабочую почту и смотрю сообщения об ошибках, прилетевшие с тестового стенда. Делаю чай/кофе. Могу сходить посрать. Вот сейчас релиз приближается, сижу собираю релизную ветку. Открываю включаю музыку и поехал. В перерывах читаю сосач, хабр, профильные каналы в телеге. Иногда переключаюсь на свои проекты. Продуктивно 4-6 часов. Иногда, когда приходится больше 8 часов работать, то и продуктивность 8 и более часов.
>>1882393 >>1882390 Спасибо за ответы, я понимаю что такое self и то, что это условное название я тоже понимаю. Суть моих вопросов к невидимости передачи аргумента, и опасение за то, что в будущем такого будет ещё больше.
>>1882615 > > С 9(10) до 12 бездельничаю, обедаю и начинаю работать(удалённо), 4 часа работаю, час гуляю, потом ещё 3-4 часа работаю. В остальное время читаю книги или сайты всякие.
Зяблы, я JSер и знаю синтаксис питона. Нужен чат-бот или нейросетка или что-то еще для моей простой задачи, которую я опишу и вы меня наверное уже направите. У меня SPA, которое записывает по voice activation аудио файлы (формата mka), которые отправляются по вебсокету на мой бэк express, где конвертируются в ogg и отправляются в Яндекс на распознование. Возвращается строка с текстом. Теперь, мне надо понять че надо-то. Запросов там не много, максимум 10 штук (например : хочу банковскую карту => и мне должен прийти ответ, что ему нужна карта и все я редирект на нужную страницу). Собственно, как я понимаю, мне нужно обучать или переобучать модель под свои хотелки. DS я не планирую становиться, но задачу надо попытаться выполнить, да и тем более интересно. Соотвественно мне нужен гайд/видео или еще что-то, как сделать такую простую нейросеть и самое главное, как ее обучать или переобучать на русском языке. Может быть мне достаточно будет какого-то чатбота или dialoglow? Трудностей я не боюсь
Вот такая программа из учебника. Глава про ООП, классы. Объясните пожалуйста, максимально доступным языком: при создании каждого экземпляра класса, параметру object передаётся значение, например "Бобик". При запуске этой программы, кроме прочего, через метод talk на экран выводиться текст и значение параметра name, который, по непонятым мне причинам имеет значение параметра object.Как так? Ему же не передавали это знание! Как он его получил?
>>1882783 Есть класс Critter. У него есть конструктор класса. Конструктор описывается в методе __init__(), который может принимать значения аргументов. Конструктор - это метод, который всегда вызывается при создании экземпляра класса: crit1 = Critter("Бобик"). Конструктора может и не быть. В твоем случае конструктор требует указать обязательный аргумент name, таким образом при создании экземпляра класса ты пишешь Critter("Бобик"), после чего конструктор примет "Бобик" за name и будет с ним работать внутри себя. Видишь магическое слово self? Все методы внутри одного класса должны содержать первым аргументом слово self, чтобы общаться друг с другом и передавать друг другу переменные, перед которыми тоже должны стоять self. В твоем конструкторе создается переменная self.name, на языке ООП это называется полем класса. При создании экземпляра класса (т.е. вызове метода конструктора) ей присваивается значение "Бобик". Поскольку метод talk() находится в том же классе Critter, отныне он способен работать с полем класса self.name, читать его значение или менять. Поэтому, когда ты создашь экземпляр crit1, то можешь использовать для него метод класса talk(), который выведет "Меня зовут Бобик".
>>1882343 Пчел, че ты как этот? У тебя есть spisok = [0, 1, 2] Это готовый список, ты можешь пройтись по нему итератором, поскольку списки (а еще кортежи, словари, множества и даже единичные строки) итерируются. Поэтому for i in spisok пройдется по каждому значению списка: 0, 1, 2 - и что-то с ним сделает. Функция range() принимает на вход число и возвращает "типа" список целых чисел от нуля до указанного числа. С точки зрения итератора, range(2) - это то же самое, что [0, 1, 2]. Поэтому ты либо используешь for i in range(2), либо for i in spisok. Не надо spisok пихать в range(), последний будет ругаться.
>>1882792 Спасибо за развёрнутый ответ! Перечитал несколько раз. Понял назначение self и дополнил представление о роли конструктора. Единственное что осталось не понятным по этой теме: роль параметра object, и почему он подсвечен как функция.
>>1882807 В скобках класса можно указать класс, от которого он будет наследоваться. Object - родительский класс Critter; последний наследуется от первого. Вот только в Пистоне все является объектом, поэтому указывать в скобках object не имеет никакого смысла, ньюфагов это только запутает, поскольку, если не указано иное, object по дефолту будет родителем любого класса. Удали его вместе со скобками и будет тебе счастье.
>>1882829 >в пистоне самый классный ООП Такое мог сказать только отбитый питонист. ООП в питоне - кусок говна. >чисто сокрытие данных Сокрытие, обеспечивающееся не нормальным модификатором доступа типа private, а ублюдочными андерскорами, реализация 10/10. >наследия считай нет Ебанько?
>>1882845 > Есть какой-нибудь хороший материал по этой теме? Русский/английский не важно. Информатика? Можно поискать на ЮТ иностранный курс Computer Science basics
>>1882845 >почему вот тут вторым примером приводится итерация по списку через range? Да не по списку, блять, а по ДЛИНЕ списка. Ты буквы читать умеешь? length = len(list) for i in range(length):
>>1882343 for i in range(spisok) - хуйня какая-то for i in range(0, len(spisok)) - 0 можно не писать, а так это стандартный способ итерации по индексам коллекции, хотя проще с enumerate.
Что вообще такое range? range(начало, конец, шаг) возвращает итератор на массиве целых чисел от начала(включительно) до конца(не включаем) с заданным шагом(если не указывать, то будет 1)
Что это значит: Получим все значения из итератора через list
>>1882358 >любой инстантс класса всегда чтоль методу себя передаёт в первый аргумент Это так. Это и в C# и Java так же, просто происходит чуть менее явно
Есть куча классов декорированных Dataclass'ом в которые я данные заворачиваю для type hint приемлимых. Как народ структурирует это все? Сейчас я просто вынес это в model.py и импортирую оттуда понадобности.
В книге написано: "Значение присваивается только ОДИН РАЗ, при ПЕРВОМ ОБЪЯВЛЕНИИ класса."
В этой программе, метод-конструктор __init__ при создании каждого объекта класса, повышает значение атрибута total на 1. Мне кажется, что этот факт перечёркивает вышеупомянутое утверждение из книги.
Ты обращаешься к методу как my_obj.foo() или self.foo(), если изнутри объекта
Вот фактически эта первая часть и переезжает в виде первого параметра в foo
В принципе ты можешь даже явный вызов сделать. Если у тебя класс MyClass и метод foo class MyClass: ____def foo(self): ________print('foo')
my_obj = MyClass() ты можешь вместо my_obj.foo() делать MyClass.foo(my_obj)
Логика такая, что питон, когда видит запуск метода с точкой, лезет в объект, берёт его класс, вызывает функцию из класса, подставив первым тот самый объект.
В принципе это типовой механизм реализации ООП, в разных языках примерно такая же схема и используется. Поэтому непривычной питон-магии тут нет на самом деле. Поведение более явное, чем во многих других языках программирования.
Тот же JS/php/c++ более запутанные, потому что там this используется, который как бы неизвестно откуда берётся.
Посоны, можно ли в Django в контроллере проверить как-нибудь то, что пользователь вошел или нет? Типа пользователь заходит на сайт, передается запрос с помощью маршрута в контроллер, а в контроллере можно проверить тип если пользователь уже зареган, то получить одну страницу и одни данные, ну а если не вошел, то другую страницу и другие данные? Я чёт пробовал проверять через if request.user, но что-то не работает особо. Мне кажется request подходит, если из формы данные получаешь.
Котаны, перекат скоро. А зачем вообще нужно ООП? Какое практическое применение есть кроме моделирования в играх типа стратегий или пары похожих объектов? Нужны ли классы для того же Джанго? Зачем ООП может встретиться в работе сайта или бд?
ООП нужно для того, чтобы лучше организовать работу со сложными данными. Когда ты какой-то набор данных можешь выделить в некую сущность, вот тогда и получается объект.
Как иначе работать с кучей объектов одновременно?
Все эти принципы появились из чисто практических соображений.
Просто объект вообще выделяется очень много где, без этого никак. А уж в крудах, которые чаще всего делают на Джанго, ну совсем никак.
Принципы ООП, наследование-инкапсуляция-полимормизм, это уже нужно для организации большого кода.
Чтобы это прочувствовать, нужно просто попробовать что-то большое написать без ООП и с ООП. В конце концов ты сам это ООП и переизобретёшь, если думать над кодом будешь.
>>1883153 Ну я чуть-чуть не представляю практики. Например есть бд для регистрирующихся людей на сайте. У пользователя есть выбор параметра пол и можно выбрать м или ж или боевой вертолёт и для боевого вертолёта будет создан необычный подкласс, которому выдача фильтрует только таких же людей из базы? Илл 50 прочих полов тоже своя сущность типа вертолёт заднеприводный, гирокоптер, субмарина с ракетами вода космос и тогда, возможно, мне понадобятся классы для взаимодействия между объектами по разному, чтобы не писать много if в регулярных выражениях? Я просто загуглил в чём смысл ООП или практическое применение, и вторая статья с критикой всех столпов- полиморфизма, потому что переносится всё равно очень много аргументов, наследуемость - в новый проект всё равно без редактора не потащишь, инеапсуляция- якобы прячет код от разработчика. Мне бы кто объяснил как дураку. Та же инеапсуляция- например обрезает пространство имён, нпследумость- для одного проекта будет работать и сэкономит время на код. Полиморфизм- ну это я наверное смешиваю его с наследуемостью, якобы для разных объектов можно использовать тот же код (вызов), если прописывать специфические функции, так? Скорее всего я просто сам ещё не лез во что-то крупнее скриптов, задачек для школьников или чат-бота просто, нужно глянуть примеры... Пойду.
>>1883384 Во втором случае generate_val() будет вызван только один раз, во время старта скрипта, а не создания экземпляра класса. В первом случае будет вызываться каждый раз, когда создаётся объект этого класса.
Скорее всего ожидается поведение такое, какое должно быть в случае (1).
Довольно известные грабли, когда агрумент по-умолчанию это список или словарь, там та же история, и на этом часто спотыкаются.
Однако в случае как здесь в каких-то извращённых случаях может требоваться поведение как в (2). Хотя в этом случае оформлять всё равно лучше иначе, например инициилизировать какую-нибудь переменную уровня класса таким образом, а внутри конструктора уже копировать её значение.