Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы: https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации https://dumpz.org/ - можно постить листинги, не требует регистрации https://pastebin.com/ - для листингов, регистрация не обязательна https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
Вопросы-ответы: — А стоит ли читать Лутца, том номер N? Мнения в треде разделены. Кто-то за (очень неплохая база даётся), кто-то против (слишком много воды и объём книг убивает всё рвение). В общем — решать тебе, книга вредна не будет, но ты можешь её просто не дочитать и забросить.
— Стоит ли читать %книга_нейм%, если там питон версии 2.х? Нет, не стоит. 100% есть более актуальная книга, для пистона 3.х
— А что ещё можно читать? Питон сам по себе очень хорошо задокументирован и для уровня начинающих, и для продвинутого. Смотри официальную документацию. Можно начать вот с этого https://docs.python.org/3/tutorial/introduction.html
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом? Очень годный ролик на американском языке про многопоточность и асинхронность https://www.youtube.com/watch?v=MCs5OvhV9S4
— А как учить джангу? Нахожу только книги по джанге 1.х У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать и для версий <2, это не проблема, т.к. принципы остаются теми же. Для переката на 2.х хватит changelog`a или тех же самых доков/статей. Начни изучать с разбора учебного приложения с голосовалкой из официальной документации.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Как можно без лишней возни ускорить программу на питоне 1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь. 2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником. Исходник: https://dumpz.org/bASGKD8cCFDf
Поясните, можно ли во вложенном коде делать мультистроки которые не пидорасят код и аутпут? Т.е. я хочу чтобы код выглядел как на пик 1, а аутпут как на пик 2.
>>2037805 Туториал это по факту просто перечисление синтаксиса, структур, команд, встроенных функций с очень маленьким количеством примеров и почти полным пересечением этих примеров или примеров как это использовать. По идее если у тебя есть концепты в голове, т.е. ты моешь кодить в башке текстом(если эта хуйня то делаем это пока условие == Заебись), то тебе хватит исключительно доков, читать какую-то водяную литературу было бы проебом времени, ведь тебе просто надо узнать как называется цикл в питоне, как называется какой-нибудь метод и как ставить кавычки. Если ты вкатываешься, то книжки тебя за ручку ведут и объясняют что делает какой-то код, где его можно использовать, так же в книжках обычно и пишут про алгоритмы и пытаются донести общий майндсет так сказать. Стоит отметить, что если ты умный перчик, вот прям блистаешь нахуй во все стороны - то идеальным вариантом для тебя будут доки+тяжелые теоретические книги. Если ты тупой как говно, то лучше будет читать уже готовые обучающие книжки. Я не говорю что Питон для детей плохая книга и все кто ее читают долбари, нет, наоборот, но после какого-то базового кружка по синтаксису, когда ты уже научишься делать итератор и лист компрехеншен у тебя возникнет вопрос ЧТО ДАЛЬШЕ ТО БЛЯДЬ Я ВСЕ ЗНАЮ НАХУЙ. Вот тогда уже надо либо искать хорошие учебные пособия, либо забить хуй на учебники и читать просто информатику+документацию. В универе если учился - так обычно и происходит, какие-нибудь инженерные дисциплины на старте имеют учебник, а дальше уже полностью переходят в лекции+методички.
>>2037831 У тебя какое-то ожидание, что взяв пособие для изучения "языка программирования", ты там найдёшь заодно пособие по "изучению программированию".
Это как пытаться найти в курсе "английский для экономистов" изложение основ макроэкономики.
Книги вроде Лутца, "укуса", Саммерфильда и другое, они тоже про язык программирования Питон, а не про программирование вообще.
Туториал хорош именно как туториал по языку. Не нужны другие курсы, когда есть официальный бесплатный.
Но для освоения программирования надо намного больше времени, чем для освоения языка программирования. А ИТ это не только программирование, и ещё требуется глубокий экскурс в кучу направлений здесь.
Вот нельзя научиться программированию с нуля за год. Без серьёзного бэкграунда в смежных областях, конечно. Это невозможно.
>>2038049 >тот петух Иди уже к корешам пиво пить и сёмки на падике сплёвывать. Оставь ИТ для ботанов, не пацанское дело, в натуре, хули ты с этими чмошниками общаешься и пытаешься в их круги взезть.
>>2037831 Я перекатывальщик из мухосранских админов эникеев с двумя бумажками об образовании. Да я именно книги типа всяких марков луцев имел ввиду. А не Кнутов. Второго бы не стал читать ибо слишком туп для пониманя этого
Начитался. Что если и не получиться вкатиться то в админстве пайтон все равно приветствуется. Так что я ничего не теряю Решил пару тройку хард задач на литкоде (не на пайтоне). Так себе достижение но как прописка что я не залетный мимосварщик Книги по алгоритмам наоборот уважаю
Привет, питонисты. Нужно быстро вкатится в ваш инструмент + NumPy для обработки данных в облаке. Есть хорошие и конденсированные текстовые гайды? Сам фулстек мидл, потому предпочел бы что-то не из разряда "for Beginners".
Недавно поставил Pycharm и сейчас хочу запилить приложуху с гуи, но не знаю что для этого использовать. Какие библиотеки лучше? М.б. есть какое-то расширение на pycharm в виде графического редактора интерфейса?
>>2039116 Просто я уже 150 страниц прочитал. В начале всё было очень хорошо, но честно говоря очень много времени уделяется массивам, и какая же это скучная тема. Ну не прям скучная, но мне хотелось поскорее познакомится с циклами и прочим, но даже их объясняют часто на примере массивов блдаж
>>2038131 Ну как тебе сказать. Книги читать очень полезно я правда сам мало читаю. Но книги нужны хорошие, и чтобы по уровню и нужные тебе в данный момент.
Когда ты учишься по принципу "пилю что-то, гуглю непонятное", у тебя масса дыр в понимании. Тебе просто не придёт в голову гуглить многие вещи и читать что-то вроде как ненужное.
А книга, либо же курс лекций, тебя этим кормит. Ты так узнаёшь много нового, а не придумываешь сам.
Просто надо материал себе правильный подобрать и вот с ним работать.
Естественно читать книги и ничего не делать мало полезно.
Аноны, подскажите, молю, уже весь изъебался Нужно положить на API веб-сервиса, который стоит на centos внутреннем сервере, сообщение Кладу с помощью requests Вот код запроса response = requests.request("PUT", url="https://xx.x.xx.xx:xxxx/message/xxxx", headers={"Authorization": "Basic VXNlcjE6MQ==", "Content-Type": "application/xml"}, data=message, verify=False) С винды работает отлично, а с убунту выдает ошибку:
Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 662, in urlopen self._prepare_proxy(conn) File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 948, in _prepare_proxy conn.connect() File "/usr/local/lib/python3.8/dist-packages/urllib3/connection.py", line 308, in connect self._tunnel() File "/usr/lib/python3.8/http/client.py", line 904, in _tunnel raise OSError("Tunnel connection failed: %d %s" % (code, OSError: Tunnel connection failed: 403 Forbidden
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 439, in send resp = conn.urlopen( File "/usr/local/lib/python3.8/dist-packages/urllib3/connectionpool.py", line 719, in urlopen retries = retries.increment( File "/usr/local/lib/python3.8/dist-packages/urllib3/util/retry.py", line 436, in increment raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='xx.x.xx.xx', port=xxxx): Max retries exceeded with url: /message/xxxx (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "111.py", line 5, in <module> response = requests.request("PUT", url="https://xx.x.xx.xx:xxxx/message/xxxxx", headers={"Authorization": "Basic VXNlcjE6MQ==", "Content-Type": "application/xml"}, data=message, verify=False) File "/usr/local/lib/python3.8/dist-packages/requests/api.py", line 61, in request return session.request(method=method, url=url, kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 542, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 655, in send
r = adapter.send(request, kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 510, in send raise ProxyError(e, request=request) requests.exceptions.ProxyError: HTTPSConnectionPool(host='xx.x.xx.xx', port=xxxx): Max retries exceeded with url: /message/xxxxx (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 403 Forbidden'))) Телнет по порту работает, закидывал с этого сервера яндекс танком нагрузку, тоже все норм Фйерволл не настроен, версия requests одинаковая C чем это может быть связано? куда глядеть?
Кто-нибудь может объяснить как с rutracker.org получить Cookie через requests? В заголовках ответа нет параметра Set-Cookie bb_session=0-12856866-; expires=Tue, 20-May-2031 22:55:57 GMT; Max-Age=315360000; path=/forum/; domain=.rutracker.org; HttpOnly
>>2039356 в питоне вроде массивы называются списками и списками списков? >>2039132 а что там с циклами знакомится? циклы очень просты, идет перебор и всё.
>>2037756 Хороший курс для новичков (сам прошёл полностью). Дальше советую пройти курс от egoroff_channel. Сейчас сижу и прохожу его. В нём уже больше информации и вся инфа даётся в ролике, что немного неудобно, но простительно. Ещё некоторые видите доступны только по платной подписке, но задачи ты можешь решать все бесплатно
>>2039356 Нет, там Lists, но это вроде как массив на русском называется? По крайней мере я смотрел какой-то урок по основам программирования где массивы объясняли на пайтоне и там этим словом обозвали именно Lists >>2039500 > а что там с циклами знакомится? циклы очень просты, идет перебор и всё. Ну вот просто интересно мне это было, я еще не знаю точно как это всё работает, пытался написать алгоритм разложения числа на простые множители, но ничего не получилось
Single linked list, список, когда нельзя прыгнуть в середину, нужно от начала шагать по одному, можно добавлять в начало че нибудь, да и в середину можно.
Array, массив, это когда просто все просто валяется, настолько что двухмерный от четырехмерного ничем не отличается, и добавлять ничего нельзя.
ArrayList, Vector, ну типа массив короче, это массив указателей, можно добавлять в конец, в питоне это. Можешь называть массив, можешь список, никак это не называется.
Поздравьте, я наконец-то написал алгоритм разложения числа на простые множители, еще как только пайтон начал учить хотелось сделать такую штуку, но не мог додуматься как, поэтому пока учился периодически пытался сделать такой алгоритм, но всегда фейлил, а сейчас получилось
>>2039928 Разве можно как-то избежать этого? Если только заранее составить список простых чисел и гонять по ним чтобы не перебирать все варианты var + 1
>>2039945 Корень исходного числа? Что-то я не могу понять что это даст. Типа ограничить так числа для var? Допустим если число 100, то найти его корень - 10, и дальше этого значения не проверять?
Расскажите что вы делаете на питоне (желательно что-то с использованием стандартных библиотек). Просто интересно чем люди занимаются просто для себя когда освоят язык, не только ведь вы работаете/фрилансите
>>2039991 Смотри, если ты просто проверяешь число на простоту, а не разлагаешь его, то тебе надо проверять до корня. Дальше нет смысла.
Если ты разлагаешь на простые множетели, то имеет смысл пересчитывать корень, как только ты меняешь number.
Можно и без корня, немного оптимизировать. В питоне есть функция divmod(number, value). Она тебе возвращает пару, результат целочисленного деления и остаток, то есть divmod(203, 10) = (20, 3) если у тебя результат деления меньше, чем делитель, то значит ты уже прошёл корень и можешь прерывать цикл.
>>2040117 Проверил, divmod может быть не самый лучший вариант, дорогая операция, раз в пять дороже проверки остатка на деление. Лучше один раз корень посчитать, чем divmod вызывать.
>>2040282 >PDF-ка "A Byte of Python" Спустя 30 страниц от начала, это не считая оглавления, они дошли всё-таки до первой программы - Hello world! При том, что там всего 160 страниц.
А народ на Лутца почки катят, что там вода сплошная.
>>2040309 > Спустя 30 страниц от начала, это не считая оглавления, они дошли всё-таки до первой программы - Hello world! При том, что там всего 160 страниц. Помню начинал читать этот укус пистона, в итоге бросил, и правда сильно на любителя книжка, не понимаю почему про нее все говорят
>>2040282 >PDF-ка "A Byte of Python" Короче я (>>2040309) решил полистать этот "укус питона", реально бесполезная хуета.
1) чудовищно много воды, объясняют как детям, только примитив, при этом умудряются эти вещи объяснять так, что если не знаешь, то адекватно не поймёшь.
2) порядок изложения копирует официальный туториал, но примитивно
3) есть шиза. Сначала что-то толкают из основ классов и наследования, без углубления в детали, необходимые для полноценного понимания, потом бац, и глава "Метаклассы". А это очень сложная продвинутая тема, в которой умеют плавать далеко не все практикующие разработчики, потому что это такие дебри, которые актуальны для создателей фреймворков и требуют очень хорошего понимания питона.
4) никакого практического тренинга.
Вывод: полный отстой и мусор, не стоит вообще на это смотреть. На самом деле вот официальный туториал не хуже.
Потому что денег занесли. Она вообще тупо беспонтовая, просто успела появиться, когда пистон пошел к успеху, а книг не было вообще. Их и сейчас нет, а тогда так тем более
Да, чот посмотрел сейчас "Питон для детей" 2019 года - даже он поинтереснее будет. Там в середине книги уже какие-то оконные интерфейсы для Винды пилят.
Лёгкие книги “Learn X in Y minutes - Python 3” - Ультрагоднота. Прочтите перед тем как начать читать книжки ниже. Подойдет как новичкам, так и старичкам и гуру которым нужно вспомнить синтаксис.
“Укус Питона” – “A Byte of Python” - Ультрагоднота. Эта книга используется даже в НАСА!
“Think Python: How to Think Like a Computer Scientist” - Ультрагоднота. Эта книга научить думать Вас как программист!
“Intermediate Python” - Читать после A byte of Python или Think Python
>>2040456 Всё сильно от бэкграунда зависит. С разным опытом нужны разные книги.
Тому, кто много лет программировал на C/C++/Java, нужны одни книги. А тому, кто вообще ноль в программировании и ИТ, тому другие книги и стратегия обучения вообще.
Мне сложно что-то рекомендовать тем, у кого нулевой уровень. Если опыт не нулевой, то вот три известные книжки, все есть на русском:
1) Fluent Python = "Питон к вершинам мастерства". В предисловии сказано, что для тех, кто уже как-то может на питоне, и хочет улучшить скилл. Воды особо нет, но мне кажется, больше программировать надо уметь, чтобы некоторые вещи понимать, а у питона достаточно за пару дней проглядеть базовый синтаксис.
2) Марк Саммервильд "изучаем Питон 3", как-то так называется. 2009 год. Очень годная книга, если ты уже умеешь прилично программировать на каком-нибудь другом языке, и теперь хочешь изучить питон.
3) Intermediate Python. Для тех, кто более-менее может программировать на питоне, делает лабы на нём. Книга про выжимки специфичных конструкций питона, не свойственных другим языкам.
В общем есть лаба на питоне, где нужно на из обучающей выборки нужно найти остаток деления на 4 целого двухбайтного числа, лаба в колаборатори, 1 курс, преподу похуй. Объясните мне пожалуйста что и как сделать правильнее? Сразу формировать выборку с учетом условия, или уже после формирования выборки искать в ней остаток?
>>2040514 >Всё сильно от бэкграунда зависит. С разным опытом нужны разные книги. Он прав, знавал одного вкатывальщика, что даже винду ни разу не устанавливал, не говоря про линуксы лол. Это конечно же не значит что такие люди безперспективны, всё в их руках. Учить питону стало модно, курсы и "учителя" на каждом шагу. Может сейчас в шараги питон завезли ? Я сам вкат-перекат и не мне особо умничать, но когда учился были паскали, си и ассемблеры.
>>2037483 (OP) Можно ли соединить два словаря в Питоне, сохранив порядок ключей? Инб4 словари превратить в упорядоченные словари для начала, потом соединить
>>2041214 Что должно происходить в случае, когда порядок ключей в двух словарях отличается?
Посмотрел, сохранение порядка ключей работает с версии 3.7, до этого порядок в принципе мог быть случайным.
Если ты сделаешь new_dict = {old_dict_1, old_dict_2} (вместо % должна быть звезда), то тут как раз будет результат с сохранением порядка, сначала будут ключи из old_dict_1, с сохранением порядка оттуда, но с перезаписанными значениями из old_dict_2, потом ключи из old_dict_2, те, которые не встречались в old_dict_1
Тут кто нибудь делал приложения для андроид, возможно просто для своих нужд? Постоянно сталкиваюсь, что нет именно нужного мне простого функционала в программах, например мне нужен таймер, который будет подавать один сигнал единожды в заданное время, но я просто не нашел такого, везде либо классические будильники и таймеры, либо напоминалки простые.
Сложно вообще переносить питон программу на андроид в виде приложения?
>>2039146 Если я правильно понял вопрос, в .NET современная многопоточность делается через async - await, который под капотом генерирует машину состояний и использует тред пул.
Аноны, в качестве вката можно брать любой учебник из шапки треда? В общем, напишите с какой литературы сами начинали, пожалуйста, а то боюсь нарваться на "сложный" для начинающего учебник.
Не могу понять почему в child классе есть одновременно 3 и 4 строки, хотя вроде тут одной хватило бы. Сначала мы определяем атрибуты необходимые для родительского класса, а потом через super() делаем по моему то же самое
>>2041801 Что ты определяешь, ты принимаешь параметры в конструктор. И передаешь их оригинальному конструктору, чтобы не повторять эти определения у себя.
Добрый день, господа питонисты. Есть небольшой вопрос, т.к. сам я не очень хорошо сведущ в Питоне.
С помощью OpenCV я получаю картинку с вебкамеры. На основе кадра изображения я делаю некоторые объёмные вычисления, в каком то виде накладываю их на кадр и вывожу пользователю. Все это происходит в реальном времени. Проблема в том, что из-за того, что происходят такие объёмные вычисления стрим дико фризится. Захват кадра происходит раз в 5-7 секунд. Никто не в курсе как максимально лёгко это возможно пофиксить? Ну или хотя бы чтобы поток всегда хороший шёл, а вычисления были с опозданием.
Что я пробовал: - Запустить программу на GPU, но CUDA ругается и не хочет ничего делать - Пытался с помощью asyncio асинхронно результаты получать, но тоже успехов в этом не добился - Пытался использовать Numba, но там он был неуместен, т.к. вычисления делаются внутри библиотеки.
В общем сильно прошу не хейтить. Может у вас есть какие-нибудь идеи как ситуацию можно разрешить.
>>2037483 (OP) Блэт, какой именно линтер поставить (и как) чтобы PyCharm автоматически подсвечивал мне ошибки? Стоит PyCharm Pro однако почему-то ничего не срабатывает, у меня раньше была обычная и все показывалось, но сейчас даже присвоения вроде абракадабры на пикриле не показываются как ошибочные
Подскажите, как дальше изучать django?Следуя официальной документации для новичков, я создал простой сайт, в какой последовательности дальше изучать его. Изучать расширенную документацию, например https://docs.djangoproject.com/en/3.2/topics/db/models/.Но это больше похоже на справочник для продвинутых пользователей, так как тут написано все возможное про модели, нужно изучить это это и все применить на практике, и так двигаться дальше?
Сорян за такой вопрос, наверняка тупой, я новичок, но суть вот в чем: У меня не работает наследование шаблонов, делал все по туториалу, но я не знаю в чем проблема, тупо не работает, уже заебался искать, если кто поможет буду благодарен.
Как ещё можно обнулить строку при переводе каретки в начало строки? \t не предлагать
Если без пробелов делать, то получим что-то тип этого: Первый вывод "ожидание ответа" Второй вывод "ответ принят" Смотрится в консоли "ответ принятета"
>>2042642 Ничего не понятно, что и как не работает? Где ты в своих шаблонах рендришь product_detail.html?
Я вижу только строчки template_name = 'product_detail.html' и далее template_name никак не используется и строчку return render(request, 'base.html', {})
Прочитал пикрил (точнее только первую часть где идет изучение питона, а дальше уже идут всякие проекты, типа игры и т.д.). Что читать дальше? Хочу делать проекты из этой книги, но параллельно еще и продолжать что-то более продвинутое читать
Чуваки, подскажите. Пишу парсер конфига. Сейчас забираются некоторые данные и складываются в словарь {'server_name': name, 'port': 80, 'ip_address': 10.111.22.45.} Но если определенной строки нет в конфиге, скажем ip_address, то парсер выдаёт ошибку attributeerror 'nonetype' object has no attribute 'group'. Можно как-нибудь её скипнуть или обойти?
>>2043681 Тебе нужно настроить студию так, чтобы она подхватывала нужный питон с нужным окружением. Это несложно делается, куча мануалов есть по этому поводу.
Просто настройки студии, ничего дополнительно ставить не надо.
>>2043307 Я пробовал как-то укус питона читать, вообще не понравилось. Эта как мне кажется намного лучше, хотя я уже писал выше об этом, меня работа со списками немного раздражала. Книга делится на две части, в первой рассказывают о питоне и есть практика в каждой главе, а во второй части ты делаешь несколько проектов, игрушку на pygame, и еще какие-то веб проекты с джанго
>>2044225 Довольно интересная книга. Для новичка не подойдёт, но если уже с питоном знаком, можешь узнать кое-что новое. Есть, конечно, и устаревшие вещи, например про асинхронность, хотя может это в каком-то там издании пофиксили, но если не читать страницу за страницей, а только то, что тебе самому нужно - выбор хороший
>>2044291 Это второе издание, оно вроде даже этого года, а первое было в 2015. Может и пофиксили всё. С питоном уже знаком более менее. Значит ты говоришь страницу за страницей лучше не читать, а выбирать конкретные темы? >>2044262 Нет
В общем не нашел я ее на торрентах почему-то, так что наверное придется какую нибудь другую книжку выбирать
>>2044302 >Значит ты говоришь страницу за страницей лучше не читать, а выбирать конкретные темы? Не очень правильный подход, ты дыры оставляешь, а эффективность обучения по книге резко теряется. С таким же успехом ты можешь просто читать отдельные страницы документации или примеры на стековерфлоу.
Что-то пропускать можно, когда заведомо ненужные тебе темы, но осторожно. Когда ты что-то пропускаешь и ленишься, ты сам у себя крадёшь. Чем больше ты и разбираешься, тем выше у тебя скилл. Ты просто разбираясь со сложными ненужными вещами намного лучше начинаешь понимать более простые и логику много чего ещё.
Откровенное легаси да, другая история. Наверное стоит пропустить, чтобы себя не сбивать просто. Пожалуй только про asyncio там легаси явное, это 18-я глава и в меньшей степини 16-я, которая подготовка для 18-й главы.
>>2044320 > Что тебе мешает скачать её не с торрентов? Эм, вроде после всех этих блоуировок только торенты и остались, я не слшыал о каком либо сайте с книгами, который бы работал через впн у нас (да, флибуста есть, но там английской технической литратуры по моему мало) >>2044334 Так зачем мне протухшая книга 15 года? Первое издание я естественно находил, но вот второе не могу найти
>>2044331 > Не очень правильный подход, ты дыры оставляешь, а эффективность обучения по книге резко теряется. С таким же успехом ты можешь просто читать отдельные страницы документации или примеры на стековерфлоу.
Но... ведь.. > но если не читать страницу за страницей, а только то, что тебе самому нужно - выбор хороший
В общем я тебя понял, буду пропускать аккуратно главы
>>2044346 >>2044362 На сайте же пишет Released November 2021, на амазоне вообще декабрь. А спиздят так вообще уже в 2022, так что бери первое издание и не выебывайся, ну местами устарело чуток.
Анонче, помоги, не знаю, как подступиться к задаче. Есть одна консольная программа. Я ее пишу по работе для своих коллег, которые затем запускают ее локально на своих компах. В программу я иногда вношу обновления, и коллегам надо бы обновлять сорцы через git pull. Но беда в том, что коллеги - не разработчики, и рефлекса обновлять репозиторий у них нет. Как бы мне настроить программу так, чтобы, запускаясь локально, она проверяла, есть ли в репе гитлаба отличия от локалки? И если нет, то запускалась бы, а если есть - то гнала бы пользователя обновлять репу. Я думал о чем таком: в мастер класть текстовый файл с номером версии. При запуске программа смотрит на этот файл и сверяет номер в нем с локальным номером - ну и дальше уже вся логика. Это реально? Или мб есть вариант проще?
>>2044517 Даешь коллегам всю директорию программы, вместе с .git. Саму программу делишь на два (или более) скрипта. Первый (основной) скрипт должен автоматически вызывать git pull при каждом запуске, и только после этого импортировать остальные файлы и запускать непосредственно программу.
Делаю первый проект, бэк на джанге, фронт Semantic UI (+ Vue.js если получится изучить, пока обычный jquery + js). Нужна помощь с фронтом, частично его по требованиям реализовал, но некоторые вещи не получается подключить / непонятно как реализовать на js, т.к. нет опыта, изучаю 2 недели. Если у кого есть время/желание, напишите почту/телегу. Не бесплатно.
>>2044349 > Но... ведь.. Очевидно, что второе сообщение писал не я. Лично я читал эту книгу по главам. Иногда внутри глав встречались моменты, когда автор рассказывает о том, что я уже знаю, поэтому бывало и страницы скипал. Короче говоря, читай так, как самому комфортно. Главное, хотя бы что-то прочитай.
>>2044513 > так что бери первое издание и не выебывайся, ну местами устарело чуток. Может лучше другую книгу найти? Ладно бы это была какая-то ультимативная 10/10 книжка для продолжающих изучать питон, аналогов которой нет, но это ведь скорее всего не так, наверняка что-то еще хорошее вышло за прошедшие 6 лет
Пошарился по документации time модуля и не нашел как сделать так, чтобы был обратный отсчет, типа забиваешь такое-то количество секунд и когда они пройдут происходит действие какое-то
>>2045325 Как ты это себе представляешь? Что будет происходить с основным потоком исполнения в это время?
Если тебе просто подождать, тогда просто time.sleep(10) do_something()
Если же ты хочешь, чтобы программа работала, а через 10 секунд сделала какое-то особое действие, тогда всё сложнее, потому что это конкурентное исполнение.
Вот ты, например, считаешь какой-то очень большой цикл, твоя программа должна его прервать? Или что?
Уже понимая это можно чего-нибудь предложить, или через модуль sched, или через потоки или asyncio.
>>2045323 Не так много на самом деле изменилось, и не то, чтобы много книжек выпускают.
Книжку всё-таки сложно написать, кто этим заниматься будет?
Основное развитие питона с того времени: 1) asyncio 2) typing 3) по мелочам вроде контекстов, f-strings и др.
Но общего намного больше, тем более, что это книги всё равно про базу. Они не рассчитаны на то, чтобы учить тебя многопоточности и асинхронности, это слишком большие самостоятельные темы.
>>2045518 Получается то что просто со скобками это функция (типа print и т.д.), а после точки идут уже какие-то дополнительные методы у этой функции/класса?
>>2045569 Когда ты например создаешь лист, ты пропихиваешь инфу в класс листов, твой лист становится объектом класса питон.лист и теперь ты можешь применять к нему методы этого класса, например append, pop, index и так далее. Это же касается самодельных функций без класса или функции как метод твоего класса
А разве без deque результат не будет таким же? Вроде как в списках и без этого можно можно аналогично добавлять и убирать элементы, точно так же с разных концов можно. В чем тогда смысл?
Всем привет, говном не бросайтесь. Как хобби решил немного пошевелить мозгами вникнув хотя бы в азы и сразу хапнул лопату хуйцов.
Есть модуль sys, который про dir(sys) выдает гору переменных, которые он способен отобразить. Нехитрым кодом получаю список в норм виде, скажем так (пик 1).
print(dir.ХУЙНЯНЕЙМ) выдает значение этой переменной.
Ну думаю. Построю я вывод по примеру. "Название_хуйни_нейм = значние_хуйни_нейм"
Но обосрамс не заставил себя долго ждать. НА пике 2 уже видно, что даже получение всех доступных значений получить не удалось. Вместо значение, как мне предполагалось, питон выдал названия...
Хотел список заебенить типа platform = джигурда prefix = хуй set_asyncgen_hooks = тебя ебет? set_coroutine_origin_tracking_depth = 13 Подскажите куда копать, кому сосать?
Надо написать простой скрипт, который будет при выполнении идти на сетевой диск и записывать в текстовой файл или csv построчно список папок (их около180к получается) из указанной директории и полный путь к каждой папке, то есть каждая строка должна быть вида: id (просто счетчик строк), имя папки, полный путь к папке, комментарий (пустое поле).
С помощью гугла накидал такое, но соснул, потому что Path().absolute выдает мне по итоге не путь к сетевой папке, а путь к скрипту (то есть вместо z://папка/папка он выдает какой то бредовый путь типа c:\users\yoba\dekstop\целевая папка, хотя никакой папки по факту там нет и не было).
import os from os import listdir import Path from pathlib for i in range(0,9): f = open('D:/text', 'w') l = (listdir("Z://Files/") for index in l: i = 0 i = i + 1 f.write(str(i) + ',' + index + ',' + str(Path(index).absolute) + ',' + str("commentary") + ',' + '\n') f.close()
И это я еще тестил на папках своего диска, а как моя писанина воспримет 180 тысяч строк вообще хз. В идеале, конечно, лучше бы писать сразу в csv или просто ячейки эксель, но с pyxl так и не разобрался, постоянная ошибка из за отсутствия прав на запись (хотя атрибут 'w' поставил).
Где я соснул, подскажите? Понимаю, что фигня примитивная абсолютно, можно это все наверное меньше, чем за 10 строк уложиться, но не программировал особо никогда.
Аноны, держатель SYNC-библиотеки книг по питону(и не только) итт. Есть ли что свежее для заливки/обновления? Есть ли пожелания/жалобы/идеи для книгохранилища?
Анончики, подскажите, как я могу проверять данные поинтервально? То есть, в массиве брать какую-то область (типа подмножества) и сравнивать её с условием????
>>2046052 >Есть ли пожелания/жалобы/идеи для книгохранилища? Там бы не мешало отсортировать что-то и структурировать. Скажем лутца всего в один каталог и подписать, что это лутц. А то сейчас он и в корне, и где-то глубоко ещё закопан, причём в файлах с именем вроде "Изучаем питон. 4-е издание.pdf", по которым ни разу не понятно, что это.
Другие книжки тоже не мешало бы отсортировать, хотя бы подписать "автор-название-год издания"
>>2045792 deque оптимизирован под добавление и удаление элементов как в конец так и в начало списка: append, pop, appendleft, popleft выполняются за O(1) времени. Для list добавление в конец - append - выполняется за O(1), но добавление элемента в начало списка через insert(0, item) будет уже O(n), где n - текущая длина списка. Аналогично pop(0) потребует линейного времени. Твой эксперимент с timeit это демонстрирует. Эффект объясняется тем, что list-ы в CPython реализованы через массивы, а не как односвязные или двухсвязные списки. У этого есть свой большой плюс - доступ к произвольному элементу выполняется за O(1).
>>2046369 Он про то что у него представление будто в других языках не так как в питоне, типа достаточно знать как хуярить классы, функции и циклы в джаве чтобы уже пойти зарабатывать, в питоне же это почему-то считается только доступом к пользованию библиотеками, которые уже как бы и определяют чем ты будешь зарабатывать.
>>2046538 Ну он наверное про то, что на Питоне можно зарабатывать только или в связке с другими языками-инструментами или будучи математиком, ученым или дата саентистом.
Но как бы вот есть Ренпи, есть рынок 18+ и обычных визуальных новелл. И парни вполне зарабатывают. Это как 1 пример.
>>2046629 Ну да, только в других языках точно так же, ты как бы не синтаксисом зарабатываешь, только в отличие от питона другие языки более вжаты в свою роль, а питон как шлюха со всех хуев посасывает сразу.
Котаны, Питон начал изучать недавно, столкнулся с проблемой. Мне надо написать программу, которая считывает инфу из файла и чертит изолинии. Саму программу написал, но в результате вылазит дефолтное окно matplotliba, если надо изменить число изолинии, то надо лезть руками в код. Хотел воткнуть это окно в какой-нибудь графический интерфейс и прикрутить там кнопку с настройкой изолиний. Попытался в tkinter, но походу это не то. В идеале хотелось сделать что-то типа выбора в Surfere как на пикриле.
>>2046629 >>2046644 Пиздец, ищут какие-то ниши. Зайдите на апворк и посмотрите, полно всякой работы на питоне. Выбирай да делай. Я даже на пхп делаю дохуя всякой работы, причем не связанной с вебом, лол. Подучил, потому что был и есть спрос.
А в ответ: ERROR: Could not find a version that satisfies the requirement project1 (unavailable) ERROR: No matching distribution found for project1 (unavailable)
Начал ковырять джанго, написал небольшой сайтик, который отлично работал на локалхосте. Взял хостинг, установил туда питон, окружение, по фтп перелил все файлы и в итоге получил пикрелейтед. В гугле в основном про руби. В чем траблы?
>>2047646 Адреса нужно менять. Я так тоже когда-то запускал сайтик правда на WP, сначала на компе, потом на хостинге. И траблы были с адресами-ссылками всяких файлов настроек, которые нужно было менять.
Аноны мне надо сравнить два листа, с игнорированием некоторых элементов. Т.е. совпадают ли элементы с 1 и 4 индексом мне неважно, а вот остальное должно совпадать. Есть простые способы, или нужно колхозить цикл с проверкой индекса?
Ананасы, не сочтите за говноеда, но есть ли скажем так максимально-минимальный. Редактор для питона? Какойнить Akelpad+Портативный питон. Я хуею с этих оболочек по 100-300 метров, которые ставят в систему гору ебанины для банального обучения. Я осознаю, что всю эту хуйню можно было загнать в 5-10 метров, а не в 100-300 с лагающим интерфейсом и горой блядских кнопок, которые даже разрабы этих IDE ниразу не жали. Хочу просто на флешке таскать эту хуйню с дома на работу и обратно, но не ждать пока эта залупа с флешки грузится полчаса, чтобы там в перерыв поиграться 15 минут.
>Хочу просто на флешке таскать эту хуйню с дома на работу и обратно, Тебе оболочку в систему надо поставить только один раз. Впрочем никто не запрещает код хоть в блокноте набирать.
>>2047717 В общем твоя задача слишком нестандартная и поэтому вряд ли может быть решение проще, чем городить свой цикл len(list_1) == len(list_2) and all(list_1 == list_2 for i in range(len(list_1)) if i not in [1, 4])
>>2047656 >>2047674 Госпаде, откуда вы такие токсичные уебаны? На каждый нубский вопрос тут вылазят такие хуесосы обиженные со своими смехуёчками. Разве эта тема не для тупых вопросов новичков? Нахуй вы тут вообще сидите тогда?
Хочу написать утилиту сбора информации о системе. Хочу это реализовать как-то используя запросы или командлеты хуй знает как они там в windows powershell. Это имеет смысл? Что подскажете?
>>2047685 Где? У меня простой сайт, файлы проекта и файлы одного приложения. И там и там есть urls.py Файл urls.py проекта выглядит так: urlpatterns = [ path('', include('grab.urls')) ] файл urls.py приложения: urlpatterns = [ path('', views.index, name= 'home'), path('media', views.redir, name='redirect') ] Пробовал вместо ' ' и 'media' ставить прямые ссылки на домен - то же самое
>>2048081 Я хз где у тебя и что конкретно. Я все делал с WP, а это как ты понимаешь ни разу не Питон.
Но.
Просто так у тебя файлы закинуть, которые работают на домашнем компе, на сервер хостинга - не получится. Гугли что надо допиливать перед закидыванием системы на хостинг.
>>2047987 ну ошибку возвращает, если массивы разной длинны, нужна дополнительная обработка, а с map, не нужна, он по возвращает сравнение по массиву минимальной длинны(сравниваем из 3 и 5, вернет 3 элемента).
Аноны. что за говно, на хероку не дает добавить редис бесплатно?? пишет типа - бесплатно, нажимаю добавить в проект он пишет - хуй на рыло тебе. че за ссанина?
>>2047699 Тебе уже написали, любой юпитер-ноутбук подобное, колаб гугла, даталор джетбрейнсов, каггл. Код писать можно точно так же, все библы или уже загружены сразу, либо ставятся автоматом. Я в принципе перешел на это все с пайчармов и сублимов. Еще преимущество очевидное, все файлы всегда с тобой на гугл-диске, ты в любой точке планеты получаешь одну и ту же рабочую среду
>>2048033 Пчел, если ты заебошил себе хостинг, то должен уметь читать логи веб-сервера и сообщать что там написано или идешь просто нахуй. У тебя не нубский вопрос, а долбобебский и тебе закономерно напихали хуев за щеку.
>>2048136 >если ты заебошил себе хостинг, то должен уметь читать логи веб-сервера Это кто такое сказал? Ты просто собака обиженная, вот и тявкаешь просто так. Уверен, что я не первый, за чей счёт ты пытаешься самоутвердиться. На аиб. В питон треде. Жалкое чмо.
Бесит шо питоша одно ядро тока юзает Как ты его не еби не дрочи не выебывайся нагрузить проц - будет ебошить всё в одно ядро. Я прочел про всякие pypy и stakless сборки - всё одно и то же. 10% одно ядро и сиди жди. Скажем заставить расчитать дико большое число в дико большой степени print(99999999999999999999999) Хуй тебе вместо быстрого расчета и нагрузке в 100% cpu/ я возьму 5 метров оперативы и буду дрочиться год на 10% проца, чем выжру всё шо есть и сделаю быстро Поясните как заставить питон юзать всё железо.
>>2048413 Под каждую задачу свои решения. Для вычислительных, например, есть numba, которая позволяет загрузить в некоторых задачах все ядра (опция nogil=True). Помимо того, что даже одно ядро так можно эффективнее загрузить.
Ещё зависит от того, на что время тратится, какие внешние либы используются. И разные техники вроде запуска процессов-воркеров.
На заниматься хуитой, поясняя что-то школотроллям, желания нет.
>>2048422 >print(99999999999 ХХ 999999999999) С этой задачей numba не справится, поскольку она поддерживает только нативные типы, то есть уровня int64 примерно.
На самом деле здесь не только проблема питона, реализовать алгоритм, который будет вычислять подобное значение с использованием большого количества тредов довольно сложно. Параллельные алгоритмы вообще довольно серьёзная тема.
Нужно искать специальные библиотеки, которые считают быстро такие числа, с использованием многопоточных подходов.
То есть проблема тут намного глубже, чем GIL питона.
GIL проблема, когда ты сам руками создаёшь треды, а потом страдаешь, что они всё равно параллельно не считаются. Но чтобы жаловаться, надо сначала пытаться треды создавать, а для этого изучать предмет.
>>2048445 То число, которое ты привёл, для своей записи потребует несколько террабайт памяти.
Я ради интереса глянул. Вот если считать число вроде 9^1000000 то считается оно очень быстро, доли секунды. Но если попробовать сделать что-нибудь вроде print(len(str(result)), то там на 20 секунд работы.
То есть вычисление происходит быстро, а вот преобразование из внутреннего в десятичный формат очень дорогое. В принципе это понятно, почему так.
В любом случае, параллельные вычисления это большая и сложная тема. Просто вычисления на питоне это большая тема, в сыром виде питон для этого не предназначен вообще, надо прикручивать математические либы или/и использовать jit-инструменты вроде numba.
По параллельным вычислениям надо читать серьёзные книжки, университетские курсы. Ты просто не представляешь, как много тут нюансов и подводных камней.
Ну и естественно, цель главная не загрузить процессоры, а посчитать быстро. Лучше загрузить процессор на 10% и посчитать за 15 секунд, чем на 100% и считать при этом 30 секунд.
Я надеюсь тут есть джангисты. Вкатываюсь значит в эту вашу Django Пытаюсь сделать запрос через orm но чет хуйня выходит. В документации примеры вроде есть, но какие то не такие. Допустим есть пример как выбрать книги и подтянуть автора. Но автор у книги один. А мне нужно сделать обратный запрос. Допустим есть 2 автора и у каждого по 10 книг. И мне нужно получить список из 2 автором у которых внутри можно пройти в цикле по книгам. И что то я не пойму. как это сделать. В документации ничего даже близкого не нашел. Может знает кто как это сделать или хотя бы по каким словам искать?
Короче есть два файла и IDE pyacharm актуальная autostart/main.py common/common.py
первый файл основной и исполняется, второй модуль с "общими функциями" в первом делаю sys.path.append('../common_modules/') # мне надо чтобы он брал по такому пути, скрипт может переноситься между компами from common import *
и он прекрасно работает, тащит функцию из соседней папки и когда надо вызывает ее но блять, каждый вызов пирам подчеркивает красной ошибкой в первом файле (неразрешенная ссылка, типа я ему пустышку подсовываю) да и сам импорт подчеркивается красным но блять, повторюсь, оно работает что делать чтобы оно не говорила что есть ошибка которой нет? я не правильно импортирую?
Пытаюсь реализовать интерфейс с помощью tkinter, получится разбить на два фрейма? Типа наверху должен быть график, который строит функция из matplotlib'a . В нижнем фрейме можно же через grid разбить на три подокна?
Питонач, а когда можно считать, что вот, я выучил питон? Вот допустим сейчас где-то наполовину осилил второй том лутца, ориентируюсь во питоновских структурах данных более-менее понимаю принцип работы классов и всей хуйни со всей хуйней. Офк остаются некототорые моменты, которые я вкурил не до конца (аля args, kwargs, рекурсивные функции, и прочие приколы), но как будто это вопрос практики и недели за две можно будет это все добить. Вот собсна, дочитаю я этого лутца ебаного, параллельно дроча задачки. И куда дальше? То есть например, я хочу еще попердолить SQL посидеть, потому что он нужен примерно везде как я понял. Вот после какого момента переключаться на этот SQL ебаный?
>>2048489 Точно не помню, вроде так должно работать. По id автора: Books.objects.filter(author__in=[1,2] По полю в модели автора: Books.objects.filter(author__name__in=['pushkin', 'kalatushkin'])
Опять выхожу на связь, оказалось то что я придумал не работает(запись вида True or False, схлопывается внутри массива). Ещё раз реквистирую способ сравнить два массива, но при этом игнорировать некоторые элементы при сравнении. Например:
[1,2,3,ИГНОРИРУЕМ,1,2,3] и [1,2,3,99999999,1,2,3]
MATHCED!
Сто процентов должен быть где-то инструмент для этого.
Доброго дня. Делаю задание на sqlalchemy, нужно считывать строки из таблицы и писать в json. Как сделать возвращаемый sqlalchemy результат json serializable? Описание класса на скрине. И как результаты считываю тоже на скрине ниже. Если не будет метода dict, ошибка >TypeError: Object of type User is not JSON serializable Если он есть, то ошибка ЮTypeError: 'method' object does not support item assignment Единственное, что нагуглил, это объявить в классе метод, который возвращает словарь, и применять его к результатам построчно, типа: >[r.get_dict() for r in result] Вот тогда все нормально работает, но это выглядит как-то костыльно, может у sqlalchemy есть встроенные способы сделать сериализацию?
>>2048786 Когда ты можешь решить и закодить любую проблему подвластную условному мидлу и у тебя не возникает мысли "ебать тяжело, я это еще не проходил". И вообще нет такого "выучил питон", ты выучи какой-нибудь фреймворк и делай на нем проекты. Представь например что есть дата-саенс и машинное обучение в нем. Там код зачастую без единого даже цикла, чисто команды к пандас, нимфи, матплотлибу и тенсорфлоу. В джанге какой-то свой код будет, я не шарю. Я могу ошибаться, но мне кажется в 2021 погружаться в дебри питона, учить его делать всякие сложные штуки и эксклюзивные решения это проеб времени, особенно на вкате, тебе надо упереться в конкретный инструмент что тебя интересует и подтягивать питон чтобы с этим инструментом не было затупок. И вангую опять же, что можно найти какой-нибудь кусок интервью Линуса где он говорит что так до сих пор и не выучил С, ну как пример тебе
>>2049024 Какие элементы игнорировать? Типа четкую позицию, ну так просто выключай zalupa[3] в твоем случае. Можешь его заранее убрать. Если это число какое-то оче большое, то сравни с предыдущим, если разница больше какого-то порога, то в цикле пропуск. Ты определись сначала чего хочешь
>>2049024 Берешь и поэлементно сравниваешь. Если у тебя числа с плавающей точкой, то для игнорируемых элементов вставляй в первый массив значения не являющиеся числами (бесконечность например). Для целых можно передавать список индексов игнорируемых элементов.
>>2049260 А зачем оно вообще нужно? Всегда бесили эти записи курсов где вещает "препод" для десятка людей, которые пердят в микрофоны и задают какие-то свои вопросики, потом им одну тему объясняют два часа? И обязательно начнуться какие-то проблемы со связью или что нибудь подобное. Ниикогда подобного не понимал
Вспомогательные функции в классе должны создаваться с таким же отступом как и обычные? Просто я думал, что их надо создавать в теле функции для которой они будут использоваться, но так ничего не работало
>>2048786 >Офк остаются некототорые моменты, которые я вкурил не до конца (аля args, kwargs, рекурсивные функции, и прочие приколы), Это ты на очень начальном уровне. Работа с args/kwargs это вот совсем такие базовые вещи.
Оффтоп. Аноны, кто получал доступ к АПИ Твиттера? Что и как им надо написать, чтобы они дали ключи? В описании приложения писал, что хочу просто попробовать их АПИ - отказ. Писал, что в научных целях - отказ. По фану - отказ. Сцуко анально отгородились и не пускают поиграть.
>>2050138 Они кранйе подозрительно относятся к юзерам, просто сидящим в Твиттере из-под постсоветских IP или телефонных номеров, чего уж говорить про просящих доступ к API. Пробуй левый западный номер и VPN.
Есть программа. она разнесена на две функции, которые запускаются в разных потоках Как сделать так, чтобы код одного потока вызывал функцию из другого потока и передавал туда данные?
Нубовопросы: Где хранить изображения и файлы, привязанные к юзеру? Создать под них отдельный каталог на диске и дать ссылку в базе данных или можно хранить сразу в базе (к примеру Mongodb)?
>>2050493 Если твой бот просто выдает какую-то инфу какого-то конкретного толка, то сюда, если у тебя бот-пиздилка или генератор склеенных из куском нейро-волков, то тебе наверное в машоб тред
>>2050498 Не-не-не, пока все просто. Конкретный вопрос по телеграм апи, который я не смог нагуглить. Слушайте. Я отправляю картинки по URL. Проблема в том, что когда картинка узкая и длинная, как мой пикрил (не мой код, просто пример из соседнего треда), то телеграм отправляет его не как файл, а как документ. Соответственно, когда я вызываю bot.send_photo, оно валится с ошибкой >A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: wrong file identifier/HTTP URL specified
Мне нужен какой-то способ проверить, что картинку можно отправить как фото, а не как документ. Проблема еще и в том, что в идеале я хочу отправлять картинки не поштучно, а через send_media_group, то есть о том, что все упало, я узнаю только при попытке отправки группы.
>>2046655 Все эти фриленс биржи бесполезны без прокачанных годами аков с высоким рейтингом и портфолио. Думать что там ноунеймов будут заваливать заказами ужас наивность на грани детства. Собственно поэтому в сети зарабатывают те кто успел вкачать аки за 10е, а остальные сосут банан. Особенно после пандемии.
Даров, двач. Перекатываюсь к вам с плюсов, ибо хер с ними найдёш работу в Беларуси. Записался на тренинг, там финальный таск -- консальный рсс ридер. Вот вроде просто всё, хотя объём данных которые надо быстренько выучить запредельный. Написал прогу, что-то стартовое, за 3 дня, а как тестить не понимаю. Вот просто в голову не приходит как эту хуйню тестить, уже 4 часа просто смотрю/читаю гайды по unittest/pytest/nosetest/zalupatest, а идеи чё делать нету.
Не знаю насколько адекватно просить помощи в интернете, вроде задание то самому надо делать, но буду думать что это считается как поиск решения в интернете :)
>>2050703 нда, забыл, комменты там хуета хуетой, сделаны что б я после попойки не забыл что писал, вот в кратце:
app_logger -- пару функций, вызываю в других модулях getLogger и по идее получаю ссылку на один и тот же логгер. К нему пернаментно привязан один streamhandler и один filehandler
feed_container -- складываю туда всю спаршенную залупу. Класс там занимается как парсингом, так и хранением. Он же раскладывают весь этот суп на ингредиенты. Он же занимается выводом.
parser_debug -- класс где сделал что-то для парсинга параметров терминала
reader -- main откуда всё за ниточки дёргается
debug -- УБОЖЕСТВО, ЗАКОМПЛЕКСОВАННЫЙ НЕДОНОСОК - БУКВОЕД. надо удалить нахуй, не помню зачем создал и что проверял
Ещё разок, я понимаю как тестить ебаную функцию add(a+b), но я не понимаю как тестить приватные методы класса, вот вообще не доходит что-то. Мб туплю, мб тупой, мб сложно. В общем буду благодарен за любую помощь
>>2050727 Хз, плюсовики, начиная от Милла, везде нужны, по крайней мере мне так видится. Джунику тяжелее, намного тяжелее чем в других языках. А в Беларуси темболее
>>2051240 Конструкция file>>2051240 Конструкция open("name", "mode") as file Создаёт объект класса, работающего с файлом, и возвращает ссылку на него в переменную file. Здесь в цикле создавался этот объект, что в общем то считается залупой, и так работать не должно. Мимо автор этой херни, написал то что подумал, в Гугле мб правильнее оасскажут
>>2051270 Ну тада норм, значит где-то я это скомуниздил >>2051275 Ну на абстрактном языке: Открыть файл В цикле: Взять нужный item, записать в конец файла Закрыть файл.
Как альтернатива Открыть файл В цикле: Взять item, добавить его в массив Array Записать весь Array в файл Закрыть файл
>>2051275 Естественно, надо вне цикла файл открывать. Просто подумай, зачем тебе файл писать, и тут же переписывать его?
делай news = self.channel_items[:limit] with open("news.json", 'w') as file: ____file.write(json.dumps(news, indent=4))
или вариант
news = self.channel_items[:limit] data = json.dumps(news, indent=4) with open("news.json", 'w') as file: ____file.write(data)
Ты сначала создаёшь массив, который хочешь сохранить, и потом уже создаёшь файл и сохраняешь его.
Разница между двумя вариантами в том, что если по какой-то причине при json.dumps будет исключение, то файл создан не будет. В первом случае будет создан пустой файл, а если был до этого какой-то, то он уничтожится.
Иногда эти вещи важно контролировать, хотя надо смотреть, возможна ли такая ситуация в принципе, или нет. Чаще невозможна.
>>2051286 О, надо разобраться в методе json.dumps. Вообще питон радует разнообразием конструкций Спасибо, мимо автор ориг кода, не парень, спрашивающий про файл
>>2051298 Покажи в название треда строчку "Только для сеньеров помидоров". Если такая есть, то хорошо, мы все уйдем и оставим вас профессионалов тут одних, будете восторгаться друг другом и задавать только умные вопросы
>>2051310 Хз зачем тебе это С++, иногда, когда стоило подергать за ниточки низкоуровневость(да, прям ниже чем плюсы), писал на С, подключая к плюсовым программам и вызывая функции. А, ещё когда для микроконтроллеров писал, тоже С юзал, правда там своя атмосфера. Ну QT, хотя это и фреймворк, но там свой язык по сути, это вообще не плюсы в их базовом или типичном понимании. ООП во всей красе. Довольно приятный фреймворк, к слову
Хз на каком уровне освоил. Наверное на том самом уровне, с которого видно всю необъятность материала, то понимание, что я в мире плюсов букашка заморенная и знаю примерно нихуя. И никогда в общем то всеп лбсы не пойму
Перехожу потому что универ заканчивается, в Беларуси плюсы нахуй никому не всрались, практически, а сидеть на шее у родителей не хочу. Был выбор между шарпом, джавой и питоном, нравились все яп, но я тогда opencv увлекался и решил вот месяца 2 назад вкатиться а питон
>>2051310 >А на каком языке ты до этого писал? Он, кстати, написал: >>2050703 >Перекатываюсь к вам с плюсов,
Но мне кажется, стоит сначала более лаконично научиться писать, прежде чем обвязывать всё тестами.
Ремарка сразу - в таком стиле классы по-моему ни на каких платформах не принято называть, в том числе на питоне. Даже pep8 рекомендует функции и методы называть как def feed_container(): а классы в стиле class FeedContainer:
глаз режет.
Не то, чтобы прямо совсем ужасно, снаружи смотрится как функция-фабрика, которая возвращает объект feed = feed_container(url=parser.args_Space.source, args=parser.args_Space)
Тестировать сети довольно сложно, слишком много зависит от сети. Вообще мне кажется, что лучше разделять часть, что отвечает за сеть/транспорт, и часть, что отвечает за логику приложения. Логику уже можно при желании обложить тестами. А транспорт можно использовать разный. Хотя это актуально для больших приложений.
>>2051335 У меня просят тесты на курсах, поэтому хочу их сделать, ну хотя бы для вида. Класс я в начале так и назвал, потом переименовал, прочитав что-то где-то :) Вообще, к слову, тяжко это. В плюсах есть общепринятые практики, но нигде не найдёшь мануала, принятого офф. комиссией, как pep8. До сих пор привыкаю, хотя это и удобнее.
Хм, да, тут ты прав, я уже после того как написал понял, что было бы лучше разделить логику сети и хранения данных. А что ты под транспортом подразумеваешь? Способ вывода в консоль/файл?
>>2051321 > Хз зачем тебе это Просто интересно > Был выбор между шарпом, джавой и питоном, нравились все яп, но я тогда opencv увлекался и решил вот месяца 2 назад вкатиться а питон Я вот в сторону шарпа поглядываю, сейчас кажется, что это в принципе неплохой и вроде даже несложный язык, но уже пайтон надо добить хоть до какого-то вменяемого уровня, а не перескакивать на что-то другое, так что на будущее оставлю си#
>>2051354 да, def проебал Да просто непонятно, как мне проверять эксепшены, вызванные неправильными аргументами командной строки. (Да, при вызове с неправильными параметрами я генерю исключение, хз насколько это правильно) Типа, класс не принимает никаких входных параметров. Параметры CL берет с помощью инструментов argparse. Внутренние методы, та же валидация, в которой львиная доля всех моих проверок, тоже не принимают параметры. Тобишь я не очень понимаю как написать для этого тест
Эх, если бы можно было просто написать тест, который бы вызывал мою прогу с разными параметрами. ТАК БЛЯТЬ СТОП. А насколько адекватно будет, если я буду вызывать свою функцию main() в тестах, но вводя в неё тестовые параметры, и отлавливать исключения из модуля, которых подлючался к main файлу?
>>2051386 Да не, она всё вполне может знать. К примеру, если в параметр записать -limit "govno" Я вполне могу проверить тип, что он не int , и кинуть говно эксепшн. У меня ж вопрос насколько это бы было вообше адекватно, генерить эксепшн вместо обычного print("ti govno") sys.exit
И если это адекватно, как мне такое протестить, если класс получает всю инфу не аргументами, а долбаным argparse
>>2051393 Извечный вопрос, что ты хочешь: бросать эксепшн или возвращать None из функции (1е кстати везде предпочтительнее)? Хочешь оставлять Traceback? Лог об ошибке? Это все на твой выбор
>если класс получает всю инфу не аргументами Так argparse и конвертируется в эти самые аргументы. Интерфейс ебана
Петян, я всегда обходил эту тему стороной, меня просто воротило от этой хуйни, но сейчас придётся занятся. Короче, надо прочитать несколько аттрибутов из одного элемента xml файла, потом надо добавить один элемент в одно определённое место в этом xml, а затем записать xml на диск.
Ещё стоит заметить, что прочитать и записать что-то надо почти в самом начале xml файла. xml файлы всегда валидные и сука могут быть иногда по несколько десятков мегабайт.
Какую ебанину лучше использовать ElementTree vs. Minidom если оставаться только в рамках стандартной библиотеки? Во что вкатываться? Плюсы, минусы, подводные камни?
>>2051394 блеа, не понимаю, у меня ощущение что ты просто на более высоком уровне и я не могу донести мысль
Со своей колокольни я не вижу разницы, только если код теоретически не может расхуячить нам программу, тогда конечно его лучше обернуть в try except.
Вот смотри, есть у меня метод def Foo(x) ___try: ______if type(x) == str ______raise SomeCoolException ___except SomeCoolException: ______print("jopa") ___else: ______return x
И вот такой тестик
class MyTestCase(unittest.TestCase): def test1(self): self.assertRaises(SomeCoolException, Foo("govno")
Вот, всё нормально вроде, должен тест норм сработать.
Но хуета в том, что мой класс работает с аргументами командной строки, которые просто берутся при инициализации argparse.parseArgs(). И я не понимаю как мне написать тест, которые проверяет, не ёбнется ли моя прога введя пользователь --limit 90000000. Просто потому что как мне это число вообще бля запихнуть в тест, мой класс не принимает аргументов.
Делаю задание по книжке и немного запутался в коде. Откуда в нижней функции берется event.key? Меня смущает то, что он без "pygame.", а значит должен где-то в моем коде быть указан по идее, раз он не из библиотеки. Или он берется из цикла for верхней функции где всё делается через переменную "event"?
>>2051411 Запихнуть ты можешь через sys.argv Сделать sys.argv = ['my_prog.py', '--limit', '900000000'] и твой парсер будет думать, что ты вызвал прогу с параметрами --limit 900000000 Потому что парсер читает по-умолчанию sys.argv, который от перезаписи не защищён.
Насколько вот это именно для тестирования через фреймворки корректно - вопрос. pytest вроде глотает.
>>2051410 Ещё есть lxml, вроде очень быстрая. Я ей пользуюсь, но правда только для парсинга. Насколько ей удобно править документы не скажу, не пробовал. Вроде должна уметь.
>>2051416 Может у меня совсем голова не работает к ночи, но я до конца понять не могу этот момент. Этот метод взят получается из библиотеки pygame?
Или раз это вспомогательная функция, то event ей вернет та функция что вызовет ее (то есть _check_events)? Она получается автоматически имеющееся у нее значение вкладывает во второй аргумент?
Ой, ладно, спать пойду, завтра попробую разобраться откуда этот .key берется
>>2051427 Я недавно на питоне, поэтому так и предположил.
В плюсах с этим проще, void Foo(type ClassObject) { ___ClassObject.Boo(); }
И если у объекта класса с данным типом нет такого метода, ты пойдёшь нахуй глубоко и надолго.
В питоне, насколько я всё это понял, ты по сути идёшь на соглашение с интерпритатором, что вот я сюда кину объект, назовём его условно event, и вызову внутри его метод .key. Если вдруг где то вызовешь эту функцию и кинешь место event что-то другое, у него не будет метода key, будем бобо. Скорее всего умная IDE найдёт ошибку на стадии написания оной.
Я так предпологаю, как реально это работает хз, меня напрягает динамическая типизация
>>2051427 ну тут да, чувствуется, что ночью уже притупляется восприятие. этот key просто поле в event скорей всего. можешь посмотреть, что тебе pygame там возвращает. так просто я не могу понять, что ты под вторым аргументом понимаешь.
>>2051438 да весь евойный хак и шаманство с "файлами в /homo/" было подставление лицензионного ключа, который прилетал на университетскую почту. лицензия кончилась потому что из университета отчислили и почту забрали, а теперь заберут на осеннем призыве.
unittest/pytest предназначены для специального тестового прогона, то есть на обычный запуск никак не влияют.
Твоя программа должна, конечно же, контролировать параметры строки при запуске, видимо к тебе сейчас требование вот эти вещи контролировать, а не тестовый фремворк самому изучать.
Тестовый фреймворк поможет тебе контролировать, что ты не продолбал где-то проверку аргументов.
Глянь, кстати, на оператор assert. Он в принципе как раз вот для таких целей и предназначен.
assert parsed_data < 1000 assert parsed_data < 10000, "Number is too big"
>>2051433 Любая динамическая утиная типизация так работает Весь жс построен на ивентах и коллобеках. В каждый хендлер будет проброшены аргументы а через них переданы коллбеки и объекты
>>2051438 Потому что все разы когда моя убунту крашилась были из-за ебаного жидбрейнса - графическая оболочка просто умирала нахуй Сейчас на vscode, полет нормальный
>>2051451 really nigga так работает? Лол, я только предположил. Динамическая типизация -- хуета, имхо >>2051452 та хуй за ним уследишь, борда то анонимная. Ну не ты и не ты, чё обижаться то.
>>2051458 >Динамическая типизация -- хуета, имхо Заебал. Пиздуй на своём любимом Го писать.
Динамическая типизация позволяет массу трюков, вроде того, чтобы подставлять любой callable объект как аргумент функции, и это может быть функция обычная, лямбда фукция, связанный метод, класс, и много чего ещё. У тебя тучи возможностей по созданию декораторов, вообще масса всего открывается.
Пайтонист-сама, подскажи заблудшему возможно ли реализовать на пайтоне нормальное десктопное приложение для окон и пинукса (ахуенно если с заделом под мобилки). Если возможно, то подскажи технологии/фреймворк. Заранее благодарю!
>>2051473 >не так красиво, конечно, но тоже работает Очень ограничено работает. Тогда как в динамических языках у тебя утиная типизация и ты можешь не только функцию, но и метод объекта передавать, просто класс и др.
У меня нет желания начинать срач о типизации. Такое ощущение, что на доске сидит какой-то индивидуум, и при случае пытается этот срач устроить, других интересов нет.
Ну блин, если не понимаешь, откуда берутся проблемы и преимущества разных подходов, то и похуй, твои проблемы.
>>2051480 ты хочешь универсальную палку, которая была бы не говном мамонта, выглядела более или менее нормально, и тебе бы не хотелось пырнуть случайного человека ножом, когда ты б писал код?
я не знаю, какие другие технологии под питон ещё остаются.
>>2051462 С динамической типизацией у тебя есть потрясающий выбор: потеребить яички пока будешь делать минет или нет, сосать медленно или быстро, проглотить или сплюнуть
>>2051481 утиная типизация - божественна. двадцать лет назад ещё в универе я запрыгнул на жабу, и моя жизнь подкосилась. десять лет назад, я попробовал змею, и всё наладилось. жаль лишь только то, что волосы выпадать начали. но это генетическое, наука говорит, что по материнской линии передаётся.
>>2051480 >Почему ты так думаешь, десу? Другой анон. Такое ощущение есть, потому что всё уходит в браузеры как в универсальные платформы.
Правда история движется по спирали. Ещё в махровые 60-е и 70-е, когда ещё летали на Луну, а по улицам ходили мамонты, были маинфремы и тяжёлые юникс-машины, где большая основная машина, и терминалы проще. Потом акцент сместился на дектопы. Текущий уход в веб-облака это как виток спирали, вновь у нас мейнфремы и центральные хранилища данных, и терминалы к ним.
Однако чувствуется и следующий виток. Браузеры утяжеляются, внутри браузеров огромные хранилища данных, на гигабайны, код, зачастую бинарный (WebAsm), SPA с фоновыми процессами, когда у тебя страница может работать автономно очень долго без интернета вообще.
Но по части GUI мне кажется всё уж очень уверенно идёт в сторону html/css/js
Самое смешное, когда-то в середине нулевых писал я какой-то софт на плюсах и винапи. Сначала руками форматировал кнопки и текст, потом вдруг кто-то подсказал, что можно использовать компонент IE для этого. И интерфейс стало делать очень легко, рисуешь всё в HTML, даже динамику на JS добавляешь, насколько тот ИЭ позволял, работаешь с перехватом сообщений от компонента, и счастье.
Прошло сколько лет, эпоха сменилась, а полноценно этот подход так и не поддержали. В питоне точно нет, электрон какой-нибудь про это как раз.
>>2051483 Понимаешь, программист-сама я совсем еще не смешарик кодер, а хокаге стать хочется хочу написать написать свое приложение, так как опыта нет я обращаюсь к опыту людей чего-то понимающих в сфере, а большинство плюётся от веб-приложений, десу.
>>2051488 Меня это пугает, программист-сама. Наверное мне стоит пересмотреть свой страх веб-приложений, к тому же как я понимаю сие творение будет работать везде, а потом на его почве можно легко еще дополнительно в виде сайтика поднять. Это все же огромный плюс. Спасибо программист-сама.
>>2051415 Там же написано >Respond to keypress and mouse events event это объект, которые генерируется при каждом событии нажатия кнопки или мыши, функции у тебя его обрабатывают эти события, поэтому дожны получать именно его, а не какой-то абстрактный event Сам способ вызова гарантирует, что ты получаешь именно такой event Свойства этого event смотри в описании pygame
Аноны а как прочить из фала без вского говна типа переносов и так далее? А начинаю читать там целая пачка \n \r \b, я прорастаю их парсить. Как получить сразу строку?
>>2051988 Ну я по своей ссылке на freecodecamp почти прочитал статью по питону, там просто кратко основы изложены. И пару видео посмотрел из видео-курса по питону. Мужик в принципе интересно рассказывает, и субтитры нормальные английские есть (не автоматические), так что вообще ляпота
>>2046052 >Аноны, держатель SYNC-библиотеки книг по питону(и не только) итт. Хранитель книг, вот это вот у тебя в оригинале есть? На хабре перевод есть, но ужасный какой-то.
На одном сайте прохожу курс по Питону. Там дали такого вида задание:
В 1769 году Леонард Эйлер сформулировал обобщенную версию Великой теоремы Ферма, предполагая, что по крайней мере nn энных степеней необходимо для получения суммы, которая сама является энной степенью для n > 2n>2. Напишите программу для опровержения гипотезы Эйлера (продержавшейся до 1967 года), и найдите четыре положительных целых числа, сумма 5-х степеней которых равна 5-й степени другого положительного целого числа.
Таким образом, найдите пять натуральных чисел a, b, c, d, e, удовлетворяющих условию:
a^5+b^5+c^5+d^5=e^5.
В ответе укажите сумму a+b+c+d+e
И тут фишка в том, что написать код, который все это вычисляет легко, даже особо не включая голову и используя наработки из предыдущих заданий.
Но есть один момент. Скорость выполнения кода.
1 способ решения - мой, нубский, вообще не думал когда код писал:
from datetime import datetime start_time = datetime.now()
total = 0 for a in range(1, 151): for b in range(1, 151): for c in range(1, 151): for d in range(1, 151): for e in range(1, 151): if pow(a, 5) + pow(b, 5) + pow(c, 5) + pow(d, 5) == pow(e, 5): total += 1 print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'e =', e) print('общее количество натуральных решений =', total)
2 способ, парня, который тоже только проходит курс, но уже включил голову:
from datetime import datetime start_time = datetime.now()
e = 0 f = 0 for a in range(1, 151): for b in range(1, 151): for c in range(1, 151): for d in range(1, 151): e = (a 5 + b 5 + c 5 + d 5) (1 / 5) if int(e) 5 == a 5 + b 5 + c 5 + d 5: print(a, b, c, d, int(e), 'sum =', a + b + c + d + e) f = 1 break if f == 1: break if f == 1: break if f == 1: break if f == 1: break
3 способ уже от какого-то опытного парня, который ил с других языков перекатывается или просто опытный в Питоне (или матеше/логике):
from datetime import datetime start_time = datetime.now()
arr5 = [i 5 for i in range(2, 150)] # массив пятых степеней abc = set(a + b + c for a in arr5 for b in arr5 for c in arr5) # варианты сумм а^5+b^5+ c^5 de = set(e - d for e in arr5 for d in arr5 if e - d > 0) # варианты разности е^5 - d^5 res = abc & de # пересечение вариантов
# находим a b c для верных ответов abc_res = [[a + b + c, a, b, c] for a in arr5 for b in arr5 for c in arr5 if a + b + c in res]
# находим d e для верных ответов de_res = [[e - d, e , d] for e in arr5 for d in arr5 if (e - d in res) ]
elist = [] for i_res in res: # исключаем повторения for i_abc in abc_res: if i_res == i_abc[0]: aa, bb, cc = i_abc[1:] for i_de in de_res: if i_res == i_de[0]: ee, dd = i_de[1:] if ee not in elist: elist.append(ee) aa, bb, cc, dd, ee = sorted([round(aa0.2), round(bb0.2), round(cc0.2), round(dd0.2), round(ee0.2)]) print(aa, bb, cc, dd, ee,'a+b+c+d+e=',aa + bb + cc + dd + ee)
>>2052468 Не знаю, что тут делать, типичная medium задача для литкода. Не смотрел твоё решение, делал своё, вывод чуть другой, чем надо https://ideone.com/BClUU0 >Success #stdin #stdout 0.33s 10696KB
>>2052507 Я больше анонам притащил посмотреть чтобы новички (как я) лишний раз удивились от того, насколько время выполнения кода зависит от скилла того, кто этот код пишет.
>>2052507 >>2052459 >Так что не гоните на Питон, что он медленный, если у вас код кривой Но вот с этим поддерживаю. Вот понимая питон, даже без математики можно довольно эффективно писать и компактно.
Обычно тормоза из-за того, что кривой код и элементарного понимания, что он делает, нет.
>>2052521 Ну это всё-таки классическая алгоритмическая задача под литкод. Подозреваю, что оттуда примерно.
Просто при кодировании тоже элементарно налажать. Классика, это проверки вроде some_value in list где список довольно большой, и всё это в цикле. Что работает медленно, элементарное преобразование в множество-словарь, и код разгоняется. Куча других таких моментов.
>>2052529 Главная особенность в том, что в питоне словари-списки это родные структуры, а как раз они позволяют оптимизации делать.
В плюсах, конечно, тоже словари есть, но уже в Си нет, надо подключать что-то со стороны. А вот пойди сделай это решение >>2052507 без словарей. Сдохнешь. Скорее народ приучается писать уровнем ниже и не делает оптимальных решений.
Это вот как раз почему круто писать на языках высокого уровня. Тысячи трюков есть, которые позволяют компактно писать и при этом быстро.
Само собой компилируемый код обычно можно более быстрым сделать. JIT не всегда поможет, вот в этом случае numba не помогает, поскольку оптимизировать построение словарей не умеет.
Но и в целом питон не для байтоёбства, где надо короткие циклы очень быстрыми делать. Обычно питон для сложной логики больше.
>>2052709 >Python входит в 10 самых востребованных языков программирования Кекнул с этого. Но вообще курс как обычно говно. Первый урок - что такое переменная, рассказываем 1 час, практикуемся 3 часа. Урок два - что такое луп, 1 час теории, 3 практики, 3й урок - что такое функция, час и три, урок 4 - пишем бота для телеги ололо, 1 час теории и 3 практики. Ну еба-боба, хорошо он хоть без nltk, склерна и пайторча хотя бы, хотя там в функциях было "использовать сторонние библиотеки". И это все в браузерном иде, ммм, вкуснота. Кабанчики конечно красиво страницу сделали.
>>2052191 в смысле английские? на каком же языке он вещает? >>2052651 пиздец, можно подумать что табуляцию ты автоматически в голове еще не проставляешь? да ты должен табуляцию проставлять мысленно уже даже статьям в газетах
>>2037483 (OP) Парни, кто шарит в Джанго, почему django ORM добавляет моим query двойные кавычки? Например Chat.objects.filter(updatedts__gt=0).values_list('id', flat=True) превращается в:
SELECT "xer_service.chat"."id" FROM "xer_service.chat" WHERE "xer_service.chat"."updatedts" > 0
Из-за этого мои запросы в postgres не проходят, приходится сырые query использовать. Как это фиксится?
>>2052861 >да ты должен табуляцию проставлять мысленно уже даже статьям в газетах иди-ка ты хуйца сосни. я ничего тебе не должен, за свой говнокод и фейл в оформлении в ответе только ты.
>>2052757 Так этот курс чисто демо-версия. Вангую что там каждые полчаса будут говорить в духе "Ну вот мы сейчас эту тему быстро и неполно рассмотрим, но если вам интересно, то у нас тут есть курс за 19.999..."
>>2052861 > в смысле английские? на каком же языке он вещает? На английском. Просто я на слух плохо воспринимаю английский, а вот с субтитрами нормально, поэтому для меня это важно
>>2052452 На заметку хозяйке, на орелли есть триал на 10 дней, с доступом ко всем книгам. Там есть практически все. Через 10 дней регаешь новую почту и поехал там даже мыло потверждать не надо
>>2037483 (OP) Python for kids реально фо кидс? Друг, который вообще ничего не знает о информатике, попросил что-нибудь для развития кругозора и "сменить тип деятельности".
>>2053143 В твоем кейсе еще можно создать словарь вида {'янв': '01'} и возвращать по значению из него, так будет красивее. Да и можно погуглить, нет ли в стандартных библиотеках готового переводчика текста в дату, что-то мне подсказывает, что есть. мимо великий программист
>Ух, кайфовая задачка, в ЕГЭ по информатике есть она, те кто сдавали должны сделать. А те кто не сдавал помогу, задачка в целом не сложная, главное не запутаться.
Пришел на бесплатный курс по Питону, а тебя там ЕГЭ пичкуют. Ебанись.
>>2053225 >В твоем кейсе еще можно создать словарь вида {'янв': '01'} и возвращать по значению из него, так будет красивее. Не будет, код создания словаря будет таким же страшным, как простыня из if-ов.
Словарь разумен, когда: 1) у тебя действие в нагруженном цикле, ты его создаёшь один раз вне цикла. 2) он прилетает откуда-то снаружи, определён в другом месте, может вообще во внешнем конфиге или БД. Так ты сможешь править месяцы, добавлять варианты, не залезая в код, что очень правильно. Например захочешь добавить в январь-февраль-март січень-лютий-березень соответственно.
>>2053144 Точно в кавычках Пускал эти query в psql утилите - без кавычек все работает. Проблема в том что кавычки должны быть заюзаны вот так: "xer_service"."chat"."id" - то есть 3 компоненты выделено (название схемы, название таблицы и название колонки), а не 2 как у меня бля как же я ебал эту джангу, просто ебанутый фреймворк
>>2054030 > анкул Учи, я в прошлом году за лето прошел всего красного мерфи, потом бросил и в этом году примерно в апреле уже продолжил заниматься потихоньку, но с синим мерфи, параллельно на ютубе отдельно темы какие-то смотрел. Начал Гарри Поттера читать и кое какую техническую литературу. Гарри Поттера уже страниц 80 прочитал и всякой технической литературы наверное наберется страниц 200. Недавно пробовал с субтитрами Фореса Гампа смореть, было нормально, хотя конечно держал переводчик под рукой и постоянно на паузу ставил чтобы вникнуть в субтитры. Сейчас в оригинале портал первый прошел и второй начал проходить, тут уже потруднее, но процентов на 65 я все понимаю, кое что просто из-за усталости уже пропускаю и довольствуюсь тем, что хотя бы отдаленно понял смысл, и не лезу в словарь
>>2054103 пришлось переводить промтом из английского на немецкий. проще на русский >>2054065 довольно много... а что? >>2054269 ну вообще я знаю английский на том уровне, чтобы понимать смысл написанного или например слова в фильме на 70-80% Но это за счет того только что я смотрел фильмы на английском еще с гнусавым переводом володарского и играл в игры без перевода озвучки, с сабами. Естественно что нормально я понимаю обычную разговорную речь, то есть типа ват ю дуинг, коксакер, ват зе фак, бастард и т.п. А вот в документации там специфические слова, которые в обычной речи не используются например, приходится смотреть перевод \. Я даже технический английский по тачкам типа драйветрейн, гирбокс, драйвешафт, строке и т.п. знаю лучше чем спицифику типа СИБЛИНГС блядь. файнд некст сиблинг, чего блядь?
>>2054275 Потому что немецкий и французский учили в школах активно еще при СССР. После развала уже английский стал гораздо популярнее (но это субъективно, может где статистика есть).
>>2054275 >я понимаю обычную разговорную речь, то есть типа ват ю дуинг, коксакер, ват зе фак, бастард и т.п. А вот в документации там специфические слова, которые в обычной речи не используются Пиздец, хомо советикус in real life Я б поостерегся такое существо даже близко к любому Белому Человеку подпускать
>>2054296 Но в классе Prop же есть конструктор, и скорее всего он что-то делает? Например инициализирует какие-то объекты внутренние. Для этого ты его и вызываешь.
>>2054275 >с гнусавым переводом володарского Ты дед
>А вот в документации там специфические слова Как раз они очень нужны, даже если тебе документацию кто-то переведёт, то названия функций-классов, докстринги вряд ли.
Мне кажется обычно всё-таки проблема со сложными оборотами и с тем, чтобы самому мало-мальски грамотно что-то изложить.
>>2054302 В данном случая тут явно просто демонстрация ООП и переопределения конструктора. Переопределённый только печатает сообщение, и всё. Естественно можно целиком выкинуть весь __init__, но вызов super().__init__() как раз оправдан.
Просто учебная литература с упрощёнными примерами.
>>2054302 Может пример некорректный, у родительского класса есть инит, в дочернем ты его переписываешь, но тебе надо добавить всего одну строку и поэтому ты пишешь строку, а потом вызываешь инит родительского класса
>>2054304 >>2054305 Типа, получается, оно нужно, чтобы я мог добавить что-то своё, аля класс с домом и я добавляю, что конкретно в этом доме живут хохлы?
Вопрос сопряжен с линуксоидной темой, но похуй. Кто ставил на Debian/Ubuntu 20/Mint 20 питон через pyenv? Если да, то не решали ли вы проблемы с libffi.so.7? Все нужные пакеты стоят, эта либа есть в /root/lib/, но ни одна версия питона поставленная через pyenv не хочет работать совершенно: init.py выдает "ImportError: libffi.so.7: cannot open shared object file: No such file or directory"
>>2054308 Именно, даже скорее есть дом, у дома есть метод заселить_хохлов, а ты можешь добавить в этот метод что перед заселением еще вызывется метод отключить_газ