ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat - с этого начинать, перед тем как задавать вопросы.Книжки: https://yadi.sk/d/HQhhsBsq3TVRUqЕщё книжек? https://yadi.sk/d/tArKKuQu3KejuqБольше книжек Богу книжек! https://yadi.sk/d/H-00n-UG3RSQemКоммуна: https://sites.google.com/view/pypry/
Немного добавлю от себя к шапке:https://pythonprogramming.net/Вполне неплохие туториалы для ознакомления с той или иной либой.Но только для ознакомления, т.к. материал устаревает и изначально подаётся поверхностно.Обязательно к прослушиванию и просмотру:https://www.youtube.com/results?search_query=Raymond+HettingerАноны, добавляйте свои ссылки на годные онлайн-курсы и т.п. по различным направлениям, если таковые имеются.
Привет аноны - датасаенсеры!Будьте добры, ответьте, пжлста, на парочку вопросов :31. Много ли среди вас людей без математического/прогерского высшего образования? Есть ли вкатывальщики с непрофильным ВО, но прошедшие кучу курсиков? 2. Как выглядит сейчас рынок датасаенсеров? В основном народ работает в крупных компаниях, решая практические задачи, или есть независимые аутсорсовые аналитические центры, работающие сразу на несколько контор? Понимаю, что есть и то, и то, вопрос просто в том, чего больше и куда лучше соваться.3. Как вы своё портфолио составляете и составляете ли? Просто перечисляете, какие модели вы построили и насколько они повысили таргетные показатели?4. Сколько человек обычно работает над анализом одного датасета?5. Существует ли потребность в дата-саенсерах, неплохо шарящих в медицине?Заранее спс за ответ.
>>1421889Не датасаентист, но работаю непосредственно с ними.1. Не много, в команде из 12 лишь трое было без профильного ВО, но они были после колледжа и в процессе получения ВО. Они там чисто от армии косили, да. Но тут есть одно но, огромное, ибо они поехавшие на этой тематике и у каждого по куче сертификатов было с онлайн платформ, по прохождению курсов разных, связанных с их работой. Поэтому фору дали бы любому товарищу с ВО.2. Держать отдел датасаентистов - дело дорогое. Успех никогда не гарантирован, на обучение одной модели, могут уйти недели, на охуенном оборудовании, а результат может оказаться говном. Поэтому чаще всего это либо отдел в крупной фирме, либо же сама фирма состоит на 90% из ресерча и продает свои услуги.3. Ничего не могу сказать.4. Просто над анализом? Один. Над аналитикой - один. Над построением модели обучения - один. Над использованием модели - один/два(зависит от объема зада решаемых, т.к. обычно юзается куча моделей и каждая отвечает за свое, к примеру распознавание лиц, распознавание номеров автомобилей, распознавание возгораний и т.п.). А ещё есть те кто оптимизируют, тестируют. А ещё обычно идёт разработка в нескольких направлениях.5. Узконаправленно, но почему бы и нет? Ищи и найдешь.
Подскажите по фласку, пожалуйста.Есть проект, сейчас в нём используется flask-bootstrap. Формы wtforms получают визуальное отображение опять же с помощью flask-bootstrap.Но оный плагин использует бутстрап третьей версии.Не могу выбрать, на какой хуй сесть - использовать просто фласк, импортировать бутстрап как все обычные люди с его cdn прямо в шаблон и прописывать формы самому ИЛИ использовать flask-bootstrap и сидеть на старой версии собственно бутстрапа.Какие подводные у этих методов?
Есть список из целых и не очень чисел, нужно показать их в читаемом виде. Сначала просто делал round(Decimal(value), 3).normalize() и все было прекрасно, пока не дошел до десятки, что делоть? Может есть что-то из коробки? А если нет, то почему не запилили, это же всем нужноhttps://repl.it/repls/OrchidMulticoloredProgramminglanguages
>>1422429>1, Что для тебя читаемый вид?Число с плавающей точкой с точностью до трех знаков без нулей в конце и без указания экспоненты >2, Что насчёт getcontext().prec = n ?Производятся и другие расчеты с Decimal, которые нельзя просто так обрезать, а менять значение prec каждый раз не очень хорошая идея
>>1422417>>1422435Я извиняюсь, может просто циклом прогнать, с нужным форматом НЕ целых чисел?мимо-нюфаня
>>1422476сейчас загуглил "округление" Python, и оказалось что всё ещё проще, не надо форматом и конвертацией ебаться. Для округления есть функция round, которой надо сообщить количество тебуемых знаков после запятой
>>1422476а, лол. Вижу, ты уже пользовался round. И не понимаю что случилось после десятки.мимо-нюфаня.
>>1422482Там изначально идет работа с Decimal, т.к. до этого мне нужны были точные расчеты, я не погромист и это для вуза нужно, с работой с числами уже разобрался>>1422485>'{value:>.3g}'Во, действительно то что нужно, спасибо!
>>1422487хотя я только что вспомнил, что это делает ссайнтифик нотейшн для больших чисел1000 уже в экспоненциальной записи будет
>>1422490да. верни g на его пыльное местопопробуй сей костыль:> f'{value:>.3f}'.rstrip('0').rstrip('.')
>>1422494Да, это работает, спасибо. Странно, что это никто не добавил в стандартную библиотеку, мне казалось, что потребность в такой вещи, как показывание пользователю данных в нормальном виде должна быть вшита по дефолту
>>1422490А сколько должно быть?>>1422485поясни плиз, не понимаю. Применил этот специфаер, но он рубит на общее количество знаков - тоесть есл ставишь ему параметр 4 - то он считает 12.01 - 4 знака, и 2.016- 4 знака, тоесть он учитывает и до и после запятой. А как его отформатить, чтоб он только после запятой работал??
>>1422511В том то и дело что 4 в данном коде вопспринимается как общее - до запятой и после. Почему? Посмотри на скрин, на число 12.хххх и 2.хххххх
psycopg2 - инъекционно-устойчивый, если делать запросы по гайдам?# the correct conversion (no more SQL injections!)>>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)",
>>1422605resultlist = [f'{value:>.4f}'.rstrip('0').rstrip('.') for value in list]про что именно почитать?
Отзовитесь аноны кто строил теграм бота, желательно на python-telegram-bot.Как получить инфо сообщения по его id
>>1421793 (OP)Блин, товарищи питонисты, поведайте Жаба-разраберу, заглянувшему к вам на огонек, с хрена ли вы каличные особенности вашего языка пытаетесь выставить как достоинства и преподносите еще как некую "философию языка"?.. Вы там совсем ебанулись что ли?Недавно видал как адепт Питона до последнего защищал отсутствие public/private методов и аттрибутов, утверждая что наличие лезвий бритвы на питьевой кружке - заебись идея, и надо всего-то держать кружку определенным образом, тогда ты уж точно не порежешься
>>1422720Либо я тупой, либо в этом python-telegram-bot этого нет. Вообще я не уверен, что это в самом телеграмме есть.
>>1422741Ты и из жабы сможешь вызвать приватный метод через костыли, если понадобится, я лично пользовался этим во время тестирования.Глубокое закапывание ни к чему не приведет, если тебе это действительно захочется сделать
Я хочу перенести телеграм-бота на вэбхук, для этого нужен адрес сервера, на котором будет запущен бот и сертификат. Насколько я понял, сертификат можно сделать самоподписанный через opensll. НО КАКОЙ МНЕ АЙПИ АДРЕС УКАЗЫВАТЬ а точнее, где и как можно создать тестовый сервер, чтобы он не висел на моем ПК, чтобы я мог отправлять на него ссаные пост-запросы от телеграма?Извините, если это тупой вопрос.
>>1422747Можешь на pythonanywhere выложить, только там скорее всего какие-нибудь дополнительные тулзы нужно будет использовать (типа flask-sslify). Можешь ngrok использовать.Вообще можешь видос посмотреть, здесь всё подробно показывается.https://www.youtube.com/watch?v=ZggfQnmQhwY&list=PLlWXhlUMyooaTZA4vxU9ZRZQPCFxUq9VA
>>1422741Технические особенности языка. При большом желании можно сделать защиту от переопределения метода или вызова из объекта-наследника. Только не нужно.Приватные методы не защита от хакеров, а указание, что этими методами пользоваться не надо. Плюс, это методы для служебных нужд. Для последнего полезно, чтобы не было случайного переопределения методов, и жалко, что этого нет. При желании, можно обойти, если явно вызывать метод классаMyClass.myMethod(self, args)он уже не будет переопределён, если в детях сделают аналогичный метод myMethod
>>1421793 (OP)Вопрос ультраолдам и профи.Нужен совет, я вроде достаточно владею VIMом и он мне очень нравится, но один знакомый сказал, что все профи в командах пишут в Pycharmе т.к. в нем есть все приспособы контроля версий, дебагинга, управления проектом, etc и я его понимаю, ведь пайчарм строго специализированный инструмент и должен быть лучшим в своем деле.Но, он мне почему-то в своей блоатности отвратителен, а вим я люблю. И вот теперь главный вопрос, могу я просто юзать вим и по мере продвижения и возникновения потребностей просто обвешивать плагинами таким образом, чтобы ничего не потерять, но и кодить на высшем уровне?А еще недавно запустил и увидел какую-то спай лицензию JetBrains Privacy Policy в интернетах пишут, что можно весь спай отключить, но тот факт, что мне его суют под видом пользовательского соглашения, напрягает.Я в принципе готов осваивать пайчарм, но очень не хочу.Ответьте адекватно пожалуйста, кто владеет обоими инструментами, почему выбрали тот или иной. Спасибо.мимо_нюфаняАлсо, залил пикчу и подумал, что возможно стоит упомянуть, что я правый чад с пикрилейтед.
>>1422745Тесты это одно. Работа на крупном расширяемом проекте, завязанном на бабках - совершенно иное. Защита от дурака это фундаментальный принцип существования любого производственного процесса, и не только в прогинге
>>1422742И в телеграме есть, и в этой либе.https://core.telegram.org/bots/api#messagehttps://python-telegram-bot.readthedocs.io/en/stable/telegram.message.html
>>1423333змейку можно создать. каждый день создаю змейку на питоне. бывает даже по две за день успеваю.
>>1421793 (OP)https://repl.it/repls/FaroffDisgustingOutliersКак переделать регулярку так, чтоб она нашла не только первое вхождение паттерна в скобках, но и все остальные? Учитывая, что эти паттерны мы ищем после того, как нашли кусок 'hi:{'Сейчас получается: ['"pro":{fgfgfdfg}']Должно быть: [('"pro":{fgfgfdfg}', "ls":{fgfgffd})]
>>1423519Весьма просто, оказывается! А я б пытался хер знает сколько времени все в одну регулярку впихнуть.Спасибо, выручил.
Анон, подскажи плз.Дано: спискок из 5 слов.принтом рандомно выводим одно словодалее нужно из списка его убрать и вывести рандомно слово из 4ех оставшихся.И так далее.
>>1423595гугли strftime()>>1423561Самый простой путь:a = ['a', 'b', 'c', 'd']el = random.choice(a)print(el)a.remove(el)
Анон, есть желание применить/отточить/изучить на практике свои знания по Qt5, или же cv2, а может быть и pytorch/keras/tf - пиши.Хочешь поработать в команде(ну, я один, почти, но вместе уже команда) - пиши.Или тебя заинтересует тематика проектика:> Программа для детекта дубликатов мемасов и вебмов(пока что нет, но в будущих версиях точно добавим, чэсна).Пиши.Принять участие в разработке не готов, но есть идеи или же хочешь потестить - пиши.Почта для связи - brom.andr@yandex.ru Как-то так.Последний раз, честно
>>1423561import randomm = ["one", "two", "three", "four", "five"]word = random.choice(m)m.remove(word)это идея, в цикл сам завернёшь
>>1423561import randomimport timea = ['twoi', 'lubimii', 'spisok', 'anon']def takeAndDel(a): el = random.choice(a) print(el) a.remove(el) time.sleep(1)while len(a): takeAndDel(a)RuntwoispisoklubimiianonProcess finished with exit code 0
А можно не выдумывать велосипед для детей которые не могут простой put или push с random и list закомбинить и ответить на мой очень важный вопрос >>1423073 ????Зачем вы так со мной, я же с вами по-хорошему?
>>1423073Ну окей, гляди.Юзаю nvim для мелкой правки кода и написания небольших приложений, на парочку файликов. Это ок. Правлю конфиги и т.п. через него, на голых серверах юзаю нано.Пайчарм збс подходит под крупные проекты. За счёт своих плагинов. Хочешь к бд подключиться и сразу селекты писать? Го. Готовый темплейт для джанги/фласка? Хорошо. Не желаешь ли немного профилирования? Давай. Как насчёт рассмотреть как работают твои потоки/процессы риалтайм? Смотри. И т.д. За это приходиться платить выжраной оперативой и долгой переиндексацией, но оно того стоит. Я не представляю себе, как бы я разрабатывал свой проект, состоящий из 7 модулей, различного объема в виде.Ну и глядя на коллег постарше, у которых прошел давно максимализм и гикство, понимаю, что пайчарм не зря так популярен ибо они юзают только его и делают это на все 100.Но выбор все же за тобой, антош. Будет в виме некомфортно - пробуй пучарм, не понравится - потыкай вскод.
>>1423194это апдейт, т.е то что мы только что получили, в историю сообщений бот не может. Спросил в чати либы ответили что можно только реплайнуть нужную месагу, а получить ее инфо, мне нужно было содержание сообщения, нельзя потому что у бота такого функционала нет
>>1423717Задачу можном решить костылём, при чём не самым плохим: берешь какой-нибудь Redis с персистенс-файлом и заводишь туда базу сообщений, после чего по необходимости селектишь нужные message_id
>>1423719У тебя какой опыт пограмирования? я пришел к такому же выводу, но решил изменить концепцию общения с ботом, не прибегая к БД. В общем я в пограмировании месяц, и спрашиваю потому что мне интересно я нормально думаю или я думаю как нюфак
>>1423700Спасибо, чувак. А скажи вскод может все, что ты перечислил и вообще в принципе заменить пайчарм?Пользуясь твоим советом буду херачить на виме как привык, а если где-то понадобится - буду уже перекатываться на пайчарм, собственно буду надеяться, что обстоятельства будут продуктивным мотиватором и поперед батьки можно не прыгать. Все правильно делаю?Я толком просто раньше пайчармом не пользовался, пару раз палкой тыкал, потом долго сидел в вске, а потом и до сих пори сижу в виме. Если окажется, что пайчармом можно не заморачиваться, а на крайняк можно обратно прыгнуть на вску - буду пиздец как рад.
Стоит ли реально слушаться совета Зеда Шоу в книге и использовать блокнот + PowerShell или всё-таки заморочится и научиться пользоваться PyCharm?
>>1423817>>1423871Почему вы не хотите сразу пользоваться серьёзным инструментом? Ведь когда он понадобится - вы нихуя о нём знать не будете, потому что в блокноте блять писали
>>1423880тебе и не надо ничего понимать - запустил проект, создал в папочке проекта .py файл, и ебашиш. ctrl_shift+f10 - первый запуск конкретного py файла, shift+f10 - последующие. Всё, он тебя не искусает! Но в процессе работы будешь замечать особенности и возможности.
>>1423817> А скажи вскод может все, что ты перечислил и вообще в принципе заменить пайчарм?В теории может, но для этого попердолиться надо будет, В то время как в пайчарме всё сразу есть.> Все правильно делаюДа.Всё ещё зависит от целей, ибо если ты сидишь дома и для себя там бота для ТГ пишешь, то это одной, а если на работе что-то делать крупное и в команде, то это другое. Вот и всё.
здравствуй, дорогой анон. у меня встал вопрос.короче, беру я через апи грейлога респонс. выглядит он примерно вот такЕсть ответ от сервера, который выглядит так{"query":"траляля бла1бла"decoration_stats":null}Дальше присваиваю респонс переменной и ищу по ней регуляркой вот такнашелбла = re.search('(?<="траляля :).*?(?=1бла")', переменная)то есть в результате должно остаться блаЕсли я создаю переменную и прямо в IDE придаю ей значение как строку из ответа (x = текст_из_ответа), то поиск срабатывает.Если я выношу его в переменную и ищу по нему регуляркой как re.search, то получаю None. Пробовал форматировать содержимое переменной, обрамляя его в кавычки - все еще None. ЧЯДНТ?
>>1422741"Каличный" питон дал пососать тебе и твоей жабе.https://www.reddit.com/r/Python/comments/c6rzfp/python_now_beating_java_on_google_trends_worldwide/?utm_medium=android_app&utm_source=share
Хайль питонисты. Пытаюсь в регулярки. Как мне найти все слова длины 5? Именно полноценные слова, без цифр и любых других левых символов (хотя бы без цифр)https://regex101.com/r/q1iSZl/1Написал это. Но цифры не убираются
>>1424532>[^\W\d_]{5} т.е. нельзя сказать, что я хочу набор \w без символов из [0-9]? Если можно, то почему не работало?В регексе работает, спасибо. Но почему-то на ПК чёт не работает. Вроде юникод по стандарту как флаг включен, не могу понять
Марк Лутц "Изучаем" \ "Программируем" оба издания еще актуальны для академического изучения python и в целом как учебник "рецептов"? вкатывальщик-аутист
>>1424665Л - любой, sqlite - SQLiteStudio, mysql - MySQL Community Edition и тд, зависит от базы данных, которую выбрал... Проще всего тренироваться можно в SQLiteStudio
>>1424672Прочел "Изучаем" два с половиной года назад, после читал статьи и писал пет проекты пару месяцев."Программируем" читал уже совсем немного, т.к. по большей части трогал руками почти все что там было. Имхо книжка такая себе, максимум главу про IPC можно прочитать.Работаю уже год питон девом.Фишки вроде ассинхронности, последних аддоны стандартной библиотеки (pathlib etc) прийдется читать в статьях.+ В книгах не затрагиваются фраемворки, самые популярные тоже придется прочитать отдельно.
>>1424683>Фишки вроде ассинхронности, последниe аддоны стандартной библиотеки (pathlib etc) прийдется читать в статьях.Hotfix
Анон, подскажи, что в портфолио необходимо для джуна? Два бота для телеграмма будет достаточно? Все на гит лить? Но там же моего бота украдут
>>1424638Проще всего поставить sqlite там ставить опыты в штатной консоли. В sqlite вся база хранится в одном файле, настраивать сервер не надо, штатная консоль вполне функциональна, подключается легко ко всему угодно, не надо тратить время на то, чтобы админские вопросы решать. Для опытов с sql с головой хватит.
>>1424691Зайти на yandex.ru и набери фразу "как пользоваться гуглом". Освой эту тему, потом с чатом будет проще.Дохрена инструкций есть по тому, как писать чат, на любой вкус.
>>1424711Ну или еще то, что нужно вызывать GetUserName 2 раза чтобы он вернул имя (в питоне), или то что GetLastError() всегда возвращает 6.Кто-нибудь тут способен объяснить такое блевотное поведение питона ?
>>1424712Чем тебе не нравятся функции вродe os.getpid() и os.uname() ?То, что ты описываешь, не питон, а подключение внешних либ, да ещё в винде. Не скажу, почему так происходит.
>>1424715Каких внешних либ ?os.uname() и os.getpid() из себя представляет такое же точно обращение к API виндовс, следовательно, я ожидаю определенный результат, пытаясь самостоятельно вызвать эти функции, причем не через win32api из pywin32, а через ctypes.windll.Ну в общем, несмотря на разные результаты одной и той же (по идее) функции все получилось.
>>1424716Потому что тогда надо разбираться с корректностью механизма подключения. Я ничего не могу посоветовать, давно не подключался, и не под виндой.За то, что ты получаешь с помощью базовых модулей языка отвечают производители языка. Если глюки идут при попытке подключить dll/so, то тут что угодно может быть и может питон в этом ни разу не виноват.
>>1424711А что не так? В одном случае у тебя HANDLE (беззнаковый инт), в другом ты забыл restype, и у тебя int со знаком. Фактически тебе в обоих случаях возвращают 0xffffffff. Про GetUserName() показывай пример. Для GetLastError() есть use_last_error в конструкторе длл и ctypes.get_last_error() соответственно - ты не один, питон тоже может дергать Windows API, и к моменту вызова GetLastError() напрямую, его могло уже распидорасить (тем же ctypes, например).
>>1424704Ридми красиво и адекватно оформлен?За сколько комитов сделал каждого бота?Комиты адекватные пишешь?Боты можно прямо из репы запустить?Какой функционал у ботов?ПЕП8?Автотесты написал?Это вопросы на вскидку.
>>1424683Анон, а книги из шапки реально мастхев? Которые intermediate python и python cookbook? В каком-то прошлом треде видел пост, что шапка устарела или что-то вроде того
>>1424810Лично я учился по книге Byte of Python (Укус питона) + курсы на udemy, 3 месяца ушло чтобы вкатится в бекенд разработчики
>>1424814Блин, как-то пиздец быстро, я тоже хочу в бэкэнд, прочитал пока половину укуса питона, но я читаю на английском, и там половина времени уходит на то, чтобы изучать, как это всё на английском называется. До этого только на крестах байтоебил в вузе один семестр(нас учили на системных).Ну 3 месяца это реально как в мечтах вечных вкатывальщиков
>>1424818Ну так то я не с нуля вкатывался, у меня за плечами 13 лет в ИТ админом, при чем умею и на джаве немного и на си шарпе, девопсил на паре проектов, предлагали перейти в отдел разработки на C#, но си шарп не нравится, поэтому уволился, и пошел на бекенд разраба (Django),
>>1424808А че с гитом обязательно нада работуть УУУСУКА. Я понял, спасибо за рекомендации. Бтв я все равно не понимаю мне обязательно то что я сделал нужно вываливать в паблик чтобы оценили работу? Боты написаны на паблик апи, для меня они исполняют только очевидные общедоступные функцции.
>>1424859> нужно вываливать в паблик чтобы оценили работу?Ну вот прикрепил ты ссылку на гит к твоему резюме, а как тех.спецы, которые будут тебя собесить глянут на твой проект и профиль?> А че с гитом обязательно нада работуть УУУСУКАНу да, в 90% вакансий идёт требование работы гитом. В оставшихся 10% это подразумевается по дефолту.> они исполняют только очевидные общедоступные функццииНу мне это ни о чём не говорит)Ты главное распиши в ридми какие именно проблемы решают данные боты, и именно для тебя. Или может какие-то крупные сообщества их юзают и т.д., что б было понтно что ты не скопипастил их просто от нехуй делать.
>>1424863я вот эту тонкую грань скопипастил / осилил сам не понимаю. Я использую 2 API для телеги и инсты, взаимодействия этих штук исполнение нужных мне задач выполняют они. Программирование не сложное и доковыривание и выполнение задач для меня видится задачей тривиальной. Разработка же самого АПИ видится для меня сложнее, отсюда моя работа для меня обесценена и ничтожна, потому что основную работу сделали за меня я взял лишь готовый инструмент. Но с другой стороны, готового решения под мои задачи я не нашел и написал это с нуля, хоть и использую готовые инструменты, вроде бы этим и занимаются в пограмировании, используют готовое нечно для реализации чего то другого. Если идти по пути первого размышления, то изобретение нового языка будет лишь объективно хорошей работой, языка который будет общаться сразу с машиной на бинаре. Я так понимаю для портфолио делай то что тебе не жалко выложить в паблик, если ты делаешь что то коммерческое не думай о том чтобы это можно было использовать у себя в портфолио как код, как реализованный продукт упомянуть можно,.
>>1424850>поэтому уволился, и пошел на бекенд разраба (Django), Какой стек на фронт наиболее актуален и какой у вас используют? Во фрилансе на джанге жизнь есть?
>>1424919На фрилансе важно знание питона и его библиотек, таких как scrapy и beautiful soup, очень много заказов связано именно с парсингом или скрапингом инфы в инете.
>>1424919Стек везде разный, там где раньше работал использовали angular (который второй сейчас уже 7 или 8) так как там все на C# пишут и typescript им удобнее. А вообще много проектов с React, я бы его советовал учить, Vue хорош, но его сейчас переделывают и говорят что он с будет сильно отличаться от старого, поэтому я бы пока не стал Vue учить.
>>1424850Можно ли вкатиться с нуля в Биг Дату?В данный момент работаю инженером СВЧ (заебало). В универе было достаточно матана, линала и ОТС, так что с ними проблем нет. Но вот реально ли туда влезать с нуля или нужен опыт разработки на Питоне?
>>1424972Чувак твоя жизнь твои правила, тебе никто не запрещает, пробуй пытайся, не попробуешь не узнаешь. Не слушай никого, есть желание иди и вкатывайся, я 10 лет назад уезжал в ДС, мне друзья и родственники близкие говорили, что я вернусь через месяц, что не смогу и не выдержу, в рот я их всех ебал, я смог, уже 10 лет тут живу. С родными и друзьями до сих пор общаюсь, но смотрю на них и радуюсь что сьебался, а они так и живут в верхних залупках от зарплаты до зарплаты, так нечего и не достигли. По data science на sharewood видел курсы на русском от skillbox. В общем не ссы, дорогу осилит идущий.
>>1424997+ matplotlib+ в зависимости от направления ещё есть специфические либы, типа cv2 для фото/видео.>>1424990> я вернусь через месяц, что не смогу и не выдержу> в рот я их всех ебалКруто. Аж прослезился с осилятора.
>>1424990И как там устроился? В смысле, не приходится ли пол зарплаты за съемную квартиру отдавать, добираться на работу по два часа с утра и два часа вечером обратно, и все такое прочее, или реально пришел к успеху, ну, не знаю, там, долларовый миллионер с квартирой в центре и загородным поместьем в поселке для миллионеров?
анон, мне приспичило поставить свою поделку на хероку, но я что-то сосвем не понимаю, где у джанги находится объект application, который от меня требует херока. Добавил я туда файл как на пик1, вроде как надо через : указать какой application, но я туда всякое разное писал и не работало ничего
Почему отлично работающий в системе кодpyautogui.click(10, 5)Перестает работать в эмуляторах и играх? Мышь наводится на нужные координаты, но клика не происходит.Нужно как-то по-хитрому туда клики передавать? Если да то как?
>>1425051В целом считаю что не плохо, конечно не миллионер, но есть квартира двухкомнатная, семья, дети, ипотеку правда ещё 7 лет платить. Есть небольшие накопления, раз в год Турция или Тайланд, в целом жить можно. Не люблю хвастаться. В планах прокачаться до синьора и завести трактор в европку ну или в США в идеале, так как понятно, что лет через 20 тут будет СССР 2.0
>>1425078крч все игры в стиме запускаются в неком пространстве, где программно клик не обрабатывается, вот и все.
На сколько я понял лучше всего с обработкой текста в картинке справляется Tesseract-OCR. Его можно обучать? Т.е. у меня есть текст на английском но шрифт мудреный, библиотека его считывает плохо, можно ее как-то обучить? Вручную присвоив значения образ буквы=буква?
>>1425140>Tesseract-OCR.> лучше всегоХа-ха-ха. Лучше всего с обработкой текста справляется файнридер. А тессеракт это бесплатная хуитка от безысходности.
>>1425182Все это оффтоп конечно. Но во первых качество жизни, во вторых медицина, образование в ДС лучше, нежели в мухосранске где ближайший универ в в соседнем городе. В третьих в плане культуры, ни одного театра там нету, два кинотеатра, да и в целом кругозор и мировоззрение у них сужено, мне на второй день становится скучно с ними, поговорить не о чем, люди всю жизнь живут в одном месте, многие на море не были никогда. При этом есть зависть типа "вот тебе хорошо живёшь в Москве, деньги гребешь лопатой, миллионер уже поди", но как только предлагаю им тоже перебраться в ДС, то слышу кучу отговорок, "типа ну это самое там дорого, пол ЗП будет на съем уходить", "у вас там куплено все работу не найдешь", " вот щас деньжат накоплю и на следующий год, приеду покорять Москву и лучше тебя буду жить", только все это отмазки. Как-то так.
Что спрашивают на собесах за 130+к в Москве?Есть боевой опыт джанги/django rest framework/тесты-питесты моки, немного asyncio, пишу убористый красивый код, могу и какой-нибудь functools-itertools ввернуть вместо того чтобы костылить индусятину, могу написать базовый докерфайл-композфайл (но обычно этим девопс занимается). Фронтенд не знаю и не планирую, всегда работал только по бекенду.
>>1425351Не знаю, самому интересно.На чистую джангу мало вакансий, особенно чтобы 130+. Для бэка хотят кучу сопутствующего, Redis, Rabbit, Celery, Mongo, Postgres, GraphQL, ещё всякое, смотри сам, сама Джанга даже главное. Если бы я набирал, то спрашивал бы про возможности, вроде как написать свой middleware, как профилировать ORM -обращения к базе, как модели внутри устроены и т.п., это если надо разобраться, действительно ли ты Джанго понимаешь.Я это чисто для бампа, не обращай внимания.
>>1425269хз если я вдруг найду удаленку я лучше буду жить в своём городке на крайний случай крайцентре. тут уютно в отличие от дс, алсо уезжать за 9000 км от всех кого знаешь и всех родственников как-то не очень
>>1424777Показываю пример И свой скриншотВ конструкторе dll может и есть, но если мы имеем дело с WinAPI, без мониторинга ошибок, не обойтись, нахуя кому-то понадобилось бы писать без use_last_error и почему нельзя включить это по-умолчанию ?
def screen(x1,y1):...cell1 = pos[1]+5,pos[0]+5Как передать значения cell1 в screenвот как-нибудь попроще, вроде того:screen(cell1)А не вот такscreen(cell1[0],cell1[1])
>>1425420> Показываю пример > nSize = DWORD(0)Вот твоя ошибка. nSize - [in, out], т.е., ты туда пишешь размер lpBuffer своего, а GetUserName туда пишет, сколько она в lpBuffer записала (или, если буфер слишком маленький - какой минимально нужен был буфер). Ты вызываешь функцию с нулевым nSize, она фэйлится и пишет, что тебе нужен буфер на 6 байт (len(b'xorke\x00')), и поэтому на второй раз срабатывает. Можешь сделать сразу nSize = DWORD(len(lpBuffer)), тогда одного вызова будет достаточно.> без мониторинга ошибок, не обойтисьОно достаточно редко нужно. Я навскидку могу только один пример вспомнить, когда без GetLastError никак - CreateMutex и ERROR_ALREADY_EXISTS. Во всех остальных случаях достаточно проверять возвращаемое значение, и похуй, по какой причине оно там сфэйлилось, поделать с этим ты все равно ничего не можешь. Например, что будет, если я на белом скриншоте подгадаю и сменю юзернейм как раз между первым и вторым вызовами GetUserName? Правильно, хуйня будет. И что, теперь в while ее вызывать?
>>1425494Спасибо большое!А как по человечески лучше передать значения этих переменных в цикле?Не переборомscreen(cell1)screen(cell2)screen(*cell3)А в несколько строк. Проститу за супер нубские вопросы.
Ребятки, а помогите ньюфане. Не понимаю что делаю не так. Захотел попробовать накатать интерфейс на PyQt5.Сделал:>pip install PyQt5 pyside2Так же установил PyQt5 и pyside2 для проекта в PyCharm.Накатил простую форму в QTDesigner, сконвертировал результат в .py, вышло так:https://pastebin.com/GsyHvTMkНо у меня QT нихуя работать не хочет. При запуске через командную строку выдаёт:qt.qpa.plugin: Could not find the Qt platform plugin "windows" in ""При запуске через PyCharm выдаёт: Process finished with exit code -1073740791 (0xC0000409)Решений в гугл нихуя не нахожу толковых, советуют вроде проверить PATH но он у меня чист.
>>1425563ууу, блять, добавил вот такую хуйню:import PyQt5import osdirname = os.path.dirname(PyQt5.__file__)plugin_path = os.path.join(dirname, 'qt', 'plugins', 'platforms')os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = plugin_pathи всё заработало... не пойму где эта переменная должна храниться по дефолту, почему она у меня пуста, если не задать вручную. Не подскаете?
Слыхал, что в пользовательских классах в методе __iter__ надо в конце добавлять конструкцию return iter(something), типо "это в духе Python", но понял что метод __iter__ пиздато справляется и без возвращаемых значений с iter, а просто если определить его как генератор с инструкцией yield в теле - можно изи пилить весьма извращенные итераторы. К тому же такой класс-генератор еще и не истощается (в отличие от обыкновенных генераторов), но вот как определить пользовательский класс, в котором генератор будет истощаться?..
>>1425380Ключевое слово здесь "если", поверь найти удалёнку не так то просто, есть два варианта, допустим если ты уже очень опытный специалист с большим багажом знаний то да можно работать удаленно, ну и второй вариант поработать в офисе, показать себя ответственным и самостоятельным спецом и договориться на удалёнку. А так искать удалёнку из мухосранска и без серьезного опыта практически безнадежно. Сам так хочу, планирую дорасти до крепкого мидла или синьора и тогда уходить на удалёнку, чтобы зимовать в теплых странах. Кстати работать удаленно не так то просто, попробуй не отвлечься на родных или сериал или ютубчик, тут уже размазать ответственность на отдел не получится, у каждого свои таски и по ним будет видно, кто пашет, а кто хуи пинает, опять же часто юзают таймтрекеры и следящий софт за тобой, чтобы видеть твою работу. В общем не все так просто как ты представляешь.
>>1425583Ну смотри, когда я жил в верхних залупках, я толком ни чем не интересовался, какие то игрушки, иногда сериалы, не изучал языки, так как не с кем было общаться, не следил за собой, так как мое окружение это были чмони с жирными волосами, лишним весом и гнилыми зубами, я курил, весил 120 кило, выпивал каждый вечер по 2 литра пива. Как переехал, стал видеть как живут люди, познакомился с кучей людей, окружил себя умными и стремящимеся быть успешными людьми, начал следить за собой, скинул 30 кило, не курю уже 7 лет, на алкоголь тоже забил, могу в пару раз в год на корпоративе пару бокалов виски с колой выпить, прочёл много книг, изучаю иностранные языки, был в Европе, в Турции ( не только в туристической), Израиле, в общем посмотрел мир, познакомился за границей со многими людьми, есть друзья везде и не просто друзья попиздеть или побухать, а реальные, кто может приютить или помочь чем нибудь. Интересы и взгляд на жизнь совсем другой.
>>1425380> тут уютно в отличие от дсНу, конечно, в мухосрани с гопниками, в которой в 11 вечера на улицу выйти страшно - уютно.>алсо уезжать за 9000 км от всех кого знаешь и всех родственников как-то не очень Когда ты молодой и здоровый самое то. Иначе зачем жить.
>>1425563>>1425580Ребят, ну подскажите. Создал вручную в переменных средах системную переменную QT_QPA_PLATFORM_PLUGIN_PATH со значением пути к папке platforms. Теперь вроде работает само, но почему так вышло что у меня этой переменной небыло, раз она должна там быть? Или всё должно работать как то иначе?
>>1425636Как насчёт ещё поработать над изображением и разделить его рили на цифры, а то тут число 10.Может вообще стоит собрать свою базу элементов, если у тебя всё однотипно. Давай больше входных данных, а то нихуя не ясно.
>>1425709>Ну, конечно, в мухосрани с гопниками, в которой в 11 вечера на улицу выйти страшно - уютно.ты в прошлом остался чтолесейчас за внешку скорее в москве убьют вон вчера постили очередную новость каак в мск кого-то зарезали за внешку
Ребят, хотел попробовать сконвертить программу в exe с Nuitka, дого с ней боролся, то пайтон64 несовсместим с MinGW x86_64, то русские буквы на пути к пайтону в utf-8 не читались, вроде поборол, теперь вот, пикрилейтед ошибками посыпает. Куда копать?
>>1425751>Может вообще стоит собрать свою базу элементов, если у тебя всё однотипноКак с этим работать? Да, там шрифт один и тот же, я бы хоть в ручную прописал, если бы знал как.
Есть SQL-табличка с ролями пользователя в системе, и есть табличка с пользователями, которые эти роли занимают. Необходимо прицепить к первой табличке количество людей, которые эти роли занимают. Можно ли это как-то через джоин сделать или придётся массив перебирать?
>>1426055Смотря какой SQL и какие виды JOIN он поддерживает.Главный нюанс в том, что могут быть роли, у которых нет пользователей. Тогда надо вывести 0, но обычные join ничего не выведут, по идее right join нужен для этого. Но можно и без right join, но запрос будет сложнее.
>>1426039Обычный классификатор можно запилить, на том же керасе/скитлерне/пайторче.Но для начала нужно нарезать все буквы-символы по одному и сложить в соответствующие папочки.То есть все буквы "в" в одну папку, в соседнюю папку все буквы "к", и т.п. так для всего.Затем будешь пробегаться по строке с символами, нарезать её на элементы и отдавать их в нейронку для классификации.
Компания согласилась за свой счёт обучить Питону.Какой курс выбрать ? Онлайн или офлайн?Какие школы посоветуете ?
>>1426158Если выбор стоит только между онлайн или офлайн курсами, я бы выбрал офлайн, в прошлом году ходил 3 месяца на JavaScript и Nodejs, отдал 18к, но многое понял, много задавал вопросов прямо на занятии, вместе с преподом сидели разбирали код, в общем считаю офлайн курсы намного лучше онлайн курсов. Если платит фирма, я бы пошел на индивидуальные офлайн курсы или же ментора взял, чтобы он подтянул. Как то так.
>>1426210>>1426210Спасибо.Я тоже считаю, что офлайн лучше.Какую-нибудь конкретную контору можешь порекомендовать в Москве?
Написал вот такой код для нахождения директории питона и файла в ней. #смотрим PATHdir = sys.path#Проверяем записи в PATH если есть запись с \lib, которая скорее всего относится к пайтон, останавливаемся на этой директорииfor i in dir: if "\lib" in i: path = i breakpath = path.replace('\lib', '\scripts')convertor = path+'\pyuic5.exe'Или есть какие-то более изящные способы узнать корневую директорию пайтон?
Аноны, я новенький и не понимаю как работает schedule. Допустим есть две функции которые выполняются продолжительное время, если подходит очередь второй функции выполняться по расписанию а первая не закончила исполнение всех инструкций, то вторая функция ждет своей очереди или исполняется параллельно? Что гуглить по этому поводу? Еще вопрос если у меня два бота один на вк другой на телегу, и они оба должны работать сообща, то как мне импортировать один в другой? Будет ли хендл телеграмма ждать обновления, пока вкашный будет лайкать/спамить/ делать бочку? Что это за вопрос, тоже параллельные потоки?
>>1426217Поищи Moscow Python, у них есть Learn Python курсы, вроде годные и офлайн в то же время. Преподы все крутые, у них и подкасты годные на Ютубчике.
>>1426376Ты про asyncio или про что? Параллельно ничего не выполняется, если в разных процессах не запускать.
>>1426376Сразу, если про asyncio и некоторые аналоги, то в каждый момент выполняется только одна задача. Вторая задача ждёт, пока ты разрешишь ей запуститься.Если ты в коде первой задачи делаешь асинхронный вызов, как await asyncio.sleep(0), то в этот момент планировщик останавливает первую задачу и переключает на следующую, если она есть в очереди. Пока ты не сделаешь какой-нибудь await явно или не явно, переключения не будет. Ты можешь час считать, у тебя будет висеть 100 задач других, но на них не переключится исполнение.Как видишь, всё просто.
>>1425545Если я правильно тебя понял, в цикле будет так:for cell in cells: screen(⚹cell)Если screen что-то возвращает, конечно, тоже можно ив цикле, но удобнее записать это одной строчкой:results = (screen(⚹cell) for cell in cells)Я подразумеваю, что у тебя есть некая коллекция, которую я назвал cells.
>>1426348os.path.join(sys.prefix, 'Scripts', 'pyuic5.exe'), но на линуксе ты соснешь. Скорее всего, Scripts/ уже есть у тебя в path, поэтому просто запускай exe-шник по имени без полного пути.
>>1426654Спасибо. Да на самом деле мне не запустить надо было, а проверить его наличие. Вся эта конструкция с вызовам os и sys не конвертилась в .exe через Nuitka. сделал проще: при отсутствии самого экзешника и попытке его запуска из командной строки, не обнаруживая такой софтины командная строка возвращает 1. При запуске софтины с ошибкой (неверный аргумент) так же возвращается 1. А при запуске с верным аргументом - возвращается 0.Тупо сделал:>check = os.system('pyuic5 --version')>if check == 1:> пишем ошибку что пайтон или PyQt5 не установлены>>1426675Ну так ты не выёбывайся, написано же - я ньюфаг. Поправил бы. Впрочем, это было накидано с горевшей жопой за пару секунд как придумалось, и ошибок синтаксиса не показало, ещё и работало.>>1425943>>1425944С этим разобрался кстати, правда сам не понял как. Накатил по-новой пайтон, ПиКт5, установил вижуалстудио и по-новой накатил mingw. Теперь другая проблема имеется, но поскольку никто на предыдущие толком не ответил, наверное описывать не буду.>>1425580С этим тоже вроде разобрался - добавил это:'QT_QPA_PLATFORM_PLUGIN_PATH = plugin_path в PATH вручную.
>>1426440Пасиб, с асинхронностью я вроде понял, послушал Олега на ютубе, но вот с примером моим нифига мне не ясно, покурю доки к телеграму может че то там написано. Значит все инструкции выполняются последовательно, а зачем асинхронность вообще если и так все происходит в строгой последовательности по дефолту, чтобы расставлять условия переключения к следующим задачам? Параллельное исполнение не реализовать в одном процессе? Хотя довольно интересное описание по первой ссылке в гугле, почитаю пойду)
>>1426858Чтобы врубиться и мыслить асинхронно нужно время.Асинхронностью в первую очередь события обрабатывают. Например, графические оболочки асинхронные. У тебя игрушка, там действие какое-то. Если бы оно шло само по себе, оно было бы синхронным. Но на действие влияет куча сторонних факторов, что ты на клавиатуре нажал или что по сети пришло, это асинхронные события. Для бэка актуально становится, когда ты с сетью работаешь. У тебя много подключений, ты ждёшь подключений и данных. Это события. Можно параллельно с этим работать, это один подход. Но это плодить треды и процессы и как-то сложно их синхронизировать, это сложно. Можно асинхронно. В синхронном коде ты в основном не считаешь, а ждёшь, пока какое-нибудь событие произойдёт, и ничего не делаешь в это время. Смысл в том, что в это время можно переключиться на другую задачу и поделать её. Как-то так.С параллельностью в одном процессе у питона туго из-за GIL. В каких-то случаях и треды работают, но не всегда. Короче, и асинхронное программирование, и многопоточное-многопроцессное, это всё довольно серьёзные и содержательные темы. В них надо долго и упорно разбираться, просто так прочитать и сразу понять не получится, это я тебе гарантирую. Но если захочешь, разберёшься.
>>1426858Про бота надо смотреть, как там интерфейсы библиотек сделаны. Можно делать асинхронно, можно через треды или процессы. Везде свои плюсы и минусы, везде свои подводные камни.
>>1426872Короче, мне на столько стыдно осознавать в чем был затуп бота и куда я нахер лез в праллелизм асинхронность, лол. В общем я иэс импорта и не разобрался и не правильно указывал функцию... Но все равно хорошо что покопался и узнал про треды, в одном из ботов они
>>1427003К слову я вообще не до конца понимаю как работает for...inЛичное мое мнение что for ПеременнаяN in ПослеодвательностьСледовательно вся последовательность переходит в переменнуN?
>>1427009Сука блядь, у тебя трясутся руки или ты слепой от рождения и ты не можешь отсчитать 4 пробела на отступ?
>>1427022Индентацию пофикси, мудила. Ссука, прямо вижу этого тупорылого школьника, который увидел незнакомое длинное слово и решил забить, ведь хули, все равно же работает
>>1427040>>1427033Да я уже все пофиксил,спасибо что указали на ошибки,без вас бы я тупил бы еще часа два
>>1427012О господи, я только сейчас понял какую хуйню ты делаешь >>1427033Тебе короче не нужен for.>Я всего лишь хочу проверить есть ли в переменной country массив denmarkТебе не переменная country нужна, а твой список countries.И ты делаешь так:if "denmark" in counries: print("Yes")На случай если табуляция удалится - перед принтом конечно таб
Анонасы, объясните одну вещь, что лучше изучать сейчас фласк, или джанго? Джанго пробовал, но на мой взгляд на старте проекта там очень много всего накручено.Вообще, в дальнейшем необходимо будет создавать и развивать систему back-end <-> rest-api <-> front-end, с учётом того, что на фронте не просто сайт/шаблоны, а веб-приложение. То есть на беке отрисовывать ничего особо нахуй не нужно будет, с этим будет ебаться макака на фронте, моя задача реализовать логику/бизнес-логику и рест апи.
>>1427151Можно глянуть на какой-нибудь aiohttp, более современный фреймворк, очень быстрый, с поддержкой современных технологий, от разработчиков питона.В джанго ничего накрученного нет, только самое нужное, осваивается легко, есть штатные модули, но они легко заменяются.Джанго это ОРМ и ещё админка в комплекте. Если тебе не нужна развитая система моделей и админка, то наверно и джанго не нужен. Джанго синхронный, там сложно поддержать вебсокеты и т.п., это фреймворк больше для классических сложных сайтов, а не приложений.
>>1427041[print("%s\n%s" % (country, 'yes' if country == 'Denmark' else 'no')) for country in countries]
Ребяточеки, запустив программу в терминале и потом изменив код, он не будет исполняться по новому, а есть возможно сть сделать так чтобы он обновлял свои исполняемый код
>>1427190Есть, в джанге/фласке в дебаг режиме искаропки такой функционал есть. Если ты что-то своё делаешь - надо вручную пердолить это.
>>1425708>>1425269Прямо как у Пелевина: — Главная мысль, которую человек пытается донести до других, заключается в том, что он имеет доступ к гораздо более престижному потреблению, чем про него могли подумать. Одновременно с этим он старается объяснить окружающим, что их тип потребления гораздо менее престижен, чем они имели наивность думать. Этому подчинены все социальные манёвры. Больше того, только эти вопросы вызывают у людей стойкие эмоции. — Вообще-то мне в жизни попадались и другие люди, — сказал я с лёгкой иронией.Иегова кротко посмотрел на меня. — Рама, — сказал он, — вот прямо сейчас ты пытаешься донести до меня мысль о том, что ты имеешь доступ к более престижному потреблению, чем я, а мой тип потребления, как сейчас говорят, сосёт и причмокивает. Только речь идёт о потреблении в сфере общения. Именно об этом движении человеческой души я и говорю. Ничего другого в людях ты не встретишь, как не ищи. Меняться будет только конкретный тип потребления, о котором пойдёт речь. Это может быть потребление вещей, впечатлений, культурных объектов, книг, концепций, состояний ума и так далее. — Отвратительно, — сказал я искренне.
>>1421793 (OP)Прошёл стажировку по DS, понял, что моё, но в моем мухосранске вакансий 2.5, везде нужен полный день и опыт. А мне нужно закончить последний курс бакалавриата. Что бы такого за остаток лета задрочить? Чем коллеги-датасейнтисты занимаются/занимались помимо DS? Можно и без привязки к питону, с радостью выучу другой язык.
>>1427244Если на питон идёшь, я бы какую-нибудь сопутствующую технологию освоил.Или специализированное, как openCVИли веб, как джанго или аналогиИли устроил бы практику по мультитредам-мультипроцессам-асинкиоИли технологии вроде брокеров сообщений, раббит, зероэмку и т.п.Или работу с базами, SQL-NoSQLИли можно научиться писать модули на C/C++ к питону.Одного питона мало, сопутствующие технологии важны и нужны.
Привет, Аноны. Хочу вкатиться в питон. Из опыта - ковырял в детстве совсем немного всякой всячины, дальше хеллоуворлда по сути и не продвинулся. Правда было это несколько лет назад.В идеале хочу вкатиться в веб на джанге. Начать с фронта (а именно HTML и CSS) или же потом это все догнать, а сейчас сделать весь упор на Питон?
Аноны, поясните пожалуйста, как этим пользоваться:> PySide2.QtWidgets.QTableWidget.itemDoubleClicked(item)> Parameters> item – QTableWidgetItemНадо узнать что по рандомной ячейке в QTableWidgets даблкликнули.Мимо-2-день пытаюсь в PyQt
из одного питоновского скрипта мне нужно запустить другой с именоваными параметрами и распарсить его вывод я предполагаю, что выводить он будет в stdout. как это лучше всего сделать? на stackoverflow натыкался на мнение, что лучше всего - это импортировать скрипт, но тогда я что то не въезжаю, как параметры ему загонять. с другой стороны, есть еще всякие call, execfile, но их почему то не рекомендуют, хотя параметры вроде передавать можно. сам скрипт с параметрами, который мне нужно вызывать из другого скрипта-враппера, выглядит вот так:vol.py --plugins="/ololo" -f alala --profile=elele pluginname
>>1427516Такой импортировать скорее всего не получится. Там будут и всякие argparse, и "if __name__ == '__main__'", и ещё что-нибудь. Скорее всего при импорте какие-то действия дополнительные потребуются для того, чтобы нужный результат получить, какие-то кривые хаки. Надо смотреть на код.ИМХО в такой ситуации лучше вызвать как внешний процесс.
>>1427800Волен, но моя сексуальная жизнь тебя волновать тоже не должна, но если она тебя волнует, то я не осуждаю, имеешь на это право, пока не сталкеришь
>>1427814Это потому что питон ставишь на винду. Гетеросексуалы на линуксе в таких вещах кодят. Но на линуксе тоже есть гомосеки
Сап пайтонбоги! Помогите нубу, не могу понять одну вещь.учу питон, но застрял>for i in range( 1, 5 ):> print ( i )>else:> print ( 'Цикл for закончен' )Вывод:>1>2>3>4>Цикл for законченОкей, здесь всё понятно, но дальше>Мы задаём два числа, и range возвращает последовательность чисел от пер-вого числа до второго. Например,range(1,5)даёт последовательность[1, 2,3, 4]. По умолчанию range принимает значение шага, равное 1. Если мы зададим также и третье число range, оно будет служить шагом. Например,range(1,5,2)даст[1,3]. Помните, интервал простирается только до второго числа, т.е. не включает его в себя.Почему будет [1,3]?
>>1428011У тебя начинается перебор i с шагом 2. Первое значение - 1. Второе значение 1+2 =3. Третье значение 3+2=5, но 5 уже выходит за предел.
>>1427999Игродебилам нужно программировать на крестах и вообще больше интересоваться вычислениями на GPU. А питон для этого не подходит.
С каких пор кстати словари в Питоне поддерживают возможность добавления int-значений в качестве ключей?.. Были ж только строки
>>1428101Ну здрасти. Всегда так было, ты с чем-то путаешь.Любые объекты можно в качестве ключей использовать.
>>1428112"Хешируемые" можно. Но таким можно любой объект сделать при желании, то есть вот классы и экземпляры классов можно использовать. Словари нельзя, впрочем, хотя казалось бы тоже объект.
>>1421793 (OP)Ребята, хелпВкатываюсь в петон попутно решая задачкиhttps://www.codepile.net/pile/1jP8xyjbрезультат почти, но не совсем. где я проебался?
>>1428137например есть у нас строка "abc"генерируем все возможные варианты из этих букв т.еabc, bac, cba и тд
>>1428144лол нагуглить эту типовую задачку и скопировать код дело нескольких секундно нахуа?лучше скажи где ошибка в коде выше
>>1428148Потому что такие типовые задачи решаются встроенными средствами, на практике.Тебе добрый анон указал на либу, которая делает то что тебе нужно. Только он видимо ошибся, т.к. тебе нужна itertoolsВ чём проблема?Так же стоит научиться правильно гуглить свою проблему на англицком.К примеру, запрос python combinations даёт поразительно годные ответы для решения твоей задачи.
>>1428168>тебе нужна itertoolsчем она лучше циклов for? >Так же стоит научиться правильно гуглить свою проблему на англицком.>>1428148
Пишу бота по этому видеоуроку:https://www.youtube.com/watch?v=nG9nObVSQ6kСделал клавиатуру, но она не работает. Что я делаю не так?полный код:https://pastebin.com/0cYTcEkS
>>1428173> чем она лучше циклов for? Скоростью.Читабельностью.Стандартностью.Правильностью.> нагуглить эту типовую задачку и скопировать код дело нескольких секунд но нахуа?Ты в порядке? Я тебе уже сказал, что подобного плана задачи правильно решать именно стандартными средствами, и всё.
>>1428176>Скоростью.Your proofs, manya?>подобного плана задачи правильно решать именно стандартными средствамиТы про итерейшнс? Надеюсь, рофлишь, иначе даже не смешно.
>>1428178> Your proofs, manya?Запусти и узнаешь.> Ты про итерейшнс?Я про итертулс.Вместо того что бы здесь пиздеть, пошёл бы да начал читать доки к стандартным либам - полезная вещь.
>>1428180>Запусти и узнаешь.yasno ponyano.>Я про итертулс.Спасибо, интересная библиотека, но вопрос был не о том. Ты пришел повыебываться, в итоге обкакался и обтекаешь. Смысл был самому реализовать алгоритм, а не использовать готовое решение.
>>1428139Количество перестановок - факториал от числа. 3! = 1x2x3 = 6Количество вариантов кода типа aaa, aab, aac, aba abb - это количество букв в степени длины слова, 3^3=27В твоем цикле же 3x3=9 операций. Вообще не бьется, не находишь?
>>1428185толковый ответ, спспо моей логике, первый цикл для прохождения по буквам, второй чтобы вставлять букву в разные места
>>1426858Объясню, предельно упрощенно: Синхронное выполнение (в одном потоке) - код работает по порядку следования (обычно сверху вниз, лол) в твоем исходнике и соответствует порядку во времени, и может даже выполняться довольно шустро, но внезапно оказывается, что все честно стоят на строке 146 и ждут, когда допишется файлик file.write(MEGA_STRING). После чего выполняются строки 147,148, 149,.. 271 - хуяк! И опять все ждут, когда прочтем из базы хуиту: data = db1.execute("SELECT name FROM table1 WHERE wtfield = ULTRA_STRING"), а потом идут строки 272, 273, 274... с остальными командами в духе a = b + c и программа успешно завершается.Асинхронное выполнение (в одном потоке) - это когда ты выполняешь код и, не ожидая готовности к использованию данных из сети, диска, ГУИ и т.д., части кода (например, функции или еще что) могут выполнятся без четкого порядка во времени, но при этом ОДНА ЗА ДРУГОЙ, иногда переключаясь. Происходит следующее: сначала выполняем строки 1,2,3, ... 144, 145, 146 - опаньки, пошло-поехало писать file.write(MEGA_STRING), но мы никого не ждем и выполняем строки 147, 148, 149 ... 271 - опа! выполняем чтение data = async db1.execute(...) и не дожидаясь окончания выполняем строки 272,273 ..., там по пути где-то заканчиваем ввод-вывод в произвольные моменты времени, собираем данные и после этого программа завершается. Мы получили ускорение за счет того, что строки 1-145, 147-270, 272... выполнились без существенных задержек.Мультипоточное/мультипроцессное выполнение: в данном примере все будет похоже, только перед строкой c вводом-выводом мы заведем новый процесс/поток и пойдем делать это там. Выигрыш такой же примерно. В чем же разница?А в том, что теперь мы можем исполнять некоторые куски кода ОДНОВРЕМЕННО, если ядра/процессоры/узлы кластера есть. И здесь мы не ограниченны только улучшением работы с операциями ввода-вывода.То есть, если мы имеем задачу вычислительную: числа от 100 до 500 возвести в 5 степень и вывести полученный результат, то создав 4 потока (при 4 ядрах) , мы сможем вызвать нашу функцию вместо exp5([100,101,102, ..., 500]), как-то в духе:pool.map(exp5, [[100, ...],[200, ...],[300, ...],[400,...]])В результате мы получим кратный выигрыш по времени, который не смогли бы никак сделать с одним потоком.
>>1428193Эту задачу проще решать или рекурсивно, или имитируя рекурсивность через стек, это один подход. Есть другой алгоритм, стека в явном виде нет, смысл в то, что если была исходная последовательность условно стартующая с 1234567, то глядя на какой-то элемент, например4563172можно всегда быстро сказать, какой элемент должен быть следующим. 45632174563271456371245637214567123...в принципе, это почти тот же стек, но без стека. В общем подумай. Интересная задачка, чтобы реализовать, просто для практики.
>>1428219Сюда надо добавить, что треды переключаются в случайные моменты времени, да и само переключение накладно бывает, надо поднимать контекст, кеши могут сбрасываться и т.п. Есть серьёзная проблемы синхронизации, необходимо блочить "критические секции". В питоне многотредовость вообще будет плохо работать, из-за GIL, это известная проблема. Параллельно код питона работать не будет, ускорение будет только при работе со внешними библиотеками, написанными не на питоне и не привязанных к GIL.
>>1428182> yasno ponyano.Рук нет? Я должен за тебя гуглить?> Ты пришел повыебыватьсяБыло бы перед кем. Я пришёл подсказать верный путь решения данной задачи и всё.> Смысл был самому реализовать алгоритм, а не использовать готовое решение.Реализовывай что-то поинтересней, не надо заниматься тем, что уже готово и отлично работает.
Посоны, поясните за multiprocessing.Pool. На основе мануалов от индусов и документации я понял, что он создает пул процессов и через очередь передает им аргументы. Когда процесс отработал, он убирается из пула и заменяется новым?Интересует вкупе с pool.map. Как это, блджад, работает???
>>1428384Если бы создавать треды было бесплатно, эта хуйня была бы не нужна. Захотел выполнить map допустим, создал треды по числу ядер в системе, выполнил часть работы на каждом ядре, убил треды.Но создавать треды довольно дорого поэтому создается пул воркеров, которым и скармливается работа.
Народ,меня вот что интересует,если пользователь вместо знаков сложения,вычитания,умножения,деления введ что нибудь другое,как меня его об этом предупредить и оставноить программуЗаранее благодарен
Ребята, подскажите какие-нибудь интерактивные курсы по питону на подобие жавараш и годных видео уроков. Люблю вас
>>1428581Мне нужна конструкция,которая будет предупреждать пользователя в случаи если он введет не знак,а хуй знает чтоНаглядный пример что программа пропускает этот пункт
>>1428583operand=['=','-','*','/']while what not in operand:print('ты хуй')what=input("вводи внимательно блядина")
Аноны, поясните как работает not в скобках. Почему он выдаёт фолс только с двумя нулями. А остальные числа могут быть любые. Я уже заебался пытаться понять как оно работает.
>>1428597анон, помоги с этим >>1428596 молю. объясни как он так считает что при любых значениях будет тру кроме, только если 2 числа равны 0 будет фолс.
>>1428604вот-вот и я в ахуе. я не понимаю принцип работы. пиздец уже всех заебал этим вопросом и никто конкретно не ответил!при том если убрать скобки то будет работать так как это работает. ну как-то же высчиытвается это множественное нот в множественных скобках ёбана врот
>>1428608какой весь код? там нет никакого кода, я в оболочке просто балуюсь различными командами. всё на скринесуть в том БЛЯДЬ что почему в выраженииnot (not (not 2) ) == 5 он даёт ТРУ при любых числах и вне зависимости от количества нотов. и только при двух нулях в выражении not (not (not 0) ) == 0 он даст фолс
>>1428615а почему "=="? он же скобки первым деложен делать. извини, пожалуйста, а ты можешь мне раписать всё на схеме. ну записать это выражение и там по пунктам со стрелочками всё разложить, молю
>>1428615анончик, смотри какой прикол. вот я вообще уже не понимаю как это работает.пожалуйста, распиши за эти выражения максимально подробно, каждое действите отметь цифоркой и распиши что оно делает. молю. я пол дня мозг себе ебу наверное и спать не лягу пока не разберусь.
>>1428618Он и делает сначала скобки, но самый левый нот не в скобках, поэтому он делается последним, уже после проверки на равенство.
>>1428623АААА ДОШЛО СПАСИБО АНОН, ТЫ САМЫЙ САМЫЙ ЛУЧШИЙ НА ЗЕМЛЕ. АНОН, ТЫ ЛУЧШИЙ ПРОСТО ОХУЕННЫЙ. СПАСИБО ТЕБЕ НАКОНЕЦ-ТО Я ПОНЯЛ.
>>1428625возьми то выражение, пронумеруй как в школе на уроке алгебры каждое действие и под каждой цифрой подпиши что он делает. вот тогда я пойму.
>>1428629я пол дня уже заебался гуглить и всё такое делать. нихуя не знаю и ты кстати тоже, ты здесь только кукарекаешь. если бы ты знал ты бы расписал там от силы 6 действий.
>>1428632хорошо, а как ты это обхяснишь тогда. почему ему похуй на цифры? кроме случаев когда там 0 0
>>1426158>>1426217>>1426426Какая незамысловатая реклама. Контора взяла дауна и решила учить питону, ага, сейчас так модно. inb4: я с++еньор, мне только синтаксис выучить
>>1426426если те люди так охуенно знают питон то почему они зарабатывают тем что обучают людей ему а не пишут на нём получая 300кк в наносек? это как всякие уебаны которые учат зарабатывать миллионы, но при этом единственных их доход это обучение на заработке этих самых миллионов
>>1428647>>1428648блять. да знаю я что фолс это 0, а тру это 1. ну напишите мне схематично порядок действий и опишите что каждое из них делает. сделай мне вычисление для дауна.
>>1428609Для начала перестань писать выражения с неочевидным приоритетом. not (not (not 2) ) == 5 это (not (not (not 2) )) == 5 или not ((not (not 2) ) == 5)?Затем перестань сравнивать числа с булевыми выражниями.После этого можешь перестать заморачиваться такой хуйней, которая интересна только разработчикам интерпретатора питона.
>>> def id(x):... print(x)... return x... >>> id(not id(not id(not 2) )) == 5FalseTrueFalseFalseА вообще это делается так.
>>1428651да мне интересно, занимался и буду такой хуетой заниматься. если он вычисляет интеджеры, с булеанами значит он их вычисляет и я хочу понять как.
>>1428657а блять вот я долбаёб. до меня дошло сейчас что вынося not За скобки я сравнивал не число а not с числомёбаный врот, какая я ебанаха-пидораха
Есть параметры искомых пикселейpix1 = [8,7,6]pix2 = [8,8,8]pix3 = [8,9,8]pix4 = [8,8,6]pix5 = [8,10,8]pix6 = [9,8,8]Как правильно создать лист из этих параметров и поместить в функцию, для проверки соответствует ли цвет присылаемого в функцию пикселя одному из этих?def get_pix(x,y): monitor = {'top': x, 'left': y, 'width': 5, 'height': 5} im = numpy.array(sct.grab(monitor), dtype=numpy.uint8) im = numpy.flip(im[:, :, :3], 2) # BGRA -> RGB conversion pixel= im[1, 1] if pixel in ?? else:Заранее спасибо!
>>1428673pixels = [[8,7,6], [8,8,8], ...и так далее ...]Это самый простой способ, хотя не самый эффективный. Более эффективно было бы использовать функцию where наверное
>>1428674Что ты имеешь ввиду?list = [1,2,34,5,67,8,9]Такой, где значения в нем простые и однозначные, я знаю как работает и если pix=1, то if pixel in list. работает. Но тут в каждом значении pix еще набор значений, т.е. вроде как нужно создать список со списками. А такое я пока не изучилл, вот обратился за помощью.
>>1428693Если тебе нужно рисовать картинки для анализа простейшего выражения, ты делаешь что-то не то. Вечер убил на хуйню полную.
>>1428708не совсем вечер. я с 4-х дня ебусь.да представь, нужны, люблю когда всё по полочкам разобрано нахуй прямо в разрезе как оно вычисляется.поясни, пожалуйста почемуnot 2 любое другое число это False.но в тоже время 2 и любое другое число не == True? А только 1, а почему?
>>1428711>да представь, нужны, люблю когда всё по полочкам разобрано нахуй прямо в разрезе как оно вычисляется.В уме такие вещи надо делать.>поясни, пожалуйста почемуТут нужен вопрос не почему, а зачем.>>> type(True)<class 'bool'>>>> type(1)<class 'int'>Как видно, у True тип bool, у 1 - int. Значит где-то (либо перед ==, либо внутри ==, либо после ==, аналогично и not) должно происходить неявное преобразование типа.То есть сравнение будет либо bool(1) == True, либо 1 == int(True), а напрямую сравнить ежа с ужом нельзя. Смотрим результаты преобразований>>> int(True)1>>> bool(1)True>>> bool(2)TrueТак как 2 == True - это ложь, значит имеет место неявное преобразование True к 1, а не 2 к True. Почему я не знаю и знать не хочу.Почему? Потому что так захотел создатель питона. Неявные преобразования устроены так, что они неочевидны и нелогичны в каких-то случаях, и должны использоваться с осторожностью. not 2 - это говнокод.Другой вопрос, зачем. Потому что если не писать говнокод, они неплохо сокращают код от кучи явных преобразований. Когда у тебя yoba возвращает число, но ты можешь написать if yoba(), не if bool(yoba()).Язык, в котором неявные преобразования запрещены, называется языком со строгой типизацией. Разрешены - с нестрогой. Питон более строг, чем жс, но, как видишь, не на 100% строг.
Сап. import sys from cx_Freeze import setup, Executable ^SyntaxError: invalid syntaxРугается, сука. Что не так?
>>1428711>не, я не тупой, раз не могу понять почему 2*3 = 6, прост люблю, когда все по полочкам разобрано
>>1428741ты наверное при импорте файл в котором кодишь назвал именем модуля вот он и ругается. попробуй скрипт переиминовать в хуй например
>>1428784ну надо decimal Юзать. а здесь типа из-за флоат какая-то хуйня там с памятью. не ебу точно. загугли "питон неправильно считает" там может выйдет что-нибудь полезное
>>1428790спасибо что решение залил. да питон та ещё хуета багованая-лагованая с кучей неясностей. хотя я видел и по хуже.
Привет питонач, тупой конечно вопрос.. а джанга это бекэнд? Можно ли на питоне сделать сайт и не юзать html и тому подобное? Чисто на питоне
>>1428234Там довольно таки популярный бот для инсты на питоне многозадачность которого организована на тредах и расписании https://github.com/instagrambot/instabot/blob/master/examples/ultimate_schedule/ultimate.py
>>1428921пошёл нахуй, пиздюк ёбаный. съеби из треда, пока я на твою стрижечку из барбержопа не нассал.
>>1428926Ишак, это же ты вчера усирался: >>1428622 ?Просто пиздец блять. Народ не способен освоить математику уровня 6 класса, не в курсе базовых операций с битами и float-значениями в ЦП и вот это потенциальные погромизды. Ахуеть
Помогите пожалуйста починить проект.В общем в 16 году, один чел писал симулятор частиц. вот его проектhttps://github.com/grogno/Proto/blob/master/Proto.pyи тред https://2ch.hk/sci/arch/2016-09-25/res/364630.htmlПытаюсь скомпилировать, а питон ругается на File "proto.py", line 168, in <module> rungeKutta(particles, dt) #Делает шаг симуляции File "proto.py", line 115, in rungeKutta next_positions, next_velocities = Bounce(next_positions, next_velocities)NameError: name 'Bounce' is not defined
Открываю hh, пишу python, опыт работы - нет опыта работы. Вакансий 78, почти везде python идёт как дополнение
>>1421793 (OP)Почему в питоне до сих пор нет нормальных инструментов типа гредла или карго?Хуже ведь только в c/c++
>>1428234Посоветуй почитать что то с тредами и с паралельностью.Походу они задачи наложились друг на друга, и эта сука пропустила постинг. злюсь на программу которую коряво написал сам типа у неё был вариант сделать все иначе...ну не дебил? Дебил. в целом работает статистика по другим задачам растёт, а запостить не запостил. Он 9апущен на orange pi zero.
Гайз, кто-нибудь может перевести небольшой тривиальной код с плюсов на пайтон? В синтаксис етить не охота вдрачиваться, там буквально знания массивов и циклов нужны
Объясните мне, django rest framework полезен во всех случаях, или только в тех, в которых требуется сделать внешнее API? И можете подсказать каких нибудь гайдов по фреймворку.
>>1429587Гайдов, хуяйдов, пиздец вы блять все обленились, суки. С таким настроем - пиздуй макакой во фронт, или на завод.Гайды - параша, но на drf ты их в гугле найдёшь ёбаную кучу, все плюс-минус одинаковой парашности. На любом языке. Но это drf, он сравнительно популярен. На тот же flask - уже меньше, на aiohttp - только даташит.Учи английский, кури даташит, смотри чужие решения на гите, или дрочи паттерны и алгоритмы и делай свои, учитывая ньюансы оформления кода, и выбранной парадигмы.
>>1429665>5~6kКод для боинга писали прогеры за 9 баксов в час. Это 1.5к в месяц. А в /b как и здесь рекламируют курсы для лохов.И даже эти ебучие индусы прогеры изучали программирование, а не какой-то там ЯП.
>>1429680Почему мне тут не сидеть? Я на бордах уже больше 10 лет, последние лет 5 катаюсь в тематике./pr попахивает конечно, но тем не менее. Когда-то я тут сам советы просил.>>1429681Когда я программирование осваивал никаких курсов не было, только книги Страуструпа, Кормана и Кнута. А сейчас уже бестолку. Ну разве что интересно было проскролить недавно Grokking the System Design Interview
>>1429683Я тебе сказал, что гайдов, хуева гора, и все одинаковой степени паршивости, если тебя в гугле забанили, это исключительно твои проблемы. Все эти гайды уровня "Пишем свой блог и делаем доступ к статьям/комментам по апи). Их куча на хабре, есть блоги погромиздов и т.д. и т.п.Если ты не можешь в гугл, или анализ написанного - выкатывайся.Но опять же, я тут токсичу сегодня, потому что не с той ноги встал.Как эпилог, несколько перефразирую сказанное:Анонче, если хочешь овладеть drf, то подойдёт для начала, любой из найденных в гугле гайдов, по нему запилишь первый проект, уровня laba1, а после уже поняв, как примерно на базовом уровне устроен фреймворк, либо сидишь и гуглишь решения на гите, стаке, либо куришь даташит и вникаешь. После реализуешь это сам. Опять же, как писали несколькими постами выше - начинать нужно изучать не яп, и тем более, не фреймворк, а программирование. Без этого увы никуда. И если формошлёпить можно научиться за 2-3 месяца, то вот реализовывать функционал не предусмотренный изкоробки фреймворком - может уйти и 2 года, если до этого не сталкивался с паттернами, алгоритмами, структурами и т.д.
>>1429502силь ву пле#include <iostream>#include <vector> using namespace std; int main(){ long long n, k; cin >> k >> n; vector <long long> step (n + 1); step[1] = 1; for (long long i = 2; i <= k; i++) step = step [i - 1] * 2; for (long long i = k + 1; i <= n; i++) for (long long j = 1; j <= k; j++) step += step [i - j]; cout << step [n]; }
Хайль питонисты. Маленький вопрос, который не отнимет у вас много времени.Положим, есть генератор названий фентезийных городов, с суфиксами, там, двойными корнями и прочим. Этот генератор засовывается в бота для телеги.Как хранить списки суффиксов, окончаний и прочего? В файле и каждый раз читать? Или прям отдельно забить их в питоносписок явным образом? Что быстрее? Что правильнее, с точки зрения идеологии? MySQL не предлагать, не те масштабы (или те и я чего-то не понимаю?)
>>1429753>MySQL не предлагать, не те масштабыТогда вообще похуй.>Что правильнее, с точки зрения идеологии?Для говноскриптов как-то про идеологию странно говорить. Скорее всего у тебя твоя поделка будет на VPSке работать, поэтому сделай лучше >прям отдельно забить их в питоносписок
>>1429807Тем, что сраных десять килобайт данных не надо хранить ни в какой БД. Тем, что там нет сложных запросов. Тем, что каждый селект из твоего злоебучего говна будет насиловать диск на обосраной виртуалке.
>>1429811И каждый раз код редачить и деплоить при добавлении нового значения вместо того, что бы к базе один раз подключиться >Тем, что каждый селект из твоего злоебучего говна будет насиловать диск на обосраной виртуалке.Указал кеширование и никто к диску обращаться не будет
tkinter актуален для чего то большего, чем учебное пособие по гуи? Чет припекло и решил в свободное время подвести под свои консольные подделки гуи, но с пользовательскими интерфейсами мало знаком
>>1429842У питона есть официальный туториал можешь попробовать егоhttps://docs.python.org/3/tutorial/index.html
>>1429824Добавить одну строку и запустить один скрипт для деплоя. Вместо ебучего макакинга вида зайти на виртуалку, запустить пейсон, import sqlite, <тут 5 минут тужения и вспоминания синтаксиса>, хуйпизда.commit()Даже не знаю.>Указал кеширование и никто к диску обращаться не будетБоже, это пиздец. Нести копробазу ради того, чтобы в итоге все равно все в память загрузить.
>>1429753Ну а сколько этих самых имен и суффиксов, сто, тысяча или миллион? Как часто их надо менять-изменять, если вообще надо? Нужны подробности. Если их не так много, то, действительно, можешь просто сделать отдельный текстовый файл и забить туда города. Можно и питоновский файл со списком сделать, но, думаю, что данные надо хранить без привязки к конкретному языку
>>1429879Ебать ты долбоёб, /б/ратишка.Если он захочет изменять список налету? Если захочет расширить функционал и добавить ещё пару таблиц в БД или полей в уже имеющуюся?>>1429753SQLite твой выбор.
>>1429860> tkinter актуален для чего то большего, чем учебное пособие по гуи? Особо рьяные на нём делают что-то сложное, но ну нахуй.Можешь попробовать поюзать PyQT, вполне себе ок.
>>1429921Какой же ты тупой, пиздец просто. Там вся задача на три строчки, а тупорылая макака типа тебя с синдромом утки пытается впихнуть вчера выученную библиотеку в каждый угол, хотя она там нахуй никому не нужна.>Если он захочет изменять список налету? >Указал кеширование и никто к диску обращаться не будетОбезумевший еблан, что ты несешь? Кто кеш инвалидировать внутри процесса будет?
>>1429921>Если он захочет изменять список налету?>Если захочет расширить функционал и добавить ещё пару таблиц в БД или полей в уже имеющуюся?>Если ебучий телеграм бот захватит вселеннуюИз-за того долбоебизма вы тут и сидите все, лол. Самый простой вариант всегда лучше преждевременной оптимизации.
>>1429880>Эти интерфейсы вообще неактуальны как класс,> все уже давно в веб укатилось.Предлагаешь мне получать дамп ядра через веб? Конструктор булко-тролейбуса, ты?
>>1429936>Предлагаешь мне получать дамп ядра через веб?Предлагаю тебе вопросы писать с подробностями, а не “ыыыы я тут заибался чо лучше для гуев взять”.Корки прекрасно в GDB читаются, зачем для них огород из интерфейсов - загадка.
>>1429939нашел как отключить подсветку повторяющихся фрагментов (дубликатов). охуенно ебет глаза и отвлекает.
>>1429936А в чем проблема? Нарисовал интерфейс в браузере, кинул туда файл с дампом, сидишь и смотришь. В клиентском JS выбор для формошлепства неизмеримо больше.
>>1429951Вспомнил. upper() и lower() не работали у меня.A bug: SQLite only understands upper/lower case for ASCII characters by default. The LIKE operator is case sensitive by default for unicode characters that are beyond the ASCII range
Аноны поясните мне пару вещей за питон 1) Что использовать вместо исключений? Конструкция как понимаю, заметно тормозит выполнение программы. Просто прописывать жестко детерминированную логику получения конкретных данных от пользователя не заморачиваясь над конструкцией try/except ?2) Стоит ли выносить авторизацию пользователя в отдельный модуль, или писать прямо в основном коде проекта? Имхо по ощущениям это самый тормозящий процесс. И в обще насколько оправдано использование микроархитектуры в p2p приложениях? Насколько такой подход тормозит выполнение программы, из за обмена данными и импорта модулей?
>>1429993> данных от пользователя Данные от пользователя (если это не поток с какой-то мышки или типа того) можно спокойно обрабатывать исключениями. Исключения тормозят выполнение программы когда ты их выбрасываешь по паре сотен в секунду. Ивентов по вводу от пользователя должно быть немного - их спокойно с исключениями можно обрабатывать.
>>1429998Вопрос был в том, насколько тормозит прогу конструкция try/except а не сами выброшенные исключения
Пацаны, надо запилить эмулятор одной очень специфичной железяки для работы, но из ЯП знаю только змею. Сам я не особо силен в кодинге, максимум скрипты хуярил в 100 строк, но принцип ООП вроде осилил. Проблема в том, что больно дохуя классов получается, так как прибор довольно сложный и связан с множеством других простых железяк, я уже путаюсь нахуй в этих классах/модулях. Реквестирую советы как это реализовать на питоне, сам нихуя подходящего не нашел в гугле, или затея говно и мне на js/java/c++/c# перекатываться? Еще реквестирую софтину для перевода uml-диаграммы классов в питонячий код, если таковая имеется.
>>1429922>PyQTА если попытаться сделать портативный вариант приложения с помощью, например, Pyinstaller, результат не получится ли тяжеловатым, сотни мегабайт даже для самых простых приложений?
>>1430017А ты не смотрел в сторону готовых приложений для эмуляции, где можно накидать элементы соединить их линиями и запустить, какой-нибудь там NI Multisim, или Matlab Simulink, или похожая программа? Тебе же электронику надо эмулировать, да? Хотя, и для чисто механических систем тоже должны быть симуляторы.
>>1430043>готовые решенияНе подойдут. Мне на выходе нужен exe-шник с минималистичным гуем, который запустится на любом компе и веб-приложение.
>>1429933> Самый простой вариант всегда лучше преждевременной оптимизации.Да ты что? Из-за таких как ты потом пол приложения переписывать надо, ибо они выбрали "самый простой вариант" и не подумали о будущем масштабировании и гибкости приложения.> Из-за того долбоебизма вы тут и сидите всеНо ведь ты тоже тут сидишь? Да и как сидение тут влияет на что-то ещё?Напомню, это не "мы вам перезвоним тред".Успокойся, болезненный.
>>1421793 (OP)Возможно ли как-нибудь перенести виртуальное окружение с одной машины на другую машину, при чем, эта другая машина не подключенна к интернету? Пусть, для определенности, на обеих машинах стоит убунта.
>>1430057>Да ты что? Из-за таких как ты потом пол приложения переписывать надо, ибо они выбрали "самый простой вариант" и не подумали о будущем масштабировании и гибкости приложения.Невменяемый уебок, остановись. Масштабируемость и гибкость приложения, генерирующего список фентейзиных городов? Ты больной долбоеб, попытайся хотя бы примерно оценивать продуктовую суть задания и траекторию его развития, а не лепить свою ебучую говнотехнологию куда ни попадя.Когда говно из описания автора вырастет до таких масштабов, что не будет держать нагрузку, то у него уже будет столько денег, чтобы нанять штат переписыльщиков. И вероятность развития телеграмного бота до такого состояния равна примерно нулю.
>>1430108> хотя задача уровня лаба1Даже если так, но ведь это же не повод городить структуру, которую потом будет сложно дополнить на ходу или изменить немного(флаги какие добавить или ещё что, к примеру).Тот анон сделает так, как посчитает нужным, офк, но про вариант с небольшой БД будет знать, почему бы и нет?P.s. Да и логика, как у того поехавшего, уровня "хули тут думать, ебош так" - не самый лучший вариант, как по мне.>>1430087> Невменяемый уебок> Ты больной долбоебПрими таблетки, неадекват.
>>1429337Прошу прощения за задержку - как сделать так, чтобы дочерние окна закрывались вместе с основным?
>>1430373PyGTKwxPythonPyGUIPyformsНасчет веса конечного пакета не уверен, но должен быть поменьше pyqt. Отпишись сюда, как найдешь что то компактное, а то все руки не доходят с гуями поиграться.
Вощем есть скрипт, который я хочу запустить из другого скрипта через subprocess.POPEN. я знаю, что первый скрипт выводит кучу всего в консоль. Как мне этот вывод во втором скрипте запихать в какую нибудь строковую переменную в идеале, чтобы это был массив строк, т.к. некоторые строки мне не нужны будут? Там вроде можно в POPEN указать stdout=PIPE, но вот дальше чёт не въезжаю как там в питоне чё делать
>>1430416Я так делал:res = subprocess.Popen(['ping', '-c', '3', ip], stdout = subprocess.PIPE, stderr = subprocess.PIPE) output = res.stdout.read() a = output.decode("utf-8")
>>1430419Вроде да, а вроде и нет. При запуске скрипта передаю ему параметры таким же образом (['something.py', '-p1', 'val1', '-p2', 'val2']) и тд, но почему то при subprocess.POpen он как то неправильно параметры парсит, потому что если я те же параметры один за одним вобью в терминал, то нормально отработает.
>>1430046Такие решения как, например, LabVIEW или Matlab Simulink или OpenModelica, могут не только создавать программу на основе графической схемы, но и создавать графический интерфейс, и создавать отдельные исполняемые приложения, и взаимодействовать с другими программами, что позволит в случае необходимости работать и по сети.
>>1430437Да уж, как то бля непривычен питон. С shell=True заработало, когда команду и процесс запихал вместе в одну строку. без Shell=True сам скрипт запускается, но как то неправильно пережёвывает аргументы и говорит типа "файл не найден". Т.е. именно логика скрипта это выдаёт, сам скрипт точно запускается. Но на stackoverflow питонмейстеры чёт не рекомендуют Shell=True использовать, типа не секьюрно. Хотя если всё запускается без sudo и на моей тачке и я знаю, что запускаю, то может и нет никакой проблемы с этим?
В питоне можно как в js объекты из нихуя собирать, типа есть у меня массив строк, а я такой беру из ничего obj.pid = data[0]obj.ppid = data[1]и т.д.?
>>1430497Чому? Очень удобно же. Как вообще в питоне обстоят дела с классами/структурами? Знаю, что в классах можно дефать методы, но про поля когда то давно читал, и там какая то ебатория, что они не как в си-подобных языках работают.
>>1430501В питоновском for x in y: как то можно из под коробки скипнуть первый объект? В C# я бы например через какой нибудь LINQ сделал бы foreach (var x in y.Skip(1)), а в питоне как с таким дела обстоят?
А у вас в питоне есть дефолтный аналог того же LINQа с агрегантными функциями и фильтрами типа Where, Any, Sum, котором можно было бы лямбда-функцию скормить и тд?
>>1430504Ну можешь изъебаться и проверку сделать на то, что enumerate i =10 и скипнуть или опять же сделать срезы типаfor x in y[:10] + y[11:]:
>>1430506Не совсем понял что хочешь. a = [1,2,3,4,5]Фильтрацияfilter(lambda x: x>3, a)Перемножение списка через reducefrom functools import reducereduce((lambda x, y: x*y), a)
>>1430511Ничё конкретно не хочу. Мне просто нужно одну задачу решить на питоне, а я как бе в нём не бе ни ме, но есть опыт на других языках, вот и спрашиваю местных питонистов какие есть аналоги инструментов, которые я использовал раньше в других языках. За filter lambda x: x <3 спасибо, чичяс попробую.
>>1430512Ты лучше напиши, что именно хочешь. filter вернет объект класса filter, тебе нужно конструкцию обернуть в list, чтоб получить список, с которым можно дальше работать.list(filter(lambda x: x>3, a))
>>1430514Раз в каждые N мс я получаю вывод из от работы 3rd party скрипта, который представляет из себя массив строк, каждую из которых я split'чу по \t. Этот разделенный сплитом массив список по сути - некая структура, поэтому я и спрашивал, можно ли как в js без определения структуры произвольному объекту навешивать поля. Мне нужно проанализировать, какие объекты добавились, какие удалились, поэтому после каждой итерации запуска 3rd party скрипта я хочу записывать, какие объекты есть, а потом после i+1 итерации с помощью фильтра any/where логгировать, что такие то объекты добавились, а такие пропали. Вот как в питоне наиболее элегантно создать объект из массива и пофильтровать пару списков?
>>1430523Ну как же False == True будет False, а False in [False] будет True. Неувязочка. Ну с другой стороны зайдем True in [False] будет False, a False == False будет True. Опять не то, ебучий питон выдает False. Это на знания языка задача была на собеседовании.
>>1430516Ленивое выполнение c and и порядок слева направо. Выражение эквивалентноTrue in False and False == FalseПосле вычисления первой части получаем False и вторая часть не вычисляется.
>>1430501Потому что в питоне есть нормальная система типов. Если тебе нужно хранилище пар ключ-значение есть замечательная структура данных - словарь. Если тебе нужен класс, создавай нормальный класс. Такой код легче читать, легче расширять и поддерживать.
>>1430502Если тип данных позволяет, делаешь срез y[1:], можешь сделать так y1 = iter(y) потом next(y1) , после этого цикл for x in y1 пройдет все элементы кроме первого, можешь использовать функцию enumerate, типа for i, x in enumerate(y): if i !=0: <do somthing>, еще есть в стандартной библиотеке модуль itertools для работы с любыми итераторами, классная штука
>>1428568Т.е. я так понимаю, создаем пул воркеров на Х процессов, через очередь задач внутри пула им подается сериализованная функция и аргументы к ней (если у нас pool.map(...)), и так гоняем воркеры до тех пор, пока все задачи не выполним. А уже пул убивает вручную. Это так работает?
>>1430520Есть встроенный тип set - множество уникальных элементов, пусть у нас есть некая функция get_data(), которая выдает новые элементы, тогда можно обрисовать примерный алгоритм:current_items = set(get_data())log = {}for i in range(iteration_count): new_items = set(get_data()) added = new_items - current_items #получаем элементы, которые есть среди новых, но нет среди старых lost = current_items - new_items #получаем элементы, которые есть среди старых, но нет среди новых log = (added, lost) #сохраняем кортеж состоящий из множества новых элементов и множества потерянных элементов в словарь log, ключ - номер итерации current_items = new_itemsНе знаю, насколько это элегантно, и правильно ли я вообще тебя понял, просто первое, что пришло на ум.
Пытаюсь сношать codewars на уровне ниже нуба. Один и тот-же код на сайте и в PyCharm ведёт себя по-разному
>>1430611> Может у них внутри теста validate_pin("-123"). Похоже> Это не самая большая проблема твоего кодаНастолько плохо?
>>1430612Я вообще не понимаю что делает int(pin) > 0 по твоей задумке. Бросает исключение? Ну или например>>> len(123)Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: object of type 'int' has no len()Этот код работает чудом и работать не должен.
>>1430613> len(123)с чего ты взял, что у него пин должен быть интом, а не строкой? ну ладно, можно добавить в самое начало пин=стр(пин)а инт(пин)>0 нужно засунуть в кондишнал ифа к двум остальным условиям, а сам иф убрать нахуй и сделать вместо него ретерн этого кодишнала.
>>1430614>с чего ты взял, что у него пин должен быть интом, а не строкойПотому что в посте >>1430609 он пишет так в правом скриншоте.>а инт(пин)>0 нужно засунуть в кондишнал ифа к двум остальным условиям, а сам иф убрать нахуй и сделать вместо него ретерн этого кодишнала. Человек учится, и тут приходишь ты и такой йоба поясняешь как все сделать от начала до конца, ну молодец, четкий пацан, всем тут пояснил как что нужно делать.
>>1430620> как все сделать от начала до конца, ну молодец, четкий пацан, всем тут пояснил как что нужно делать. ну всё, теперь он не сможет этому научиться, я у него такой-то шанс отобрал. метод сократа для тривиальных вещей это трата времени на капчи. лучше обосри моё решение и предложи еще лучше.алсо>Этот код работает чудом и работать не должен. хелпфул пиздец. бтв код этот не должен работать и не работает, он тесты не проходит.
>>1430622> метод сократа для тривиальных вещей это трата времени на капчи. Это для тебя тривиальные вещи.>лучше обосри моё решениеТы сделал пин=стр(пин), а потом преобразуешь назад в инт. Так себе.>и предложи еще лучше.Да регулярку надо писать, хули тут думать. Как-то так, если не проебался (я MLщик и регулярки мне не нужны по жизни)re.match("^(\d{4}|\d{6})$", str(pin)) != None
>>1430040>>PyQT>А если попытаться сделать портативный вариант приложения с помощью, например, Pyinstaller, результат не получится ли тяжеловатым, сотни мегабайт даже для самых простых приложений? в 20 метров изи влезть, ниже не пробовал. главное из-под чистого пайтона / энвайронмента собирать где только нужные модули, т.к. система несовершенна
ПХП-сеньйор вкатывается в тред. Хочу перекатится к вам. Каким набором скиллов нужно обладать, чтобы найти работу примерно на 100-150 и 200-250к ? Сейчас вакансии посмотрел, везде просят джанго, фласк, асинк айо, докер, рэбит, монго, рэдис, сечь в микросервисной архитектуре. Я что-то пропускаю ?
>>1430700Разумеется, нужно еще знать как сам язык работает, лютый дроч на микросервисы(нахуй не нужны, имхо), кафку. Это в дополнение к тобой сказанному на 150к. На 200 хз что еще потребуют.
>>1430712>нужно еще знать как сам язык работаетЧто под этим подразумеваешь ? Знать синтаксис, возможности языка и лучшие практики или глубокое понимание работы интерпретатора, чтобы писать максимально оптимизированный код ?
>>1430733Все это + как работает список на низком уровне, что он из себя представляет. Как работает множество и что из себя представляет. Метаклассы, их особенности. Что такое type, особенности работы и т.д. Всякие явные и неявные вызовы магических методов. Довольно часто спрашивают такое на собесах.
>>1430743Хотя я проглядел, что ты написал про понимание работы интерпретатора. И довольно мало книжек, где про это хоть как-то рассказывается. Немного встречается в официальной доке.
>>1430743Можешь посоветовать книжку, где особенности языка, которые ты перечислил, будут нормально описаны ? Ну или вообще книжку для не совсем начинающих.
>>1430806python к вершинам мастерства. Местами очень нудная и слишком подробная, я половину книги скипнул. Но в целом довольно годная. Может меня кто из местных поправит или дополнит.Как устроен python. Только фрагменты брал, там очевидные вещи с интересными связаны, половину глав пропускал.Чистый python. Сам не читал, но коллеги одобряют.По джанге могу посоветовать lightweight django. Там она с нуля(т.е. не стого как ствится, а как запускается внутри) по кусочками расписана.
>>1433181Пробел перед "guess". Вместо "n" и "r" используешь "number" и "running", которые не определены.
Имеет смысл смотреть курсы по django 1.1 или это трата времени, учитывая что сейчас версии 2+ ? С какой версии актуально читать материалы?inb4 понимаю что доки и гугление
>>1438570С поддерживаемой lts(1.11 лучше не стоит, 2.2 самая актуальная) или готовиться к 3.0 - тут конечно и баги будут и сырая сама, но будешь на острие, так сказать. Вообще 2.2 лучше всего.
Анонче,что из себя подразумевает изучение пайтона по книгам?Круглосуточная дрочка терминов и изречений автора?Просто держа книгу в 2к+страниц,я вряд ли запомню все,к тому же такие термины как "list comprehension expression" уже выветрились и я не вспомню чему он служитЭто я привел как пример,не обессудьте
>>1440013>что из себя подразумевает изучение пайтона по книгамТоже что и изучение любого другого языка в любом другом формате.