Тред, посвящённый языку программирования Питон, #71.Предыдущий >>1494130 (OP) Там мы встречали официальный релиз 3.8 с долгожданным оператором :=ЧАВО: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat актуальность примерно 2015 годаКнижки: https://yadi.sk/d/HQhhsBsq3TVRUqТоже книжки: https://yadi.sk/d/tArKKuQu3KejuqБольше книжек: https://yadi.sk/d/H-00n-UG3RSQemОчень много книжек: https://drive.google.com/drive/folders/13YaFijvuH4dtv-PjUKVWLQ7ZIqXIfCLKАнон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:https://ideone.com/https://pastebin.com/https://pyfiddle.io/https://www.codepile.net/#######################################Вопросы-ответы:А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем - решать тебе, книга вредна не будет, то ты можешь её просто не дочитать и забросить.Стоит ли читать %книга_нейм%, если там питон версии 2.х? - Нет, не стоит. 100% есть более актуальная книга, для пистона 3.хА что ещё можно читать? - Питон сам по себе очень хорошо задокументирован, и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.htmlЕсть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги. - МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? - очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4А как учить джангу? Нахожу только книги по джанге 1.х - У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой, из официальной документации.В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать - Вот, пожалуйста, та же самая программа, но переработанная под язык Python http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём - брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
>>1502717Как вариант идешь на фриланс биржу, смотришь какие задачи народ просит решить. Пробуешь решать. В смысле не беря заказ, просто задание там берешь. Что-то +-серьезное можешь в портфолио положить, никто не будет проверять. Когда ссаться перестанешь начинай заказы брать. Ну или работу ищи.
>>1502725ну хуй знает. я этот курс пробежал еще в начале сентября и с того момента написал еще пару сайтиков было даже два тестовых лол и покурил sql. в итоге пока что нихуя никому не нуженмимодругой анон
>>1502731Ну я про быстроту и лёгкость пути ничего не говорил. А курс сам по себе совсем простой, реально для полных чайников. После него ещё писать и писать. Там же тонкостей ещё немеряно и всяких бестпрактис которые только на стаковерфлоу и можно прочесть. Короче все от конкретного человека зависит.
Интересует мнение работающих в вебе анонов. Какой второй язык вы учите/знаете на ряду с питоном? Сейчас думаю, что надо бы как-то расширятся в скилах и мне кажется, что нужно что-то вроде Go, т.к. у них задачи с питоном в вебе одни и те же
Мастера пистона Хэлп. Накалякал значит такой скрипт. https://pastebin.com/6LMkmC7GСуть проста-выбираю пдфку (используя tkinter) затем с помощью библиотеки PyMuPDF (fitz) ищу значение terms (СМЕТА) в ПДФ и выписываю номер странички где это слово встречается. Затем вывожу в консоль, а затем еще и в .txt документ. Вопрос как задать несколько значений terms? Пробовал делать terms =['СМЕТА', 'ВЕДОМОСТЬ'] но тогда вообще все сваливается в ошибку TypeError: in method 'TextPage_search', argument 2 of type 'char const *'Вообщем халп
>>1502918Не могу так сходу сказать. Плохо оцениваю глубину знаний, когда кажется что многие вещи очевидны и понятны, да и само словосочетание "хорошо знаешь" может подразумевать и продвинутую работу и понимание кишков.Про различные стратегии кеширования и кешехранилища знаю и юзал их. Настраивал сварм для докера через compose и умею работать с контейнерами. Для брокера сообщений юзал RabbitMQ и кафку. C бд работал и с sql типа постгреса и марией и с nosql типа монги, etcd и redis, проблем не возникало.
>>1502932Ну тогда малаца.Посоветовал бы учить ГОвно, сейчас довольно много вакансий для свитчеров на ГО или же в паре питон+го.
>>1502928Нихрена тебя не понял, открывал, не понял зачем этот hit_max нужен, обрати внимание что я в searchFor закидываю переменную, а не конкретно слово "xyi". Мне весь смысл в том чтобы по всему документу найти, и "СМЕТА" и "ВЕДОМОСТЬ" (я потом по этой херне содержание в ворде проставлять буду, это быстрее чем глазами проглядывать). Просто для понимания. Представь что у тебя есть 1000 стр ПДФка, и каждые (как вариант) 10 страниц повторяется "СМЕТА" а за ней "ВЕДОМОСТЬ", а где-то напрмиер ведомости вообще может не быть. Вообщем как мне для этой херни ключевые слова объявить. Если что в питоне 2ой день, ногами не пинай
>>1502951Тю ты, ну попробуй тогда чтоль вместо> if page.searchFor (terms):Писать> for x in terms (тут уже будет список твоих слов соответственно):> ---if page.searchFor (x):
>>1502928Я так понял он не один хуй много раз ищет, а много разных хуев.Там же по идее просто перебор словаряfor each in terms: и тут поискНо возможно надо оптимизировать как-то, а то много проходов по файлу может выйти если словарь большой.мимокрокодил
>>1502970>>1502974У меня на выводе примерно следующее должно быть:СМЕТА found on page 1ВЕДОМОСТЬ found on page 2СМЕТА found on page 228ВЕДОМОСТЬ found on page 322а если допустим в ПДФке не будет ВЕДОМОСТЬ то он будет искать сразу по другим объявленным словам в словаре. Короче https://pastebin.com/5MrtAXad, если я правильно понял как-то так, впрочем теперь ругается что terms не объявлен как я понял. Но я теперь хз как объявить словарь.У >>1502969-анона словарь прямо в цикле for, но при таком подходе как сам terms то объявить? Чет я в печали, день ебусь с этим простым скриптом.
>>1503019Пиздец, да ты и правда второй день в питоне.На https://pastebin.com/RhzSwVgW , пробуй. Табуляцию сам поправишь
Антоны, душители змеи, что нужно знать питонисту, чтобы найти работу? Все также как и 2 года назад - django-хуянго?
>>1503070Разную сопутствующую хрень:брокеры сообщений, RabbitMQ, ZeroMQ и т.п.менеджеры задач, вроде Celeryбазы данных SQL и NoSQL, вроде Redisинструментарий вроде Gitвсякие докерыasyncio и асинхронное программированиеНичто из этого не обязательно, даже всё не обязательно, но это из того, что реально востребовано и на что смотрят.
Двач-помогач,пытаюсь подавить исключение контекстным менеджером. Но почему-то питон упорно выдает ошибку и не хочет корректно завершать программу. ЧЯДНТ?class OpenFile: """This class opens file""" def __init__(self, route, mode): self.route = route self.mode = mode def __enter__(self): self.file = open(self.route, self.mode) return self.file def __exit__(self, type): if type is Exception: print('We deal the exception') self.file.close() return True self.file.close()with OpenFile(r'C:', 'r') as some: a = some.read()
Джанго так дрочит на разбиение проекта на приложения. Кто-нибудь переиспользовал одно и то же приложение в разных проектах? Ну да и ладно.Почему же они блядь не придерживаются такого же подхода с моделями? Гораздо же вероятнее что несколько проектов будут работать с одной и той же бд. И тогда начинается адок с поддержкой миграций в разных проектах. Как решать такую проблему?
>>1502633 (OP)Питон 3.8 - говно.Петушня ебаная со своими моржовыми хуями и операторами.Гвидон - пидор.
>>1503330>def __enter__(self):>____self.file = open(self.route, self.mode)>____return self.fileВот здесь у тебя ошибка. Метод __энтер__ должен вернуть объект-контекст. А ты его не возвращаешь, у тебя до этого не доходит, ошибка возникает. __выход__ обрабатывает ошибки, которые возникают в теле контекстного менеджера, а у тебя сбой при инициализации.
>>1503361Всё равно на работе джуна будет какой-нибудь кусок говнокода вообще на втором питоне блядь. Я не знаю, насчёт их нововведений, я пока не уверен в применении f string, вдруг потом найдутся уебаны с 3.4 питоном
Если в цикл while не поставить условие, то он его автоматом проверяет на =True? Например, где function(a) выдает True/Falsewhile function(a): n+=1Он будет увеличивать n пока function(a) не выдаст True? Надеюсь понятно описал. Везде видел только с заданными условиями.
Каким образом можно модифицировать байт-код модуля перед выполнением, причём реализовать это в виде вызова определённой функции в любом месте python-кода этого модуля? Желательно без помощи сторонних библиотек.С модификацией кода отдельной функции всё предельно ясно. Со всем файлом как такое провернуть?И ещё вопросик примерно той же степени уебанства: как сделать так, чтобы импортируемый в модуль класс Foo при создании его экземпляра "видел" глобальные переменные этого модуля? Передавать их в качестве аргумента в __init__ видится мне очень некрасивым костылём, а при вызове globals() в теле __init__ она, видимо, возвращает пространство имён импортируемого модуля, а не модуля, в который класс Foo импортируется. Помогите нубу.
>>1502633 (OP)Я посмотрел ролик про асинхронность из шапки. Я правильно понимаю, что если у нас будут тысячи новых подключений, которые будут запрашивать по маленькой и не нагружающей цпу задаче а потом отрубаться, то будет быстрее прогонять их через корутины, чем создавать для каждой новый поток?
>>1503498>2Почему бы тебе просто не запилить нормальный конфиг и не ебать мозг?>1Просто интересно, зачем такое вообще может пригодиться?
Я хочу сделать простейшую браузерную игру на своём простейшем самописном http сервере. Как лучше организовать сессии? Просто хранить его адрес и юзерагент? Как это делают в нормальных серверах?
При желании можно из нескольких разных процессов слушать один порт. Это делается, правда не помню как.>>1503500Да, быстрее будет с корутинами. Ещё зависит от операционной системе, на линуксе точно, на старой винде не факт.Когда у тебя много тредов, система переключается на каждый из них даже если они заблокированы, ждут данных. Само переключение какие-то расходы ресурсов несёт. А когда у тебя корутины, то переключение идёт только на те корутины, к которым пришли данные и они разблокированы. Внутри это работает на разных системных select/epoll и т.п., качество реализации которых зависит от ОС. В линуксе это хорошо работает, в винде не во всех версиях хорошо было. Но вряд ли кто будет делать серверные задачи на сотни и тысячи подключений на винде.
>>1503563Через куки это делают. Сервер генерирует какое-то случайное число, uid сессии, и записывает его в куки. А на следующих обращениях эти куки читает и достаёт из хранилища данные сессии.
>>15036021. Харрисон М. - Как устроен Python2. Д.Бейдер - Чистый Python3. PEP8Потом уже начинаешь дрочить веб-фреймворки или машобчик или что там тебе надо, попутно изучая стандартную библиотеку.
Приветствую пистонисты. Допустим у меня есть txt в котором идут записи,БМВ, МЕРСДЕС, ПОРШКак мне считать эту текстовуху как список. Будто бы я жестко в коде прописал:wordlist = ['БМВ', 'МЕРСЕДЕС', 'ПОРШ']Все что ни пробовал выкидывает в ошибку. Хелпуйте
>>1503629Два пересказа доки и линтер, найс выборка. Главное всю либу стандартную выучить, шоб от зубов отскакивало.
>>1503632> пересказа докиИди нахуй. Свой первый язык тоже по докам учил? В книгах всё разжёвано, как раз для новичков, в отличие от сухой доки.
>>1503569Зачем? Все что пишут в тредах есть в документации или тут спрашивают вопросы уровня "как открыть файл?"
Народ анон выше >>1503634 подсказал как сделать, но не получилось, сделал похожим образом через pandas, решил сделать словарь в txt не через запятую а построчнонапример БМВМЕРСЕДЕС ПОРШТак вот вопрос как pandas.read_csv считать этот словарь построчно. Пробовал sep='\n' и delimiter='\t'. Все равно не читает. Если словарь вида: БМВ,МЕРСЕДЕС,ПОРШ и sep =',' то все работает. Но так не очень читаемый словарь. Какие есть идеи?Возможно это все нубские вопрос. Недавно в петоне
>>1503673Прикрепляю строку на всякий: wordlist = pd.read_csv('wordlist.txt', sep='', encoding='cp1251')
>>1503689да дело не в том, что он подсказал правильно/не правильно, а том что я сделал по другому, и это работает и все казалось бы хорошо. Но потом я подумал, что лучше в словаре слова разделять не запятой, а новой строкой. А вот как считать данные когда слова построчно? https://pastebin.com/3gXx2LFr Проще говоря, что засунуть в sep='' ?
>>1503662Иногда бывают интересные вопросы не из доков.А вообще удобно там было бы шапку треба расширить, расписать.
>>1503673Какой-то лютый пиздец у тебя в голове. Ты читал хоть что-то про чтение файлов? Нахрена к твоему микрословарю прикручивать артилерию в виде пандас?все давно разжеваноhttps://ru.stackoverflow.com/questions/928295/%D0%A7%D1%82%D0%B5%D0%BD%D0%B8%D0%B5-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%BF%D0%BE%D1%81%D1%82%D1%80%D0%BE%D1%87%D0%BD%D0%BE-%D0%B2-python
>>1503736Мужик, прикинь натыкался на это читал, подумал что у меня какие то проблемы с кодировками, типа не читалась. У меня еще парочка for напичкана в скрипте, вообщем включил голову еще раз осмыслил код, сделал по твоей ссылке. Все заработало. Пандасы уберу из скрипта. Слушай а есть ссылка где прочитать про вывод в csv. Я потом полученные значения хочу разнести в столбик в csv. А затем, уже руками копировать их в word)
>>1503759> Я потом полученные значения хочу разнести в столбик в csv. А затем, уже руками копировать их в wordПиши сразу в word, ептумимо
>>1503767не подойдет, тут суть в том что в блокноте все выходит одной строкой:"БМВ найден на странице 2""ПОРШ найден на странице 3"мне же нужно чтобы экспортнуть в эксель (или csv)в колонке А будут идтиБМВ, ПОРШ а в колонке B номера. Тогда затем я смогу скопировать из колонки B страницы. А колонка А нужна для того чтобы зрительно перепроверить не проебался ли мой скрипт.
>>1503771У меня еще такой вопрос вот ищет программа БМВ, ПОРШ, строго по словарю, а как задать чтобы искало БМВ и еще несколько символов после этого слова. Допустим в словаре написано:БМВПОРШа найдет БМВ м5ПОРШ 911Ну вы поняли, слово из словаря+несколько символов после. Хот я бы как это гуглить. Соре за банальные вопросы. Я не кодер по основной профессии. Для работы нужно.
>>1503778> а как задать чтобы искало БМВ и еще несколько символов после этого слова.regexp в помощь, если хочешь без костылей.
>>1503771csv это тот же текстовый файл в котором данные разделяются запятой, педивикия в помощь. Поэтому выходной файл можешь просто назвать "мояхрень.csv". Ну и в него строки пишешь как-то так:fout.write(f'{тут текущая переменная из списка},{тут номер страницы}\n')
Сегодня иду на собес, сам не программировал неделю и уже начал подзабывать всякие вещи, надеюсь меня не сильно обоссут, благо меня зовут сразу 4 конторы, обосрусь в одной подготовлюсь к другой у меня есть 4 попытки.
>>1504287На какую позицию идешь? Запомни, на собесах обычно любят поглубже покопать тему, которую ты затронешь. Начнут что-то спрашивать и заденешь хеши - начнут по этой теме спрашивать.Я так в асинхронность половину собеса увел и хорошо выступил.
>>1502633 (OP)Может кто-нибудь объяснить как в этой функции использовать дефолтный параметр для initial ?
>>1504538Так в твоем примере он и будет пятерку использовать.А еще ты пидорас с картинкой правда думаешь что я это перепечатывать буду?
>>1504601Не, что-то я тупанул конкретно. При распаковке initial станет 1. Тут вообще любое число переданное первым будет ему присвоено.Правильнее поставить initial между и * аргументами. Тогда будет работать верно.
>>1502633 (OP)Блять, двач, помоги. Я заебался пердолиться с модулями на линуксе. Пытаюсь запустить в вскоде - вылезает, сука, ошибка - пик 2. pip3 freeze показывает, что модуль установлен, и более того с консоли работает все нормально. Интерпритатор в вскоде вроде как тоже верный. Сука, что мне делать? Может, ИДЕ посоветуете другой? С моим корытом-ноутбуком сидеть на пичарме невозможно. Или как-то по изьебистому либы ставить надо? ставил через pip3 install telebot
>>1504619Ладно, походу проще скрафтить env и ебаться уже с ним. В любом случае, я буду благодарен любым советам по менеджменту питона на линупсе.
Почему так много вкатывальщиков учат питон?На нем же только django и flask, нейроночки уже для более менее грамотных спецов. Мне кажется вакансий на джуна-стажера не так мног ои они и так переполнены.
>>1504651Каждый себя мнит умнее остальных вкатывальщиков. Более другой язык они, конечно, остлить не могут.
>>1504619Там же где вводил pip freeze введи which python, полученный адрес введи в вскоде. Так как у тебя линукс, скорее всего у тебя там в одной куче все версии питона, возможно пип показывает модули для интерпретатора второго питона, а ты запускаешь в третьем, может наоборот. Самоё простое -- сделай venv
аноны, подскажите либувот есть у меня к примеру ютубчик (это только нынешняя проблема, а нечто подобное возникает часто). и нужно мне, например, у большого числа роликов написать коммент с, например, его длительностью.Можно делать это руками и заебаться, можно попытаться разгрести апи от ютуба и, как я понял по краткому прочтению всех этих идентификаций апи заебаться еще большено мне эти стулья не по нраву, наверняка есть какая-нибудь возможность это автоматизировать не на уровне апи, а на более, как бы, пользовательском уровне, то есть выдавать скрипту куку, пинать его на определенную веб-страницу, заставлять его парсить ее на, в данном случае, значение ypt-time-duration, вводить это в поле комментария и жмакать кнопочку комментировать?подскажите какую-нибудь либу к змеюке, которая это сможет и имеет какую-никакую документацию (желательно с примерами)
>>1504666Я на ДР у двоюродной сестры был, (ей 30 лет, не жената, живет одна с 6 кошками в большой квартире)встретил там какого-то мужика 25-30 лет, ростелекомщика, он короче питон учит, хочет вайти вайти, говорит, что дошел до классов, а дальше не понимает, и ему практику надо. Ну я про себя порофлил. Сказал, что не питонист, и не могу помочь.
>>1504800Приятный язык? Что сейчас круче раста среди статически типизированных языков? D не взлетел, go вроде неплох, но на нем все клепают только круды на 20кк рпс.
>>1504808В этом и смысл. Вкатывальщики успеют побывать самыми первыми джунами в мире, когда количество вакансий вырастет.
>>1504823> Приятный язык?Нет. Он очень специфичный. Этакий статический perl.> кручеС перспективой трудоустройства? Всё не очень, но можешь глянуть на Котлин.
>>1504607Спасибо, теперь все понятно. >>1504600В моем примере он использует первое значение указанное в функции, в данном случае initial = 10.>А еще ты пидорасНет, ты.
что случилось в последние 2 года с языком? почему питон так поднялся? вроде начинал сдавать под жаваскриптом
>>1504650Вопрос на собеседовании: в чем отличие потоков от асинхронности?Ответ: асинхронность работает в одном потоке, но переключает контекст при помощи цикла событий.
Двач, в чем проблема? Не могу перенести текст на след строку в pygame. \n не работает, отдельно создать текст и вставлять в эту функцию пробовал, результат тот же.
>>1505245Если тут имеются отличия между многопоточностью и асинхронностью, то я бы ответил, что это разные типы многозадачности. Асинхронность это кооперативная, а потоки вытесняющая.
Ананасы, которые веб девелоперы с норм стажем и которые шарят, к вам вопрос.Что на ваших проектах юзается из питоновских фреймворков?Какие проекты пилятся на джанге? И все ли плюшки используются?Например из юзаются ли стандартные вьюхи для аутентификации или пишутся свои?Прост, после изучения джанги, кажется , что особо прогать уметь не надо для создания проекта. Прикрутил все дефолтные штуки из джанги и все работает. Так ли это на рил продуктах? И испольхуют ли джангу для сложных проектов?
>>1505483Зависит от задач. Если ты на каждого клиента будешь стартовать по системному потоку, то ось тебя пошлет нахуй. А вот если ты по корутине на юзера будешь создавать, то сможешь жить и на одном потоке (но при условии, что остальные корутины не будут пытаться внезапно посчитать какую-нибудь еболу на 10 000 лет, многозадачность-то кооперативная).
>>1505537https://docs.python.org/3/library/asyncio-task.htmlРаньше корутины делались на генераторах, сейчас в петухоне для этого завезли отдельный котел. Там немного колдовства с фреймами имеется Не помню точно, различается ли это колдунство для генераторов и корутин, в последний раз сурцы cpython давненько читал.
>>1505537Если на пальцах. Корутина - это некий особый объект, который можно запускать на выполнение, но при этом он предусматривает возможность приостановки выполнения, чтобы в это время могли выполниться другие задачи.Самый канонический пример - генераторы. Именно на их основе асинхронность и реализовывалась изначально. Сейчас там сложнее, дальше вообще от этого уйдут.Совсем на пальцах. Твоя асинхронная функция работает, в какой-то момент эта функция решает, что надо бы и другим дань возможность поработать. Эта функция говорит "так, я отдыхаю, если кому надо, работайте, потом снова я". И система, планировщик задач, переключает задачу.
>>1505615Вот этот проще и понятнее расписал, чем я, двачую. Дополню, что роль планировщика задач играет asyncio event loop.
>>1505245При многопоточном выполнении может работать несколько задач одновременно. Они правда могут блокировать выполнение других потоков, как это в питоне из-за GIL. Но сути не меняет. При асинхронном выполнении работает только один поток.Второе различие в том, что при асинхронном выполнении за точку переключения задачи отвечает программист. В коде явно эти точки указываются, операторы await. Причём только при условии, что ты именно оформленную задачу ждёшь, но это нюансы питона. А вот при многопоточном выполнении переключение задач происходит в произвольный момент времени.
>>1505626Именно, поэтому лучше в корутинах ничего тяжелого не считать. Пока одна корутина не вернет управление, все остальные ее ждут.
>>1505659Жестко надеялся на нормальную шаренную память и так же жестко разочаровался. Очень нужно было хранить общий словарик в памяти, чтобы не синхронизировать изменения состояния через сообщения между процессами. Оно, конечно, медленно, но использование manager-а с проксированием словарика в десяток раз медленнее.
>>1505688Нужно обойтись только стандартной либой, пытаюсь оптимизировать свой фреймворк для акторных вычислений на питоне, с распределенностью и балансировкой нагрузки между ядрами. Не то чтобы он был шибко практичен (пока что), но я в нем просто обкатываю алгоритмы, которые потом тащу в свою виртуальную машину (смесь beam vm и jvm для одной узкой области). А сам фреймворк скрещиваю с asyncio, чтобы можно было из акторов корутины вызывать и вообще сокеты асинхронные использовать, hello-world вроде бы вебный отдает, сложнее пока не пробовал.
Что важнее знать в первую очередь, асинхронность или мультитрединг/мультипроцессинг? Что с большей вероятностью спросят на должность мидла+? На продакшене не приходилось иметь дело ни с чем из этого.Пока что изучаю асинк, потому что на хайпе.
Завтра собес на должность младшего программиста python, там указано в требованиях знание джанги, а я на ней максимум проект запускал и хелоу ворлд с помощью httpresponse отображал, что мне вообще пиздец?
>>1505905Меня на всех собесах на должность питониста с джангой спрашивали максимум "- джангу знаешь?" "-да" "збс". И пару вопросов по sql.Если сомневаешься, можешь быстро глазами пробежаться по какому-нибудь короткому мануалу да хоть тот же самый джангогёрлз, чтобы понимать, нахуя нужны модели-вьюхи-формы.
>>1505927Надеюсь что так и будет, с остальными технологиями какие указаны проблем нет, ну если что у меня еще 3 офера от других контор, так что это не мой последний собес если что.
Подскажите как запустить вот этот скрипт. Пишет, что не хватает либ из списка requirements, но как их установить тогда?
Научился на питоне работать с апи и писать простые парсеры.Учился тупо документацией питона.Что дальше?Что лучше: Прочитать книгу или пройти большой курс?
>>1506068pip install -r requirements.txtПочему бы тебе в следующий раз не загуглить "python requirements.txt", например?
>>1506119Скачать встроенное видео, поиск по джейсону. Толком без взаимодействия с программой.Короче, очень простые.
Раз уж тут про парсинг, а в нюфаг треде мне как обычно не отвечают переброшу вопрос сюда:Аноньчики, как парсить все эти сайты с ajax, типо которые при каждом клике порцию фотографий заливают на страницу? Это нужно как-то при первом запросе выловить кукисы, а потом с этими кукисами делать запросы на ссылку на кнопку?
Есть ли какие-то краткие заметки по особенностям языка и о его работе под капотом? Есть опыт жавы, на питоне иногда пишу, но скорее всего упускаю какие-то тонкости. А читать очередную книгу на сотни страниц с объяснениями ифэлсов нет никакого желания. Или самое краткое что есть - документация?
>>1505380Нет простого способа визуализации текста на нескольких строках в pygame, но эта вспомогательная функция может вам пригодиться. Просто передайте текст (с символами новой строки), x, y и размер шрифта.def render_multi_line(text, x, y, fsize) lines = text.splitlines() for i, l in enumerate(lines): screen.(sys_font.render(l, 0, hecolor), (x, y + fsize*i))https://qa-help.ru/questions/otobrazhenie-teksta-s-neskolkimi-strokami-v-pygame
>>1505626Яйца легче отстрелить себе потоками. Там из-за лока нет адекватной и нормальной многопоточности. Потоки просто стараются захватить gil и при удачной попытке остальные ждут. Это пиздец просто. В дополнение, ты не знаешь какой поток захватит управление и что ожидать ты можешь. В асинхронности ты сам переключаешь контекст.
>>1507133> Есть ли какие-то краткие заметки по особенностям языка и о его работе под капотом?Fluent Python.
Бляяять зачем нужно ООП??? Я просто нихера не могу понять как пользоваться этой ебалой чтоб был хоть какой-то профит по сравнению с обычными функциями. Вот пишут, что god class это плохо и нужно классы разделять по смыслу и задачам. И че нахуй, без него у меня вообще в каждом классу будет по паре аттрибутов и один метод. Это же блять просто захламление кода. Нахуя это все?
И еще эти даунские примеры с пиццериями. Блять, просто покажи настоящий понятный новичку проект с применением этой хуйни, какая нахуй пиццерия.
>>1508003Все книги, курсы, гайды и видосы по программированию такие...Походу их пишут специально чтобы вкатиться сложнее было и больше людей забрасывало это в начале.Одна вода и никакой конкретики, или другая крайность, ПРОСТО берём и начинаем писать код...
>>1507992В небольшом проекте нахуй не нужно. В большом же будет не два атрибута, а два десятка, и без классов хуй разберёшь, к чему какие функции относятся.
>>1507992Это нужно для организации кода. В какой-то момент тебе потребуется, некая сущность содержащая данные и методы для работы с ними. Если в рамках той же пиццерии. У тебя есть некий класс заказ, который содержит определенные поля, типа время, сумма, айдишка предмета заказа, номер клиента, статус и т.д. (тут уже больше нескольких полей, как видишь) и у так же будут несколько методов, типа сохранения объекта в базу и изменения состояния, так же благодаря инкапсуляции ты можешь жестко задать те действия которые ты можешь сделать с этим объектом, типа запрета на изменения клиента через вынесение его в приватные атрибуты. Так же через наследование и полиморфизм ты можешь гибко их изменять, например сам класс заказа унаследован от класса model какой-нибудь orm в которой уже реализованы методы для сохранения, изменения, удаления и поиска данного объекта в базе.
>>1502633 (OP)Предлагаю вашему вниманию криптографию на эллиптических кривых!https://github.com/username1565/mini_ecdsa - файл ECC.py и tests_ECC.pyПока что, это - черновой вариант, но он уже рабочий!Можете погонять, потестить, попытаться оптимизировать ужать код, убрать лишнюю хуету,а если будет интерес и желание - можете ещё и промасштабировать всё это,на суперсингулярные эллиптические кривые, а также на кривые Монтгомери.Хорошего дня.
>>1508008Всегда считал ооп странным, пока не столкнулся с классами типов в хаскеле -- тогда я вообще понял, что ооп это путь не туда. Какое-то бессмысленное размазывание логики по всей кодовой базе. Нет, серьезно, типизированное лямбда-исчисление -- это наше все. System F с обобщенными алгебраическими типами данных достаточно выразительна, чтобы покрыть подавляющую часть необходимых абстракций. Плюс видел версию System F с сабтайпингом, но это уже какое-то извращение.
>>1508115ООП - это относительно простое расширение привычного всем структурного программирования. А вот ФП - ебически сложное инопланетное нечто, к которому невозможно привыкнуть. И не надо про "неосиляторов" - индустрия не сдвинется из-за кучки маргиналов, и осливших никогда не будет большинство.Лучше уж размазанная логика, чем всё в одном месте, переплетённое так, что попытка сделать малейшие изменения всё ломает. Да, ФП-код можно хорошо структурировать. Но что мешает так же хорошо структурировать ООП-код?А Haskell да, красивый. Но абсолютно нежизнеспособен.
>>1508003>понятный новичкуСложно. ООП реально нужно в больших задачах, а большие задачи новичку понять трудно, не понимая сути технологий.Мой совет, на примерах с треугольниками и пиццериями абстрагируйтесь от того, нужно ли это в примерах. Врубитесь в технологический смысл, как это использовать.Наиболее частая схема, это когда в библиотеке реализован какой-то базовый класс, который делает сложный функционал. Но часть вещей не реализованы, их должен дописать тот, кто этим классом будет пользоваться. Тут сразу все три основы ООП используются.Примеров много в разных фреймворках. В Джанго - так модели, админские модули и другое реализовано, там много применяется. Или класс asyncio.Protocol довольно хороший пример.
>>1508129ФП не сложное, если потратить минут 10-15 и слегка поменять способ рассуждений о коде в своей голове. Всякие монады, моноиды, функторы -- это уже к хаскелю, он про чистое фп + теоркат. И да, хаскель не жизнеспособен в качестве продакшн языка в большинстве случаев, т.к. хаскель -- это площадка для исследований в области фп и теории типов. И если его использование в проде иногда все же оправдано, то вот тех, кто тащит в прод Agda или Idris, я бы лично обоссал.Если у тебя функциональный код ломался от малейших изменений, то дело не в парадигме, а в твоих руках, а точнее их неприспособленности, что более вероятно. Про "ломается при малейших изменениях" -- это скорее про императивный код, который часто неявно зависит от совсем неожиданных частей глобального состояния. А вообще, ООП-объекты легко можно имитировать при помощи частичного применения функций.Касательно структурируемости кода -- да, ООП-код тоже возможно структурировать, однако возможности этого в ооп искусственно ограничены вследствие непонятно зачем сделанного связывания данных с кодом. Более того, тот полиморфизм, который наиболее распространен в ООП языках вроде джавы, шарпа и прочих подобных, сложно назвать полноценным полиморфизмом, по крайней мере, с моей точки зрения по большей части из-за механизма реализации дженериков в джаве, а точнее, из-за слишком костыльного использования type erasure.Я не против ооп как такового, я против тех, кто пытается использовать одну парадигму везде. И кстати, обобщенные алгебраические типы данных могут звучать сложно, но если ты потратишь минут 10-15 на чтение статьи на вики с примерами кода, ты потом очень долго будешь удивляться, как вообще возможно построить хоть сколько-нибудь сложную систему без их использования.
>>1508140> дело в твоих рукахАга, сишники так же говорят, оправдывая UB, переполнение буфера и прочие преимущества сишки.Что действительно жизнеспособно - языки, в которых есть элементы как ООП, так и ФП.
>>1508142> Ага, сишники так же говорятИз того, что сишники винят твои руки (а не недостаток опыта, как в моем сообщении выше) вместо признания проблем си, не следует, что я не прав, не так ли?> Что действительно жизнеспособноТвое "жизнеспособно" это синоним слова "привычно", на самом деле. К тому же, мы говорили про парадигму, а не про языки, не перепрыгивай с темы на тему.>>1508145Сразу видно человека с аргументированной и логичной позицией и большим опытом, да.
>>1508146>Сразу видно человека с аргументированной и логичной позицией и большим опытомВаши ожидания - ваши проблемы.
>>1508146Почему для написания программ на одних языках требуется "опыт", а на других вполне можно писать жизнеспособные программы с нуля? Да, это будет быдлокод, но порог вхождения говорит о наличествующих проблемах.Разница между парадигмой и реализацией - как разница между теорией и практикой. Можно придумать название "гибридная парадигма", но суть не изменится.
>>1508151Если под жизнеспособными программами ты подразумеваешь абсолютно неподдерживаемое и нерасширяемое говно, то, увы, это не жизнеспособная программа. Порог входа в языки программирования, как правило, искусственно понижают для большего охвата аудитории, больший охват != лучшее качество Go и JS как пример. И да, если ты в своем коде отходишь от определенной парадигмы, принятой для данного участка программы, для своего удобства, ты тем самым усложняешь понимание программы не только для себя, но и для своих коллег.К тому же, для программирования на некоторых языках нужен не "опыт". Нужно банальное умение думать определенным образом. Как правило, развивается путем изучения алгоритмов и математики. Поверь, областей, в которых нужны программисты с уровнем квалификации выше "накидать формочку" и "сделать апишку для выдачи данных из бд", очень и очень много.И да, ты прав -- слишком низкий порог входа (равно как и чрезмерно высокий) говорит о проблемах языка. Например, в случае питона это низкая скорость исполнения программы и малое количество накладываемых на программиста ограничений. Поверь, если им не следовать, получается очень хреновый код.В случае того же го это крайняя примитивность языка. Ну а дальше ты сам.
>>1508157>областей, в которых нужны программисты с уровнем квалификации выше "накидать формочку" и "сделать апишку для выдачи данных из бд", очень и очень много.Можно подробнее пожалуйста? И желательно с примерами. А то я на том же хх вижу в основном вакансии именно формочки накидать
Вообщем в понедельник прошел собес в контору, мне сказали что во вторник(сегодня) тестовый день будет и по результату него они решат брать меня или нет, на самом тестовом дне меня посадили за пк на убунте, развернули проект на джанге и проект довольно большой, и мне программист начал давать задачки всякие по этому проекту, а я знал джангу плохо, так еще и проект написан пиздец как запутанно, решал их с большим трудом и не все сделал, но этот программист который давал задания сказал так, что впринципе не против взять на работу, но знания у меня слабенькие, сказал пройти всю доку по джанге, а потом по джанга-рест, правда решение принимает не он, а какой-то главный чел и hr из дс с которой мы связывались по видеосвязи и она задавала мне всякие банальные вопросы типо: как прошел тестовый день? как встретил коллектив? какие задачи решал и были ли они интересными? Потом объяснила что решение примут завтра в первой половине дня и позвонят мне, а ну еще мы в подсобке потом бухали шампанское, в целом мне понравилась контора и коллектив, надеюсь что меня все таки возьмут, отпишу завтра что да как.
Какой положняк по фрилансу на Питоне в данный момент? Перспективы есть? Если это, судя по школьному опыту двухгодичной давности, наиболее приятный и удобный для меня язык - больше того, доставляющий удовольствие - стоит вкатываться, если первым приоритетом у меня является фриланс?
>>1508543Проигрываю с вкатывальщиков без опыта работы.А если по делу, открой upwork или аналоги и посмотри, какие задачи там есть. Пойми что ты червячок и выкатывайся.
Всем добрый деньХочу вкатиться в анализ данных (работаю в консалтинге бизнес-аналитиком и завидую коллегам из другого департамента-просто охуенно)Есть лишние деньги, но очень мало времени, поэтому подумываю о курсе от яндекс практикума. Какие подводные камни?Прошу не гнать ссаными тряпками и пардон за ньюфажество. Спасибо
>>1508580что на счет поинтересоваться у коллег из того самого департамента?бизнес-аналитик - это начальная позиция, можно ведь попросить перевести тебя на такую же начальную в другом департаменте если работаешь в big3, то расскажи лучше как вкатилсяи как связан яндекс практикум и отсутствие времени, там в сутках даются бонусные часы?
>>1508620интересовался-вкатывайся в питон, библиотеки и прочий дата сайнс лол. Ну хоть математику знаю. Попроситься перекатиться-идея не из лучших, т.к. мой руководитель сразу узнает, что я смотрю НАЛЕВО, и не хочется напряженных отношенийВ своем департаменте у меня средний высокий грейд- я утрировалНет, работаю не в б3, а компании уровня IBM/Accenture/Kerney и тдЯ вкатывался ранее в погромирвоание, и у меня уходила тонна времени на гугление инфы или разжовывание. Понимаю, что в этом кроется суть познания, но хотелось бы, чтобы меньше времени на это тратилось.Спасибо, что уделил время посту
>>1508632я не датасаентист, поэтому сужу со своей колокольни проведем небольшой ресерч, типичная вакансия дата аналитика(не саентиста) выглядит вот так:https://hh.ru/vacancy/33866469?query=Аналитик%20данных%20pythonключевые слова - SQL, большие данные (Hadoop, Apache Spark), pythonпо анализу данных в python на курсере есть масса курсов, в том числе и от яндексапо SQL информации тоже массаа вот в фреймворках для работы с бигдата за домашней пекой скорее всего разобраться будет затруднительно что касается времени, то по моим наблюдениям это около года плотной работы: курс по базовому пистону - 1-3мес курс на курсере по анализу - около 6мес sql с нуля - 1-3мес (подразумевается базовый набор навыков для написания запросов) самостоятельная практика для своего гитхаба(портфолио) на датасетах с кагла - около 2мес опционально: подтянуть статистику, тервер, линал. Наверняка есть какие-то пробелы в знаниях с универа
Ща пилю первый проект по датасоенсу. Ну не первый начатый, но надеюсь этот я всё же осилю. Хоть что-то начало получаться. Два года проебал на ваше програмироване, ничему не научился по сути, но засунул нос во всё. Даже со стандартным написанием скриптов в пистоне проблемы, по сути базовый уровень, еще у меня такой базовый уровень в крестах, пщ, паре фреймворков, паре технологий, зачем-то знаю с пробелами сетевые протоколы, блохчейны, графику. Почему я такой мудак и не могу просто взять и писать прожект? Пишу его, а потом не могу. Гитхаб мой помер на вторую неделю, вместе со всем что я туда пихал. Два раза почти начал писать хорошие прожекты. Ну как блять? Планировать я пытался, в итоге время проебывается на планирование, время на код становится еще меньше, снова пролет.
>>1508157>К тому же, для программирования на некоторых языках нужен не "опыт". Нужно банальное умение думать определенным образом. Как правило, развивается путем изучения алгоритмов и математики.Это какие языки?
Посоны, раз тут начали разговаривать за датасайенс и аналитику, какие перспективы у комбинации прогерских скилов с аналитикой? Слашал, что датасайентисты писать код не умеют (сам пару раз видел этот пиздец).Поясню конкретно - я питоновский мидлосеньор (зависит, наверное? от собеседующего), но в последнее время ощущаю, что если я через год буду так же хуярить круды на рест фреймворке, то просто вскрою себе вены, меня уже тошнит от этого всего. Хочу чего-то достойного, даже не в деньгах дело, ( хотя конечно хочется зарабатывать чем больше тем лучше), а просто чтоб если меня на улице встретит препод по дифурам из универа, чтобы было не стыдно рассказать "я нейросетями занимаюсь" а не "я сегодня писал весь день датамиграцию".Вот допустим, я такой инвестирую полгода своих выходных и месяц отпуска в этот ваш керас-питорч, что джальше происходит? Я становлюсь интересным специалистом или джуниором-дурачком в 27 лет?
>>1508697вовсе не обязательно становиться саентистом, можешь просто писать качественный код и быть дата инженером, видео по темеhttps://www.youtube.com/watch?v=lDkTNURDIaY&list=PLjmVxPf1NeID3TtbXwglKrhPmwFr_DyqA&index=16&t=0s
Я не программист, не хочу особо это учить, стараюсь вникать, но не понимаю как это сделать.Есть матрица произвольного порядка (массив), надо отсортировать. Например1 4 88 1 33 7 9После сортировки1 1 3 3 4 78 8 9
>>1508382data science на самом деле рандомное тыкание кнопочками у 90%, к сожалению.Разработка ядер ОС и модулей к ним.Разработка распределенных систем.Научные вычисления.Ну и т.д. Но я не подразумевал хедхантер и ограничения по питону, так что, если из контекста можно было заключить именно такие ограничения, то извиняюсь, проглядел.>>1508691Ada, например. Ассемблеры. Скалка там, clojure, erlang, elixir, ...
>>1508727Дело не в фп-подходе, а в модели акторов, молодой человек. А для программирования с использованием модели акторов все же нужно нарабатывать определенный образ мышления, иначе ты ничего дельного и работающего не сделаешь.Виртуальная машина эрланга, кстати, весьма интересная вещь. Попробуй ее на досуге поизучать, тебе может понравиться а может и не понравиться, если навыков пока не хватает для изучения кодовой базы beam vm.
>>1508740И причем тут математика и алгоритмы? Это выглядит, как куча асинхронных процессов, которые сообщениями обмениваются
>>1508750Что, дочитал статью на вики про модель акторов?А теперь иди и сделай на том же условном эрланге распределенную субд реализующую свойства c и p из cap theorem.Математика же, между прочим, имеет к модели акторов самое непосредственное отношение, т.к. актор - математическая абстракция, никак не завязанная на какую-либо реализацию.
>>1508755>актор - математическая абстракция>Актор является вычислительной сущностью, которая в ответ на полученное сообщение может одновременно:>отправить конечное число сообщений другим акторам;>создать конечное число новых акторов;>выбрать поведение, которое будет использоваться при обработке следующего полученного сообщения.Математики изобретают микросервисную архитектуру со своей виртуальной машиной это называется.
>>1508756Мальчик, посмотри на дату первой публикации по модели акторов и пересмотри свое утверждение. http://worrydream.com/refs/Hewitt-ActorModel.pdf
>>1508771АБСТРАКЦИЯ МАТЕМАТИЧЕСКАЯабстракция в математике, мысленное отвлечение, представляющее собой существенную составную часть мыслительной деятельности, направленной на формирование основных математич. понятий.Никаких математических понятий я в статье не видел. Только зачаток микросервисной архитектуры
>>1508774Окей, если тебе нужно более формализированное определение, то оно есть здесьhttps://www.semanticscholar.org/paper/A-Foundation-for-Actor-Computation-Agha-Mason/1880f0b36a38662ab25b5cf01b2c1688f1789900
>>1508697Лучше не keras/pytorch учить, а именно теор. базис нейроночек. А потом понимание того же торча само придет, плюс ты будешь намного ценнее, т.к. сможешь по пейперу воспроизвести модель или сделать на ее основе свою. А самый топовый вариант -- не ограничиваться нейроночками и начинать вообще не с них.
>>1508786Дополню. В двухтысячных Хайкина советовал, но сейчас уже почти 2020 и вроде как на русском вышла годная книга по машинному обучению (с синей обложкой, кажется) и там не требуется особой мат. подготовки, т.к. все прям самое нужное дают в самом начале.
>>1508776Тыкнул на радномную статью из всей кучи.Это все справедливо для архитектуры асинхронных микросервисов с очередями. Просто в случае эрланга оно встроено в язык и является основной философией для него. Для использования никакого глубокого знания математики не нужно, это как каждый раз для описания программы использовать знания из университетского курса "Исследование операций". Достаточного прикладного понимания работы и проблем асинхронного программирования и многозадачности.
>>1508794А я где-то говорил, что нужно глубокое понимание? Я говорил, что математику и алгоритмы нужно изучать. И да, без подготовки программист, скажем, на питоне ничего по-настоящему работающего не выдаст на эрланге, если ему дать знания только о синтаксисе языка. А вот программист, который понимает не только синтаксис эрланга, но и сам эрланг, напишет уже распределенную систему, способную выдерживать нехилые нагрузки. Кстати, в ряде случаев может понадобиться такая замечательная вещь, как CRDT, впрочем, в той же mnesia все уже сделано.И все-таки, признай, что без определенной подготовки человек не сможет писать на том же эрланге хаскель рассматривать было бы слишком читерно, хотя он иногда все же используется в проде у меня на работе, например, одна из самых жестко контроллируемых систем написана на хаскеле. И уровень этой подготовки требуется несколько более высокий, нежели уровень подготовки среднего JS-программиста.Забыл, между прочим, самый яркий пример языка с максимально высоким порогом входа -- Malbolge. Он, конечно, Тьюринг-полный, но все-таки на практике неприменим, поэтому вряд ли его можно отнести к нашей дискуссии.
>>1508810Ты сравниваешь условного погромиста на питоне, который всю жизнь бложики на джанге делал и программиста на эрланге, который писал распределенные системы. Писать примитивные вещи можно на любом языке, для эрланга просто написана система для решения определенных задач. Те же распределенные вычисления и CRDT так же реализуются на питоне и даже успешно используются и при ознакомлении уже формируют понимание проблем и того, как они должны решаться, это не зависит от языка.>что без определенной подготовки человек не сможет писать на том же эрлангеЧеловек без определенной подготовки никогда и не напишет хорошую распределенную систему, ты подменяешь понимание задачи и ее решения на понимание языка, так же человек, который писал на эрланге бложики и не знаком с определенными практиками не сможет написать хорошую программу, которая выдержит большую нагрузку. >нежели уровень подготовки среднего JS-программистаПотому что фронтам это не нужно и они занимаются другими вещами и решают совершенно другие задачи.
>>1508789>годная книга по машинному обучению (с синей обложкой, кажется) и там не требуется особой мат. подготовки, т.к. все прям самое нужное дают в самом началеЭта?
Аноны, появилась идея написать систему аналитики/визуализации данных для вк-групп.Соответственно веб-приложение будет. Юзер запускает это у себя на сервере, конектит группу и вуаля.Собственно предлагаю заинтересованным анонам принять участие.От вас: желание.Уровень навыков не важен.Неплохая, на мой взгляд, возможность наполнить свой гитхаб реальным попенсорс проектом и пройти путь от проектирования и обсуждения структуры приложения до финального запуска.Оставляйте свое фейкомыло/телеграм и с вами свяжутся.
Меня 2 конторы приглашают на работку программистом удаленно, только вот у меня совсем нет опыта, я пока не звонил в эти конторы потому что сейчас стажировку в офис прохожу но мне интересно для чего им может понадобиться недо-джун как я на удаленке, тут ведь говорят чтобы на нее попасть, нужно минимум 1-2 года в офисе отработать, просто кажется что меня наебут, возьмут баги простые решать на месяцок, а по окончанию скажут 'досвидания' и не выплатят зп, вообщем как мне в случае чего не обосраться с такими компаниями?
Доброго времени суток (единицы измерения времени, приблизительно равная периоду обращения Земли вокруг своей оси).У меня вопрос - на пифионе работа только бэкендом есть?
>>1508983Меня нашли лол, просто резюме на ххру сделал, обе конторы сами кинули приглашение и на почту скинули контакты, попросили позвонить в рабочее время.
>>1508949Вангую они просто не смотрели ещё твой "опыт".Что в вакансии у них указано?Вообще, довольно часто пишут хрюши и зовут на вакансии где нужен опыт гораздо больше чем имеется, просто потому что они тупые курицы и не понимают нихуя, а ну и им, вроде как, за количество пришедших тоже доплачивают.
>>1508495Так снова я, кароч буквально 10 минут отзвонили, вообщем меня приняли со след недели приступаю к работе, кстати на этой вакансии требовали опыт от 1 года и вышку, а у меня ни того ни другого нет, так что откликайтесь на все вакансии, хоть на сеньоров шанс пройти есть всегда, всем в тредике удачи!
>>1509040Спасибо, постараюсь.>>150904226к на руки + бонусы сказали что ~30к примерно будет я в регионе живу>>1509044У меня вообще резюме на пхпшника было лол, я просто в сопроводительном письме написал, что знаю питон и немного джангу + в гитхабе были пару задачек по питону и парсер на scrapy.
>>1509036>кстати на этой вакансии требовали опыт от 1 года так на такие и надо обращаться, они имеют ввиду включая некоммерческийили по крайней мере удобно считать что они так имеют ввиду
А кого нибудь увольняли с работы потому что не справлялись с обязанностями? Просто меня недавно приняли, посадили на проект, я туплю пиздец, пока на меня конкретно не гонят, но говорят что нужно подучить это и это, но я не справляюсь все равно, очень много пробелов, боюсь что меня выгонят нахуй.
>>1509129Чому ты тогда в рабочее время в будний день сидишь на харкаче вместо того, чтобы подучивать? Поделом выгонят.
>>1509148Это тоже было, не спорю. Пилил виртуалку под System FC и jit-компиляцией с преемптивными акторами за счет прерываний и смены контекстов, поэтому думал немного не в том ключе. Заодно часть кода за последние дня два выбросил, там тоже чушь наделал, лол.
>>1509134У меня щас не рабочее время и я только что доку читал, мне просто интересно, есть тут те кого выгоняли с работы потому что не справляется с задачами.
>>1509159>>1509129Зависит от начальства, но если человек адекватен и старается учится, то думаю выгонять не будут.
>>1509196Собеседования и тестовые не показывают как человек будет работать в общем, может на собесе спрашивали что-то одно поверхностно, а на работе пришлось работать с чем-нибудь еще. Я тоже тупил, когда меня как джуна без взяли и на тестовой неделе говорили тесты писать, а еще через неделю дали задачу связанную с реббитом.мимо
>>1509373Дрочить лучше параллельно с работой, на которой этот матан применяется.Чтобы теория и практика шли вместе.
Бампану годный тред тупым вопрос-есть ли такие лохи, как я, которые хотят или уже проебали деньги на курсы? Никаких гикбрейнсов и прочее. Смотрю в сторону мэйлру или яндекса. Все в районе 100к. ПОнимаю, что самому лучше и продуктивнее учить, но вопрос исключительно про курсы
>>1509436Ну там будут те же материалы, что есть бесплатно в интернете, те же задачки тебе будут давать, что ты можешь найти бесплатно, потом выдадут тебе тему для проекта и будешь сидеть и делать его так же, как мог бы сам сесть и делать, потом выдадут сертификат, на который в общем-то всем насрать. После курсов в 90% столкнешься с тем, что знаний нихуя на джуна не хватит, будут такие же проблемы с устройством на работу, как у тех кто ни на какие курсы не ходил. Покупай, если тебе оно надо, особо многого не жди. Я бы посоветовал если и брать, то какой-нибудь курс с помесячной оплатой, чтобы свалить, если не зайдёт.
>>1509438Два чая этому шарящему господину.>>1509436Но пожалуй стоит отметить единственный плюс курсов:Ты можешь задавать вопросы преподу, который эту хуйню ведёт, и получать ответы.Правда есть одно но - на 90% вопросов есть однозначные ответы в гугле, а оставшиеся 10% просто не имеют точного ответа и зависят от ситуации.
Вроде выучил синтаксис как первого ЯП(универсальный же) и сделал под сотню упражнений за месяц.Куда копать самоучке без ВО? так много направлений разных, но непонятно, какое можно реалистично освоить из дома до уровня, что чужие люди тебе доверят работать работу?
>>1509496А, понял, я просто после ответа на вопрос про курсы перепутал вкладки, думал, что в нюфаг треде сижу. У тебя с питоном вариантов не особо много, есть вэб, есть машоб/бигдата, есть написание скриптов в работе автотестера или сисадмина/девопса. В принципе всё можно из дома освоить, но учить разные вещи придётся. Работу из этого найти проще всего автотестером, судя по всему
>>1509504https://www.jetbrains.com/research/python-developers-survey-2018/Тут статистика по пистону есть
Привет, анчоусы. Нужно написать программу которая берёт либо твой текст который ты вводишь, либо она берёт его из .txt файла. И эта программа показывает все слова в тексте в алфавитном порядке и сколько их в тексте.У меня проблема, при чтении из .txt файла программа не убирает пукнтуацию, хотя если эти же предложение скопировать и вставить с помощь Input, всё отлично работает. Объясните, пожалуйста, почему программа не детектит кавычки и прочие знаки в .txt?
>>1509543второй скрин когда я скопировал предложение из .txt и вставил его через оболочку, а третий когда тоже самое предложение читается из .txt. Разница очевидна, вот в чём дело?
>>1509438>>1509465спасибо!не надеюсь на то, что сертификат поможетскорее надеюсь на то, что после курсов смогу реализовать пару идей по текущей работе (если back, то допишу на облаке пару фич для клиента, а если аналитика, то, опять же, по работе пара идей есть)
>>1509309если ты про ту, что я делал (черное лого питона в белом круге на красном флаге), типа ололо третий рейх, то я всякое 5-минутное говно даже не сохроняю обычно, и очевидно она проёбана
>>1509543>>1509563Знающие аноны, ведь не нужно стараться писать как во втором посте? Нахуя все в одну строку? Сложнее читать ведь
>>1509543Сделал бы что-то вроде import sys_input = sys.stdinИ не морочился с файлами или инпутом, пущай пользователи stdin перенаправляют.
>>1503019Советую никогда не писать > for i in range(len(itter_obj)): ...Лучше делай так:> for index, value in enumerate(itter_obj): ...Если тебе не нужны сами значения value, то можешь ставить нижнее подчеркивание на позиции второго аргумента в фор-лупе.
>>1509607вот реально в каком мозгу могла появиться идея что питон это красивый язык, их девиз beautiful is better than ugly звучит издевкой
>>1503066Тебе тут в целом не нужен инициализировать переменную перед try блоком None’ом, поскольку ты все равно при ошибке завершаешь скрипт кодом 256-1?. Вообще твой код весьма специфический, обычно json загружают через стандартную либу:> import json> my_json = json.load(filename)Как уже написал выше, тебе не нужно делать config_json = None, поскольку это не имеет вообще никакого смысла, но если очень хочется, то можно сделать так:> import os> json_config = open(json_path) if os.path.isfile(json_path) else NoneИ кстати ты в переменную записываешь только указатель на файл, если ты нигде в коде дальше не делаешь json_str = json_config.read(), то толку от него ровным счётом 0
>>1503361Последняя стабильная версия в Debian репозитории - 3.6.8 вроде как, лучше всего на ней сидеть, эти парни лучше Гвидона знают, какая версия лучше. На самом деле после появления typing и fstrings вроде ничего реально полезного не добавляли, но имхо.
>>1503485> Он будет увеличивать n пока function(a) не выдаст True?Нет. Он будет выполнять функцию и инкриминировать n, пока функция выдаёт True. Если функция выдаёт False, то она выполниться 1 раз, но инка на будет.
>>1503500Лучше вообще не использовать потоки, если нужна производительность, либо процессы, либо корутины.
>>1503695Ну епта, sep - сокращение separator, по русски разделитель, очевидно, что там должна быть запятая, советую ещё глянуть аргументы пандасовской функции read_csv, там есть аргумент, который автоматически делает strip не записи типа objects, т.е. на обычные строки, это нужно, чтобы убрать пробелы в начале и в конце слова.
>>1509605Я всякие itertools не курил, по этому советовал, как мог. К тому времени, когда у него будет 10+ слов и процесс будет немного замедляться, то он что-нибудь да и придумает.
>>1509770Как это не получится??? Получится, было бы желание:word_list = [word.strip() for word in (lambda f: (f.read().split(","), f.close()))(open("file.txt"))[0]]
>>1509547Спасибо тебе огромное, твой ответ мне помог, ты самый лучший, анчоус. Коротко и метко, прямо в точку.>>1509563>>1509578Вам тоже огромное спасибо что потрудились в моём говнокоде покопаться.
>>1502633 (OP)Челы, помогите, чувствую себя данномНужно накалякать скриптЕсть словарь формата А1: {а}Б1: {б}Нужно, чтобы изначально скрипт спрашивал меня значение (А1 или Б1), и возвращал соответствующее значение а или бБез конструкции ifЯ бля голову сломалПодскажите, куда копать
>>1509547а что делать? сперва переводить файл в память компьютера, а потом уже начинать цикл по отсеиванию пунктации? readlines() ничем мне не поможет?
>>1509906Сделал похожим образомПри вводе А он мне в ответ кидает пустой выводМб это потому, что у тебя немного не такое соответствиеУ меня фигурные скобки, одному значению соответствует список, а у тебя одному значению соответствует одно значениеНо это уже шаг вперёд, перестало ругаться и писать сомнительные выводыСпасибо!
>>1509925>input = inputтак делать низя, ты переопределяешь стандартные именаprint(имясловаря.get('input') <- тут апострофы лишние
Нужно удалить из строки несколько подстрок. В лоб решение:for substr in substr_list: s = s.replace(substr, '')Можно придумать что-нибудь оптимальнее по времени(очевидно что можно, вопрос скорее в том можно ли существующими средствами это сделать без написания велосипедов)?
>>1509976Спасибо тебе, добрый человек! Заработало. Хотя выдает результат в фигурных скобках, но это мелочиДавай ещё раз. Кусочек кода:abc = input('xxxxxx: ')print(имясловаря.get(abc))Получается, что первой строкой мы объявляем переменную abc, которую введем руками, а второй мы применяем делаем get ту самую переменную abc, и выводим результат принтом. Как-то так?В нашем случае мы можем ввести только А1 или Б1 из-за специфики метода get?Пара слов о себе: я околосетевой околоинженер (хуй), который решил освоить программирование для своих корыстных целей. Я решил вкатиться в максимально боевых условиях, ставя перед собой практическую задачу и решая её. Насколько это правильно для человека, который не планирует фундаментально связывать свою жизнь с прогерской деятельностью? Все же стоит шлефануть какуй-нибудь базой? Или реализовать практический результат и кайфовать?
>>1510226В abc записывается результат ввода пользователя. get достаёт из словаря значение, которое хранится под ключом abc. Если такого ключа в словаре нет, то он вернёт то, что передано вторым аргументом или None по умолчанию.Без базы вообще никуда, так что сначала изучи её. По мере продвижения листай доки, там много полезного бывает. Ну и не забывай про самый лучший на сегодняшний день инструмент - Гугл.другой-анон
>>1509610Любой язык может быть красивым, ну кроме ебаного js, там уже все, пиздец, пиши пропало. Питон намного красивее крестов, явы и нелепой подтелки явы типа шарпа, но имхо.
>>1509788Тут 105 символов, так что в любом случае по PEP8 придется делать перенос, а это уже 2 строки визуально, так что лучше уж with юзануть.
>>1510003Можно регулярками, но не уверен, что это будет быстрее.Можно вообще так:> s = "".join(s.split(substr))Но возможно будет медленнее, завивисит от длины текста.
>>1510347А все, вижу, у тебя список подстрок.> s = re.sub("|".join(substr_list), ' ', s)Сейчас под рукой нет пистона, но вроде как должно сработать.
>>1510351Ну вообще эти цифры как бы не с потолка упали. В любой IDEшке у тебя при сплит окне все плохо будет.
>>1510357Лично я за 80 символов, но не понимаю почему пепка усерается из-за 80-го символа и настаивает на 79. yapf форматирует по 80 из коробки, а pylint чекает 79. Что за чудо неописуемое...
>>1510351>>1510358Хуйня этот дзен. Этот пеп был принят в 2000 году где-то, когда ещё можно было найти мониторы, работающие в текстовом режиме. Вот вы пионеры смазливые и не знаете, что это такое, а я даже на этом кодил. Мониторы раньше имели текстовый и графический режим, и реально очень часто работали в текстовом. Там был стандарт 80 символов в ширину, причём это нельзя было изменить. Отсюда и идёт. А если совсем в древность лезть, то были первокарты, в которых тоже было по 80 столбцов, оттуда у старых фортранов было ограничение 80 символов на строку. Школота ничего не знает и не понимает, и молится на дзен, на эти сраные 79 символов. А для меня это лютый пиздец, когда меня заставляют жить в 20 веке, который ушёл уже 20 лет назад.Если я поставлю две колонки у себя, у меня и то в каждой будет 100 с копейками. Срал я на этот стандарт. И любой нормальный анон насрёт.
>>1509614В 3.7 реально довольно много чего появилось. Это в 3.8 довольно символично, почти только один оператор. В 3.9 похоже вообще ничего не будет.
Прохожу на степике алгоритмы и мне почему-то дали лицензию на пичарм. Поначалу обрадовался, поставил себе. А там при трех открытых файлах процесс java отжирает гигабайт оперативки.
>>1504619Только пайчарм! Только светлое будущее! Ну можно ещё немного ipython из-под терминала. Вимобляди, сосите бибку!
>>1504642У меня с пипом на лине нет никаких проблем ровно также как и на винде. Какой у тебя дистрибутив?
>>1504954Не обязательно. На селенке есть смысл только делать, если сайт вообще адекватно не отображается и не работает без js, а весь контент генерирится рил тайм динамически. На самом деле таких сайтов не так много и это реально надо постараться сделать такую уебищную структуру. Фактически, если если у сайта есть мобильная версия, либо он построен так, что без скриптов функционал не пропадает, то автоматизировать работу можно с requests или aiohttp.
>>1504793Лучше не понимать классы, чем думать, что понимаешь и пихать их абсолютно везде по поводу и без. Знаю это по собственному горькому опыту. Когда для нескольких классов без общего наследника нужны общие функции, то нормальный человек просто объявит их в отдельном модуле в виде обычных функций, я же буду создавать под них отдельный класс, через метакласс делать его чисто статическим (не давая создать инстанс), все методы в классе оборачивать в декоратор статического метода. Если этого покажется мало, то в метаклассе пропишу, сильвин методы и так статические из коробки для класса без использования декораторов. И вся это дичь, чтобы сделать класс вместо обычного пространства имён - модуля. И вот хер знает кто тут в более выигрышном положении. Ну а вообще не понимать классы, это какой-то пиздец, не понимаю, что там можно не понимать, так что порофлил тоже. К тому же в питоне на один столп ООП меньше, нет инкапсуляции в обывательском понимании, не самом деле есть.
>>1504828В ты уверен, что количество вакансий вырастит? Я так понял, кроме мазилы никто особо не рвётся его поддерживать и дорабатывать, а это означает неминуемую смерть.
>>1505615Мне всегда было проще абстрагироваться от корутин, представляя из отдельными потоками с особыми синтаксисом без надобности вникать в реальную структуру. Но после твоей пусты меня прям всерьёз заинтересовало как устроен aiohttp изнутри, надо бы глянуть сорцы. Спасибо, анонас, за привлечение внимания к проблемам насущным.
>>1510226Небольшое продолжениеМетод d.keys выводит ключи (в нашем примере значения А1, Б1)Дальше abc = input ('xxxxWx')Вопрос: как мне подставить результат метода d.keys вместо W? В текст, что сопровождает инпутИ второй вопрос: метод d.keys() выводит мне ключи, но с фигурными скобками. Есть вариант убрать их?
>>1502633 (OP)Метод split по умолчанию использует один символ (пробел если не задан, или тот, который задан) можно ли как-то задать несколько разных символов?
>>1510548Заработало!!!Но начинает странно себя вести, если нужно вставить постоянную часть? Ну типа если должно вывести сначала константу, а потом те результаты, которые выдает .join(d.keys())
На вход подаются строки типо name X R W, test R и тдКак создать словарь с ключом name и значениями X R W, и так естественно со всемЯ думал думал, но придумать не могу, подсказки смотреть в решении не хочу, ибо сразу увижу все решениеУ меня пока получилось так: https://pastebin.com/3L45hmqnне думаю, что это самое лучшее решение, ибо мне нужно проверять значения по ключу на отдельные буквы типо 'X', 'R' или 'W'Выход:{'helloworld.exe': ['R', 'X'], 'pinglog': ['W', 'R']
>>1510748НеНо я решился на это, для меня это уже больше половины делаИ нашел книгу, искал спецом для питона 3+, хотя с моими задачами мне это вряд ли потребуется
Кулити, подскажите есть библиотека для телеграмм бота для создания форм, не кнопки а формы, по которым будет выполнять какое то действие условно погода в городе.
>>1510748Положил глаз на книгу Федорова "Основы программирования на языке питон", вроде бы как там много внимания уделяется практике, даже программу какую-то пишешь параллельно (хотя это не точно)С высоты своего опыта скажи, нормальный ли выбор? Что бы ты посоветовал?
>>1510840Я не разбираюсь в книгах, поэтому не могу ничего сказать по Федорову. Честно говоря, я даже не помню, по какой книге сам знакомился с языком. Тут вроде все советуют "Укус питона", так что посмотри в его сторону, но, опять же, что-то конкретное не могу подсказать.
Анончики, хочу освоить питончик через череду небольших практических задач, попутно в процессе внимая в нюансы. Сферические мануалы на сотни страниц обо всё сразу зубрить не хочу. Как это лучше организовать? Есть какие-нибудь сайты или подборки базовых задачек? Общая ориентация на геймдев.
Для чего в питоне в 2019 году может понадобиться threading, если есть асинкио? Старые проекты и питон2 не берем.
>>1510395Пожилой говнокодер вкатывает итт. Может ты и стар как мир, но по какой-то причине этим гордишься, но так и не смог усвоить одну простую вещь, стандарты нужны, чтобы у всех код выглядел +/- одинаково и его было удобно читать любому человеку знающему синтаксис языка. Вроде вещь то очевидная, но почему-то не для всех. Могу поспорить, что в твоих проектах куча файлов на 1000к+ строк, и вечно повторяющиеся куски кода то там, то тут, потому что ты срал на всё и всех.
>>1510426Пайчарм прожорливый, но у него нет конкурентов. Имхо.Возможно, если ставить 32 битную версию, то она не так сильно нагибает оперативку раком как 64 битная. Лично у меня 24 Гб оперативы на 3 планках, особо не чувствую дискомпофорта при работе в пайчарме, но вот когда было 16, чувствовалось, что не хватает оперативы, особенно кода блядский хром отжирает 6+ ГБ, а ты не можешь перейти на лису, ибо стал заложником и сучкой корпорации добра.
>>1510748> input('xxxx{}xx'.format(','.join(d.keys())))input(f'xxxx{','.join(d.keys())}xx')Чтобы прям совсем по красоте, звонко и бодро.
>>1511356И да где-то должны быть кавычки двойные, либо во основном теле текста вставки, либо аргументе форматирования.
Поработаю на проекте за код-ревью и "ну и че за хуйню ты тут написал". Сам работаю веб макакой питонистом, но хочу изучить на практике разные штуки, которые в текущий момент не применяю в работе. Пет-прожект в одного не вывезу, потому что быстро заброшу, но хочется поучаствовать в чем-то большом и прекрасном. Че хочу: кафка, сокеты, может, дата стриминг, кошкомальчики и любые другие смузи технологии.
Почему если измерить время выполнения инструкции time.sleep(0.001) и время time.sleep(0.00001) то оно будет одинаково в обоих случаях (~0.001 секунды)? Какого хрена? Я что не могу указывать малые задержки?
>>1511485у тебя компьютер кривойВот у меня:>[GCC 8.3.0] on linux>Type "help", "copyright", "credits" or "license" for more information.> import time> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.000096> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.000078> t1 = time.time(); time.sleep(0.000001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.000098> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.001098> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.001071> t1 = time.time(); time.sleep(0.001); t2 = time.time(); print("{:0.6f}".format(t2 - t1))0.001072 90 микросекунд, но это издержки на вызов функций уже.
>>1511637Это не в time() проблема. Если в цикле 1000 раз вызвать sleep(0.001), а в другом цикле 10000 раз вызвать sleep(0.0001), они типа должны выполниться примерно за одинаковое время, но без всяких таймов видно, что первый цикл выполнился примерно секунду, а второй - примерно за 10 секунд.Так что это sleep выёбывается.
>>1511646А вообще> Also, the suspension time may be longer than requested by an arbitrary amount because of the scheduling of other activity in the system.
Двач, научи меня гуглить!https://stackoverflow.com/questions/1133857/how-accurate-is-pythons-time-sleep
>>1511646Это всё зависит от внутренней реализации sleep.На линуксе сделал контроль по strace, происходит системный вызов select с соответствующим таймаутом. У меня этот вызов занимает под 100 микросекунд (я этот анон >>1511535). В винде какая-то своя реализация. Вообще даже линукс не realtime OS, эти функции и не предназначены для того, чтобы настолько точно откладывать выполнение на микроинтервалы. Они нужны для того, чтобы какие-то большие задержки делать, от десятков миллисекунд до многих секунд, и чтобы высвобождать вычислительные ресурсы при этом для других процессов, чтобы основной процесс именно спал.Во время выполнения много чего ещё может произойти, сам питон или ОС могут заморозить на какое-то время выполнение, какая-нибудь сборка мусора начнётся, или ОС задачу переключит.
Джентельмены!Есть у меня Python-скрипт, моделирующий LTE-канал. И нужно мне по окончании каждой итерации (примерно раз в минуту) отрисовывать график текущей пропускной способности.При этом не просто отрисовывать график, а так, чтобы не блокировать исполнение собственно расчётного кода. И при этом чтобы окошко с графиком реагировало на изменение размеров окна, сворачивание-разворачивание и иже с ним (то бишь, чтобы у него работала очередь сообщений от GUI).Классический способ сделать такое – завести QApplication, встроить туда matplotlib-канвас, вынести исполнение расчётного кода в отдельный QThread, обернуть его в QObject и заставить пересылать данные с помощью сигналов в поток с гуями GUI. Но что-то мне подсказывает, что в 2019 году есть способы попроще.Что присоветуете?
Привет, аноны. Я написал простенькую программку на питоне.Вот ссыль на неё https://yadi.sk/d/mMrpBr0rVXzXAgА вот её кодprint('Подсчет символов и слов в тексте\n')text = []text = input("Введите ваш текст:\n")print("Символов в тексте:", len(text))text = text.split()print("Слов в тексте:", len(text))input()Беда в том, что когда код был только в виде .py скрипта, всё шикарно работало, но когда я скомпилировал в exe, при вводе тексте (даже без нажатия enter) прога просто вылетает.Подскажите, в чем может быть проблема? Уже голову сломал
>>1511702Сейчас заметил, что такая проблема ТОЛЬКО, если вставлять текст через пикрил. Че с этим делать? Вылетает теперь даже в скрипте. При том, что если писать врчную, то всё в порядке
>>1511702> скомпилировалВ этом и проблема, ещё ни разу не видел некривых компиляторов питона. Либо юзай интерпретатор, либо не юзай питон.
Привет, есть команда из двух человек, один я - на бэкенде (flask), другой фронт. В команде я ещё не работал, поэтому нужны советы. Фронтенду же нужно чтоб работал сервер, то-есть нужно разрабатывать проект уже на хостинге, или обычно просто фронт устанавливает python и тд. и запускает сервак для разработки?
>>1511709Я через командную строку всё делалpyinstaller -F -i "путь на иконку абсолютный" "имя скрипта"
>>1511719фекалиющас бы на питоне фронтом заниматься. Для этого есть гипертекстовая разметка и каскадные таблицы
>>1511715Пишете спецификацию с картинками, фронтенд делает статические html, css, скрипты и отдает тебе, ты нарезаешь их на шаблоны.
>>1511715Да, локальный сервак для разработки ставится.> нужно разрабатывать проект уже на хостингеТак никто не делает. Хоть один сломает что-то - у всех работа ступорится.
>>1511729Есть ещё другой подход (SPA). Сервер предоставляет API, а при обращении к не-апишным адресам возвращает один и тот же шаблон html-страницы, который уже на клиенте заполняется нужным содержимым через скрипты, глядящие на текущий адрес страницы и обращающиеся к апи.
Аноны, прочитал a byte of python, теперь решаю задачи с кодварс,пока на 6 kyu. Меня беспокоит,что пока решения задач сводятся к тому,что по факту это if else с небольшими наворотами. В питоне не зря же ООП есть, и поэтому мне дальше решать задачки ,и с большей сложностью придут другие приемы для решения, или может кто посоветовать источники про ооп в питоне(когда его стоит юзать и т.д). Буду благодарен.
Анончики, помогите с задачей. Начав тренировки, спортсмен в первый день пробежал A км. Каждый день онувеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путьпробежит спорсмен за B дней. https://ideone.com/iTJfN2
Как считать неизвестное количество строк? Типо если известно количество легко можно через циклы, но как создать такой цикл если количество неизвестно? Помогите
>>1511935Я пытался, но это естественно не работает.. А то что на пикрил3 в оп посте я пока не понимаю
>>1512025> x = float(input())Не нужно ничего с клавиатуры вводить, у тебя значение x должно получаться в цикле.> y = float()Эта строка лишняя> for i in range(-3,2,0.5):Ты от -3 делаешь, а по условию нужно от -2, и с шагом 0.3, а не 0.5. Но в любом случае это не заработает, потому что нельзя нецелые числа в range() передавать. Сделай через while.Короче:x = -2while x <= 2:__print((x+1) / (x*x))__x += 0.3
>>1512025У тебя случайный набор символов, неосмысленный. Зря тебе другой анон помогает.Подумай, что должен делать твой код. Объясни смысл первых двух строк, объясни смысл переменной i. Так чему-нибудь и научишься.Содержательная, не позорная, ошибка в том, что range() работает только с целыми числами, ты не можешь использовать float. Надо с циклом while, как тебе анон посоветовал.
>>1512025>>1512100Ты походу из СИ или Паскаля перекатился? В питоне не надо объявлять типы переменных, это можно и нужно делать но в других случаях. Строчка y = float() не имеет никакого смысла вообще, как тебе уже написали. Стандартный питоновский range не может с float шагом, если уж очень нужно, то можно поставить numpy либу, но в твоем случае достаточно просто все значения сгенерить в 10 раз больше, а потом разделить все это добро на 10, а строчка range(-3,2)[0.5] также бесмысленна, ты пытаешься у генератора взять значение по индекусу 0.5, во-первых, индексы целочисленные всегда, во-вторых у генератора коим и является range нельзя взять что-то по индексу, если хочешь вкатится в питон, то почитай про итераторы и генераторы, на собесах это частый вопрос.
>>1512130Да так и есть перекатился, из-за этого очень сильно туплю. Вот как раз читаю про range. Я просто не до конца понял что и как. Циклы на питоне посложнее будут. Спасибо, анончик. Постараюсь в след раз не тупить. Пойду еще литературу и наверну
>>1512134Ты не прав. В питоне циклы намного проше чем в СИ из-за того, что все объеты, кстати классы это тоже объекты, хранятся по ссылкам, тебе вообще никогда не нужно перебирать что-то по индексам.Если нужно достать элемент в итерируемом объекте:> for element in you_itter_object: ...Если нужно достать индекс и сам элемент:> for index, element in enumerate(you_itter_object): ...Если по какой-то причине тебе нужен только индекс:> for index, _ in enumerate(you_itter_object): ...Это гораздо красивее и проще чем в том же СИ, где ты получаешь индексы и должен по ним ссылаться на элементы с бесконечными кастами явными и неявными.
Сап. Подскажите, плс. Вот по книге нужно проект сделать - я указываю нужную инфу, а программа посылает запрос в гугл, получает страницу и открывает 5 вкладок с первыми ссылками. Проблема в парсинге html. Задаю такой шаблон - elements = soup.select('#search #rso div .rc .r a'), и возвращается ко мне пустота.Заметил такие странности:1) Гугл каждый раз меняет название класса на случайный2) С помощью requests скачал страницу, записал в файл, делаю поиск по файлу, а вышеуказанные теги ни разу не встречаются в файле. Как быть, что я делаю не так? Спасибо. Думал, что это из-за первом причины, перешел на яндекс, так он меня забанил после третьего запуска программы.
>>15121661) Все что после return'а идет уже не выполняется, потому что return возвращает значение функции.2) Break заканчивает цикл, у тебя в первом условии нет цикла.3) Вместо type(instance) == 'str_type_name' лучше использовать isinstance(instance, type_name), который возвращает True либо False.4) Твой проверка в первом if особо не имеет никакого смысла, поскольку arr может быть типа tuple, в этом случае будет ошибка, но это зависит от логики конечно.5) Как уже писал выше, хватит использовать for index in range(len(itter)), делайте так for index, _ in enumerate(itter) с точки зрения производительности это лучше, да и с точки зрения читабельности тоже, хотя второе уже субъективная вещь.
>>1512173Это я уже не говорю об ошибке, которая у тебя будет из-за того, что ты инкрементируешь индекс внутри цикла.
>>1512187Какой-то очень странный синтаксис парсинга, насколько я помню у мыла какой-то свой типа объекта, но скорее всего наследуется от dict. Давно уже его не использовал, но там есть метод что-то типа findAll. Тебе наверное нужно найти все классы rc, для каждого из них найти класс r, и взять из них attached. Возможно имеет смысл искать классы r сразу.
>>1512158Я бы наверное так сделал, если вообще правильно понял логику твоего скрипта.https://ideone.com/dTI1Eo
>>1512194В том то и дело, что сохранив страницу в файл .html я открываю его и вижу, что отсутствуют #search! #rso, .rc .r a. Просто не таких элементов в файле.
>>1512196Да, лаконичнее выглядит. Только мне еще надо одну проверку припилить. Если под условие не попадает оно должно тоже -1 возвращать, а возвращает None. Вот думаю как это реализовать
>>1512205В конце функции допиши return -1, если в цикл не прервется с возвратом из функции, то значит условие не выполнилось.
Извините, я немного дебил второй день изучения, но что означает ошибка EOFError: EOF when reading a line? Нигде нет понятного объяснения.
>>1512199Но тем не менее ссылки там ведь есть, и их можно выдрать регулярками, возможно это проблема мыла, которое не может распарсить по нормальному страницу.
Рейт. Сделал функцию перевода из постфиксной записи в инфиксную. Поддерживает степени, умножение/деление, сложение/вычитание. И расставляет скобочки.https://pastebin.com/jYSmGQeYКодил только в матлабе. Вкатился на вчера, так что...
Нюфани вкатывальщики, кто хочет пообщаться на тему питона и вката в погромач приглашаю в телегу @sad_but_tru3 Опыта у меня немного. Можем вместе учиться, помогать друг другу или следить за успехами. Так же пилить какойто нубопроект. Если кто знает конфы по питону можете добавить.
>>1512251У меня первая вариация была похожей, только больше в два раза и совершенно нечитаемой, но я решил избавиться от пагубной привычки и научиться раскладывать всё по полочкам. Пока ещё не разобрался во всех фичах питона, так что похожее ещё не скоро смогу писать.
Сап, аноунсы. набросал вчера вечером простенький счетчик слов и символов. С первым текстом всё отлично работало и сошлось (сверял с сайтом каким-то в гугле), но когда попробовал второй текст, не сошлись значения. Не совсем догоняю, почему. Есть варианты на этот счет?
>>1512225Зачем тебе класс?У тебя же нет состояния, у тебя постфиксное выражение на входе и инфиксное на выходе. Если не хочешь засирать модуль, можешь локально определять функции, в Python вроде можно так делать.
>>1512343Хотел чтоб было по полочкам всё, пытаюсь понять как вообще следует решать подобные задачи. Можно было и без классов делать, так и делал изначально. Но решил сделать по другому, сначала описать алгоритм в общем виде, а потом отдельно расписывать методы. Класс сделал чтоб вместо a = change(a) написать change(a). В сишке через указатели такое можно было провернуть, а как в питоне это реализовать пока не знаю.Обычно я стараюсь использовать минимум методов как на пиках, но думаю, что это не совсем правильно и спустя какое-то время я перестаю понимать как это вообще работает. Но главное что работает и факапы редко случаются, плюс стараюсь больше комментить и оставлять подсказки самому себе.В общем, не знаю как лучше реализовывать алгоритмы и зачем нужны эти классы. Решил использовать, почему бы и нет.
>>1512412В питоне все объекты передаются по ссылке. То есть если у тебя mutable объект, то вызвавfunc(a)ты даёшь функции возможность что угодно сделать с объектом. Считай, что указатель передаёшь.
А почему собственно в питоне цифры immutable? Когда мы совершаем математические операции над цифрами разве интерпретатор не создает и копирует дохуялион раз PyObject-ы из С? Это ж нерационально
>>1512460А ты скажи, почему с моего счетчика слов проиграл. И вообще, я помощи попросил, чтоб доработать его
>>1512444Свои плюсы у такого подхода есть. Например без подобного механизма ты банально не сможешь реализовать словари, чтобы их ключами могли быть разные типы данных. И чтобы они не ломались от неосторожного движения.На самом деле конечно было бы полезно иметь какие-то специальные типы данных, "регистры", которые бы были прямо реализованы. Пусть с какими-нибудь ограничениями на них, скажем чтобы нельзя было эти регистры в виде ключей словарей использовать и т.п.
Аноны, как совместить single linked list и circular linked list? Это мне нужно два класса прописывать для элементов в single и circular и два класса для самих же списков и потом как-то их связывать?
>>1512517Зачем? Можно в single linked list в самой последней ноде сделать следующую ноду равной самой первой.Только нужно быть осторожнее с функциями вроде вычисления длины.
>>1512518дается single linked list рандомной длины и circular linked list рандомной длины, а если сделать то, что ты написал, получится circular я так понимаю если следующей после последней первую сделать
>>1512520Последний элемент должен ссылаться на элемент с индексом =len(singlelist)-len(circularlist)Класс один по идее. На кодварсе похожая задача есть.
Вечер в хату питонисты. Вопрос больше относится наверное больше к .NET девелоперам, но хотелось бы реализовать через питон (если вообще возможно). Вообщем есть такая програмулина, PDF Creator, которая лепит кучу xls, docx и некоторые другие форматы в одну большую пдфку. Собственно задача:У меня в папке лежит несколько (много, до нескольких сотен документов xls и немного docx)Названия документов называется по определенному порядку: а именно: ОС-01-01, за ней идет ЛС-01-01-01, затем ЛС-01-01-02, потом допустим ОС-02-01, ЛС-02-01-01, ЛС-02-01-02, я думаю, что вы уловили суть. Вообщем я переношу в окно PDF Creator документы в перечисленном выше порядке, затем программа конверитрует и соединяет всю эту пачку документов в одну большую пдф. Вопрос вот в чем, когда документов реально много, отсортировать становится довольно трудозатратной задачей, времени и внимания много, а шанс ошибки повышается с количеством документов. Основной вопрос: какими методами я могу отсортировать файлы в нужном порядке а затем передать их в PDF Creator. Я просто не понимаю как это можно реализовать. Я не прошу сам алгоритм сортировки, а именно как передать файлы с "окна" моей программы-сортирвщика, в программу PDF Creator написанной на древней VB 6 (это даже не .NET), вообщем накидайте идей, названий каких-то библиотек возможно. Сам в программировании не силен, но хотя бы пытаться реализовать надо. Буду рад любым здравым идеям.
Как можно из конструктора класса вместо объекта, в конструкторе которого мы находимся, вернуть другой объект? Вот код, думаю, примерно понятно что я хочу сделать.
>>1512711Пока что я просто сделал отдельную функцию, которая создает объект класса HeroCreator и кладет его в переменную test. Затем в переменную тест кладется поле myself, а затем переменная test возвращается.
>>1512724Такие инструменты делали, даже в официальных релизах что-то есть:https://docs.python.org/2/library/2to3.htmlНо идеально ты не сделаешь в любом случае. Автоматом можно какие-то базовые вещи сделать, там print, xrange, юникод-строки и т.п., в некоторых случаях же тебе надо в логику кода вникать, чтобы нормально перенести. И не всегда возможно без большого гемора.Поэтому так долго на третий питон и перекатывались.
>>1512711Конструктор не должен ничего возвращать. Ты можешь перегрузить метод __call__, который вызывается путём добавление двух скобок к инстансу класса, как у функции.
Так аноны нужно на джанге реализовать вот такой опросник, как это лучше сделать? Еще нужно чтобы человек мог голосовать только 1 раз.
>>1513939А да и можете объяснить как мне реализовать эти полоски, чтобы они динамически заполнялись, я так понимаю нужен жс, но не знаю в какую сторону дальше копать.
Надо книжку "Дискретная математика для программистов" читать, если я мечу в веб-разработку? Случаем не забуду её нахуй за ненадобностью через годик, а мб и несколько месяцев?
Анонасы, такой вопросУчу пистон, по мимо него заю html css. Если выучу джангу можно проситься на бэкэнд галеру с таким стеком? Если я незнаю фронтенд и js конкретно, это проблема?
Всем привет! Написал бота для канала в телеге который парсит группы в вк и сам же постит в телегу автоматически(можно выставлять таймер постов, сортировка по лайкам и репостам в вк). Вот думаю что еще в него можно запилить? ваши советы) канал телеги @pics_texts
>>1513960может вариант не оч, но без особых раздумий посоветую для каждого варианта ответа завести по 2 дива в одной строке, ну и навесь на левый какой-нить css класс, который ширину дива берёт из переменной отведённой под соответствующий процент голосов
Занимался по 4му изданию Лутца. Решил попробовать Укус Питона. Ну, второе мне нравится намного больше Всё четенько, без воды. Если че-то непонятно, взял и перечитал сразу суть