Это копия, сохраненная 9 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вышел второй релиз кандидат для версии 3.11 с бустом производительности. Строим планы на пятилетку, когда питон разгонится до отрицательного времени исполнения и потребуются процессоры с отрицательной тактовой частотой.
Предыдущий: >>2446437 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://www.codepile.net/ - можно расшарить код в том числе на редактирование, особая полезная опция - чат при каждом листинге, где можно код обсудить
https://pyfiddle.io/ - запуск python кода онлайн, но чтобы шарить, надо регистрироваться
#######################################
ЧаВо: https://github.com/TheKnightsWhoSayNi/info/wiki/Hat Актуальность примерно 2015 года
Вопросы-ответы:
— А стоит ли читать Лутца, том номер 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/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
Исходник: https://dumpz.org/bASGKD8cCFDf
>почему значок не желто-блакитный
Кто придумал этот "блакитный"? В известной песенке
> Під синьо-жовтим прапором свободи
На ОП лого питона, если его подсветить фиолетовым фанариком.
нужно писать ЖОВТО а не жёлто
>Очень годный ролик на американском языке про многопоточность и асинхронность
Как же заебала эта мразь.
За 7 лет сколько это ролик в шапке питонячего треда, можно уже другую ссылку поставить?
Он не годный.
Это единственная проблема шапки?
>— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
>Вот, пожалуйста, та же самая программа, но переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
Человек, написавший это, не читал ни sicp, ни свою хуйню. И тем не менее написал. Теперь мир стал чуточку хуже из-за него. И спорим что этот чел свято уверен, что никак не повлиял на ввод войск на украину?
Работая сись админом понял чем хочу заниматься,
гуглив, выбирая из c#, node.js, python, go,
выбор пал на питона, хочу вкатиться в DevOps,
По жизни кодил мало, еще в на засратых курсах, давно короче, линуксом не пользовался, планирую поставить ubuntu и изучать его попутно.
По поводу питона, хочу найти курсы на торрентах, которых миллион, что же выбрать?
В шапке какие-то мутные ссылки, большинство не базовые и упор держащие именно на синтаксис языка,
Хочу общий начальный курс питона с торрентов, который наведет на путь истины и даст возможность изучать более сложные стези языка, желательно на русском, уровень английской B1, средний.
Кто уже крутится в этом, какой курс вы бы посоветовали, так сказать с нуля? Или может быть книгу?
По поводу Луца, 1.3к страниц, надо ли?
Посмотри на "автоматизацию рутинных задач на питоне", думаю это больше зайдёт. Лутц совсем так себе вариант
Да ладно, упругие деды в лайвкодинге разбирают кишки питона. Есть что лучше?
Шапка устарела вообще:
Лутц в принципе говно, неправильно его форсить в шапке. Don't think about yellow elephants.
Харьянов на любителя. Джанго уже четвертая версия. SICP говно, от него даже в MIT отказались, а питон-курс только частично на питоне, потом они меняют его на схему и вообще неполный.
Ну так поставь, кто мешает?
>я раз в год пишу это сообщение, кстати
я заметил, я пытаюсь понять, что у тебя за травма такая, что конкретно этот ролик тебя задевает, а всё остальное норм.
Что толку от ссылок на АПИ, когда ты не понимаешь кишки, как всё это работает? В механизме асинкио очень неочевидные кишки. Причём сейчас они ещё глубже спрятаны. Но понимать их очень-очень полезно.
>>462887 (Del)
Предложи нормальный вариант. Пока были только ссылки на свою страницу от какого-то анона, но там был какой-то непригодный рандомный шлак
Меня больше всего раздражает пункт с джангой, потому что сейчас совсем другие версии. И отсылка к Лутцу.
Харьянов и SICP в меньшей степени.
У питона хороший учебник в официальной документации, в шапке ссылка
https://docs.python.org/fr/3/tutorial/introduction.html
Вот нашёл перевод документации на русский язык
https://digitology.tech/docs/python_3/tutorial/introduction.html
Я бы вообще рекомендовал всем не искать книги левые и курсы, а начинать с официального учебника от сообщества. Он действительно хороший.
Мы об одном и том же ролике говорим? Ты его смотрел? Я не вижу там никакого перечисления АПИ и никаких рекомендаций в духе how to. Обычно все ролики показывают примеры, как что-то сделать.
А там другой концепт, "хочешь понять как работает операционная система - напиши свою собственную". Вот там начиная с базы показывают проблемы тредов и шаг за шагом строят модель свой собственный event loop. Как посмотришь, так сразу будет понятно, как это работает.
Ты прав в целом. Но у питона есть отличие от других языков: питон вырос в академической среде, он пришёл оттуда. В этой среде очень много тех, кто специализируется на образовании и умеет учить, составлять материалы обучающие. Поэтому и для питона сделали очень хорошие обучающие материалы.
Официальные обучающие материалы по питону очень хорошие, образцовые. Ещё очень хорошие материалы по джанго. Вот со всем остальным уже слабо, хорошо если API мало-мальски адекватно задокументируют.
Короче, предлагаю обновление шапки, ссылка на новый исходник
https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
(dumpz больше не разрешает ссылки), ниже текст, другим постом комментарий
Тред, посвящённый языку программирования Питон, #149
Предыдущий: >>462085 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
Короче, предлагаю обновление шапки, ссылка на новый исходник
https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
(dumpz больше не разрешает ссылки), ниже текст, другим постом комментарий
Тред, посвящённый языку программирования Питон, #149
Предыдущий: >>462085 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
Изменения:
1) выпилено мёртвое хранилище книг, две ссылки, которые стали с регистрацией или антиадблоком, добавлена другая, где можно указывать код с url
2) выпилена ссылка на ЧАВО на гитхабе. Оно было старое и бесполезное.
3) переделаны пункты "что изучать", упор на учебное пособие от комьюнити, Лутц и другие косвенно.
4) Чуть подправлено про джанго, пара общих слов про фреймворки.
5) Ролик про асинхронность оставлен, ссылка на Харьянова оставлена, ссылка на Киви оставлена, ссылка на SICP оставлена. Пусть будут.
Мне кажется, надо изучить, что сейчас доступно по записям лекций. Наверняка что-то более интересное появилось.Но мне лень этим заниматься.
блин, это обрезанная версия, полная:
Тред, посвящённый языку программирования Питон, #149
Предыдущий: >>462085 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
блин, это обрезанная версия, полная:
Тред, посвящённый языку программирования Питон, #149
Предыдущий: >>462085 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей
#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.
— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
— А как учить джангу? Нахожу только книги по джанге 1.х
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.
— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.
— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: http://composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)
— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4
— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется
— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.
— Дайте нормальные книжки на русском! Мы, блядь, не в пиндосии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.
старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
>У кого предложения, тоже давайте сюда их!
Для автотестеров инфы бы. Хотяб абзац и/или ссылку для фронтеров и бекеров.
>Для автотестеров инфы бы
Если не брать синтаксис языка, то, думаю, книги с пика хватит. Сам не читал, не знаю настолько хороша англ. А у селениума хорошие доки, статьи в интернете - тут книги не нужны.
У тебя не будет нормального понимания, если ты просто будешь запоминать правила, как что-то работает внутри. Вот ты когда сам что-то попробуешь реализовать, или хотя бы посмотришь, как это другие делают, то сразу получишь огромный буст в своём уровне, многие вещи становятся очевидными, что до этого было непонятной магией.
Как изменить имя переменной? Дайте пример пж. Именно имя, словарь не хочу.
>Если ты не новичок - Седер читай. Это очень краткая книжка.
Тоже какое-то говно мамонта. Переизданное и подретушированное.
В книжке ни слова про typing. Ни слова про asyncio. Ни одного использования оператора := . Ничего про датаклассы, не говоря уже про внешние пидантики. Ничего про тестирование в unittest/pytest. Экскурса в продвинутые темы вроде многопотока тоже нет, хотя бы поверхностного.
f-строки есть, появились в 3.6, но это не делает книгу современной.
Ладно асинхронщина, это сложная нишевая тема, далеко не всем надо в принципе. Но нельзя в современном питоне без хотя бы поверхностного обзора аннотаций типов. Ты открываешь примеры документации и видишь там аннотацию, как этот код читать и понимать?
Это другая переменная. Ты создал новую и присвоил ей значение старой, теперь у тебя их две. А мне надо одну переименовать.
Тогда так
a = 10
b = a
del a
И у тебя снова будет одна переменная. Это переименование, ты можешь проверить по id(a), id(b). Надеюсь ты знаешь, что в питоне всё объект, а переменные всего лишь указатели на них.
Задавай следующий вопрос.
Ему без словаря надо. Выше самый адекватный способ.
Вопрос. А что если в условии задачи не стояла бы необходимость в замене города на дефис, что нужно прописать в тернарном операторе и почему его невозможно использовать без else ?
И почему тогда list comprehension на пик3 можно использовать и с else и без?
>тернарном операторе
>невозможно использовать без else
Тернарный без елс би лайк: в чем разница между уткой?
>можно использовать и с else и без
Наверное потому что не всякий иф создает тернарник, а в хвосте компрехеншнов иф имеет другое значение. Ознакомься с синтаксисом компрехеншнов и все встанет на свои места.
Переведен и украден свежий Рамальо https://t.me/it_books_tg_archive/824
Спасибо, почетайу
А мы не знаем. Ты же тут вкатун, а не мы.
И спросить по-честному не у кого. Ведь вкатунов, которые не вкатились тут нет по очевидной причине.
Смотря куда вкатываешься. В бэке вот не оч много пайтона. В дата анализе он по сути монополист.
:с
Я пишу асинхронные многопоточные приложения на питоне, а ты сосешь хуй.
смотря чему учится.
в аннотации написано что для продвинутых.
но ты можешь например начать с нее изучать asyncio, в отличие от невнятного ролика на "американском" языке
Выявил две опции:
1) from django.contrib.admin.models import LogEntry
2) pip install django-activity-stream
Первый вариант попроще, вторая сильно более мудрёная, но там и функционал более разнообразный. Сталкивался ли кто с такой задачей и\или юзал что-то подобное?
https://profidigital.gosuslugi.ru/courses/18733
https://skillfactory.ru/qa-engineer-python-testirovshchik-programmnogo-obespecheniya
Слишком дохуя часов на левую поебистику - первые три модуля. Вся ручная теория и тулы максимум 36 часов. И то если начать не с ютюба, а с Савина, в противном случае можно за 24 часа управится, вместе с практикой на тренажерах от комьюнити.
Слишком мало часов на питон и автоматизацию. Особенно учитывая, что это не чистые часы проведенные за кодом, а размазанные сопли "преподов" в видеоформате. Так что смело дели на два или даже четыре.
Алсо. С трудоустройством тебе не сильно помогут. Дадут шаблон резюме, может еще чатик с вакансиями, где сидят тысячи таких же как ты, на этом все.
Яб за такое даже 20к не отдал, даже не смотря на то, что вся инфа есть в свободном доступе, либо на бесплатных курсах. А уж 105к...
string = "" или string = str()
s = "" и только так. Тоже самое относится и к словарям со списками, через {} и [] соответственно.
Если короче, то создаю папку под проект, в ней папку например lib, куда кладу файлы скриптов. Как мне из lib вызвать класс Down, который лежит в файле down.py? from lib import down.Down?
Да, нормально. У меня так же.
20-40 минут погромирую на питоне асинхронные многопоточные приложения, потом около часа втыкаю в двачи/ютуб.
Можно, но нахуя? Со скобками нагляднее.
Есть смысл так инициализровать только пустой сет, потому что {} забито под словарь.
С кавычками то есть.
Очень некрасиво и ненаглядно. Со строками отдельный разговор, потому что строки это иммутабельный тип. Ты не можешь дополнить строку, ты можешь только перезаписать переменную новой строкой. Даже если ты делаешь
s += 'tail'
будет создана новая строка. Поэтому str() совсем лишено смысла.
Со словарями и списками это стандартная рекомендация и общепринятая практика, так нагляднее и не перегружено. Хотя в pep8 вроде бы ничего нет про это.
А ещё должно быть единство стиля. Пустые объекты это частные случаи просто объектов. Ты же стрки с содержанием не через str() создаёшь? И списки, в которых что-то есть, через скобочки скорее всего. И словари. Почему в случае пустых объектов должна быть особая политика?
Забей, там аргументов у него нет, одна вкусовщина
Начни с прочтения нескольких книг/статей/курсов, потом выбирай направление, фреймворк, дрочи их, пиши пет-проекты.
Вот тебе скрипт для проверки поёбанных и починенных после майнинга видеокарт.
https://pastebin.com/NFSaukdn
Меня впечатлило в своё время. Это тебе не символы считать в задачках для даунов.
Клавиатура прикольная в питон-цветах. Где такую купить можно, если в МСК?
Это украинские цвета
Это так, но если ты не тупой, то тебе это не помешает.
Так, но если у тебя знаний больше чем у них, то поебать. Ну вернее не совсем поебать, если тебя отфильтруют до того как ты эти знания сможешь продемонстрировать, надо ведь сначала до собеса дожить, или хотя бы тестового, но дальше уже поебать.
https://www.youtube.com/watch?v=PTTIZ8EmbEQ
С чего ты взял, что это питон?
А так, стандартный пигейм, но хз, сможет ли он в такое, я с ним не возился.
Предположил что питон, там много библиотек для раьоты с данными, думал просто где-то библиотека с визуалом прикручивается
Я глянул список его видео, там есть про это, какая-то кастомная хуйня.
https://www.youtube.com/watch?v=uI2WqUa8FaI
p5.js глянь.
пайгейм, матплотлиб
Кормит
Когда переходишь в определенные типы проектов становится вообще похуй что там на вебморде
а на основе чего вы собираете свои docker-образы? чёт на убунте как-то жирно по 600мб по сети гонять
говно на musl жеш
А в чём проблема то? Качай питон, качай любую идешку и вперёд щас бы деньги за иде платить лол
Если ты не додумался спиратить пайчарм или скачать бесплатный визикод, то не надо тебе в питон, у нас тупые, но не настолько.
Анон про другое я думаю. Базовый образ очень большой, он 900 мегабайт. Если ты на его основе делаешь свой образ, от будет ещё больше. Если ты по сети гоняешь готовый образ, то будешь гонять все 900 мегабайт. А собирать на другой машине докер тоже не вариант, потому что тебе внутрь надо класть какие-то данные с машины разработки.
Альпина в чистом виде не совсем пригодна, потому что там нет возможности собирать некоторые вещи.
Самый правильный подход в этих случаях, это двухшаговая сборка. Когда снячала на основе тяжёлого образа собирается всё, а потом копируется в лекговесную альпину нужные файлы и окружение. При желании можно вообще с нуля собирать сумерлёгкий образ, но это извращение и так не принято.
Ты эти 900 метров гоняешь один раз, и то если у тебя нет в кэше слоя с убунтой от другого образа. Дальнейшие обновления будут гонять только изменившийся слой, то есть твои 2кб говнокода.
Это если ты настроишь локальный репозиторий, а не будешь гонять образы целиком. Но для этого его надо создавать и настраивать, организовывать процесс, чтобы закачивать туда образы и т.п. Наверное это правильно, но сложно.
А вот отправить образ целиком - просто, через docker image save
Кэширование слоев работает независимо от того, что за репозиторий используется. По-дефолту передаются только недостающие слои.
https://www.youtube.com/watch?v=eTucYT2LpNU
Это как?
Вот я делалаю
docker save -o exprort.tar my_image
и получаю огромный tar-файл. Я могу его только целиком выслать. А на другом компьютере его уже загрузят
Надо сделать докерфайл, который развернет такую хуйню на основе стандартной болванки, ты же просто развернутую хуйню пересылаешь, это бессмысленно.
Ломающие изменения в минорном релизе, например. Или что какой то долбоеб решил что большие числа это волнерабилити, может тогда все вычисления без доказуемой константной стоимости выкинуть, хуле.
Я другой анон, чем вот этот >>466010 но его проблемы понятны.
Ты не можешь взять и собрать образ по докерфайлу. У тебя в докерфайле будет что-нибудь вроде COPY app /app, ты копируешь локальный каталог в образ. Но на билд-сервере не будет этого каталога. Тебе надо как-то тогда решать вопрос с этим. Например выкачивать из гит-репозитория. Или выкачивать архив. Но это лишняя возня.
Намного проще, если ты создаёшь докер-образ, высылаешь его на другой компьютер, там его загружают в систему и гоняют какие-то тесты. Чисто для разработки, для тестирования. Хотя наверное это колхоз.
Видео посмотри. Выкинули потому, что это угроза безопасности. И не афишировали, чтобы не привлекать внимание и чтобы не бросились эти возможности использовать.
Арифметика с большими числами сохраняется. Они убрали только возможность печатать сверх большие числа в недвоичном виде. Но зачем тебе на экране число в 10 тысяч знаков? Причём если надо, то исправляется одной строчкой.
> Например выкачивать из гит-репозитория.
Он уже должен быть при разработке. Но возней ты считаешь это, а не пересылание гигабайтов бессмысленного говна.
Не всё нужно хранить в гите. У тебя может быть масса отладочных артефактов, они нужны для запуска отладочной копии, но не нужны в гите. Тебе могут понадобиться какие-то медиа файлы, которые ты не хочешь держать в гите. Даже код, у тебя может быть тестовая версия. Я так понимаю, что тут вопрос отладки.
Другие нюансы: у тебя образ собирается например
FROM python:3.10
а вот здесь >>466403 приводится пример, что после минорного апдейта по разному работают интерпретаторы. Вот пусть ты печатаешь число в 30k знаков. На одной версии работает, на другой нет. Как отлаживать?
Я то видео смотрел, но только я не такая внушаемая Манька как ты и если мне на говно говорят это не говно - я все равно не поверю в это.
> Но зачем тебе на экране число в 10 тысяч знаков? Причём если надо, то исправляется одной строчкой.
Чтобы посчитать любимый факториал, зачем еще скриптовое говно нужно. Откуда я вообще просру про эту строчку и нахуя мне это надо, я просто хочу нормально работать с длинной арифметикой и мозги не ебать.
А эти "срочные" обновления для вашей же безопасности это вообще отдельная тема для рейджа. Индустрия пизданулась, уж лучше сидеть по 50 лет ничего не обновлять чем так.
>предлагает собирать образы из артефактов мимо контроля версий
>видимо не в курсе существования веток
>не указывает конкретную версию корневого образа
>На одной версии работает, на другой нет. Как отлаживать?
Я бы начал с найма кого-то компетентного.
Так а как установить? Я вроде setup.py, pyproject.toml, прописывал __version__ в __init__.py, нихуя не сработало. Может я на каком-то моменте проебался просто.
Не, там говноскрипты для развертывания окружения и файлы кастомных пакетов, не должно ломаться.
Ну у меня после перетаскивания и активации пипки команда
pip -V
начинает выводить ошибки (в активной (.venv) оболочке), либо ссылается на глобальную пипку (C: appdata).
Глянул, там есть зачем-то хардкод пути в activate.bat для шинды. Можно там подкрутить попробовать, ну или фризить и разворачивать наново.
Да у меня даже на линуксе часто проблемы с этим были, походу да, лучше фризить и переразворачивать.
Вроде есть какой-то аргумент --relocatable, но есть подозрения один хер где-нибудь будут абсолютки.
Стоит ли дальше учить пистон этот ваш или лучше в Джаву катитьсякак же я не хочу писать эти ебучие джава-простыни на весь экран
> Ниже пишут, что языки с динамической типизацией говно и используются чтобы написать пару скриптов, а нормальные продукты пишут на Java или С++.
Ну и ты пиши, если хочется.
return redirect('/index', code=307). Выдает 405 Method not allowed, хотя в справочнике кодов HTTP четко указано, что лучше применять 307 вместо 302.
НИ РАЗУ за дохуя лет не видел 307. 302 или 303 для редиректа, 301 и 304 для некоторых других целей.
По 307 написано, что надо использовать тот же метод, у тебя есть ручка пост на /index?
По твоему вопросу видно что ты не знаешь чего хочешь.
Если ты хочешь научиться кодить ты должен хотеть кодить.
Ты должен хотеть хотеть писать свои программы, решать свои задачи.
Годно для новичка?
Сделал include "_style.html", в нем пишу
{% for style in stylesheets %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/style') }}">
{% endfor %}
Естественно это не работает. Как добраться до переменной style?
Сделал так, но чувствую, что можно было бы сделать изящнее.
{% for style in stylesheets %}
<link rel="stylesheet" href="/static/css/{{ style }}">
{% endfor %}
>Годно для новичка?
Кстати очень прилично, и даже не только для новичков, там продвинутые вещи есть и как-то очень внятно изложены
>>468759
Ещё чуть дополню, вряд ли это может быть пособием по введению в программирование с нуля, но если самую базу на любом языке умеешь, то уже нормально.
Что самое главное, там много именно специфики питона. Там есть про современные вещи, вроде асинхронности, тайпинга и датаклассов. С эти беда у подавляющего числа книг, я реально ни одной книги рекомендовать не могу из-за этого.
Очень годное собрание. И воды мало.
Хочу присвоить css-атрибуты полям формы. На SO пишут, что можно делать что-то типа class_=".btn-primary" прямо в аргументах wtforms. Насколько это правильно? Есть ли другой способ, потому что во всплывающих подсказках по формам нет такого аргумента как class_.
Калькуляторы писать не интересно, а ничего кроме них на ум не приходит
Криптографический алгоритм какой-нибудь реализуй, лол.
https://www.youtube.com/watch?v=XKHEtdqhLK8&t=1873s
так вот, как лучше это реализовать?
Древнее говно мамонта.
Про TCL\Tk который у него там внутре уже никто и не помнит.
Но под задачу подходит, даже можно кроссплатформенное приложение наваять.
Ну так включи и посмотри, сделай выводы, удобен он для тебя или нет. 12 часов, не так много.
Но если ты думаешь, что за 12 часов много чему научишься, то нет, не бывает так.
Пикрил результат
ЧЯДНТ?
В пайчарме работает, но судя по гайду это нужно вводить не там
после if в следующей строчке должна быть отбивка табуляцией или пробелами того, что под if
Затуп на 10 минут. В итоге понял, что нужно нажать таб после if и перед print. Вроде сработало. Я правильно понял? Пока что не совсем понимаю логику этих действий, надо поискать статью отдельную
Ясным текстом написано "expected an intented block after 'if' statement.
Сука, какие же вы тупые, пиздец просто
В питоне нет скобок и группировка выражений в условных операторах и операторах цикла достигается табуляцией.
А может это ты пидор
С кроссплатформой точно ебнется
ПЛЮСКОВ АЛЕКСАНДР НИКОЛАЕВИЧ16.6.1987ОБЛ. НИЖЕГОРОДСКАЯ, Г. ВЫКСА, МКР. ГОГОЛЯ, ДОМ 49, КВАРТИРА 202208088371ОТДЕЛЕНИЕ УФМС РОССИИ ПО НИЖЕГОРОДСКОЙ ОБЛ. В ВЫКСУНСКОМ Р-НЕ
Собирай вещи, сынок. Пора защищать Донбасс
Жид брейнс уже в списках скилов?
Напиши гуишную программу, чтоб клиент для кубернейтса, редиса, постгри был сразу. Вкладки или еще что угодно.
Для кубов, просмотр подов, секретов, возможность удалить, масташтабирование и т.д
Для постгри - структура таблиц, вьюх, триггеров, возможность выполнять запросы, модификация полей после вывода и т.д
Редис - просмотр баз, просмотр содержимого, поиск ключей и т.д.
Все это не трудно, просто обертка над консольными программами. Если отсутствуют - предложи скачать
Сделал возможность запостить без обновления страницы на своей борде, которую просто так делаю для себя самого
Есть две фотки, одна побольше, другая поменьше. В той которая поменьше есть альфа канал и она меньше чем первая.
Как ее наложить на первую с прозрачностью? ОпенЦВ ебет мозги, что они разных размеров.
Вообще в целом мне подойдет, если подскажите как ресайзнуть изображение, чтобы оно увеличилось в размере, но сама картинка осталась нетронутой, просто по краям увеличилось место с прозрачностью.
cycpyton интерпритировать в Си, но тогда нужен ли Wsgi 2 , написать отправку на плюсах и вообще через gstreamer.
Две недели отпуска прошли.
Я как-то 3 дня убил, чтоб один символ поправить. Но там ошибка локально не ловилась, а на проде подробного логгирования пользовательских данных не было.
Почти разобрался, дело осталось за малым
Код пикрил выдает ошибку error: (-215:Assertion failed) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'binary_op'
Маску при этом выводит нормально, как и должно? Что я делаю не так? Я даже не нагуглил, что эта ошибка означает. В результате должна получиться одна картинка наложенная на другую по маске.
Хуя ты крут!
Въебал пару дней на алкоголь, рикаминдую.
Ты что-то напрягаешься,таски-хуяски, стресс. А тут пару дней пропало, почта ломится, все ноют, а ты лежишь и чувствуешь облегчение.
Потом догнался, отпизделся и по новой. Красота.
Хотелось бы ещё заноркоманить, но это меня убъёт, жалко.
>покажет все
если ты ничего не знаешь, то тебе не нужно "всё"
начинай с простейших примеров и по нарастающей
Бампану.
Ебать ты вкатутося
гайс ответьте
Хеллоу работяги. Какие шансы вкатиться без матеши? Никогда не понимал как работают задачи и алгоритмы.
Cап аноны.
Даётся массив чисел и какое то число x. Нужно найти в этом массиве 3 значения сумма которых наиболее близка к данному числу x.
Короче я сам делал, но на сайте пишет что код нихуя не оптимальный и занимает слишком много времени. Потом я махнул рукой и скопировал чужой код (кстати алгоритм как у меня, но чуть чище и лучше написано), но сайт его тоже не принимает. Как тут можно ещё оптимизировать?
https://codeshare.io/OdvJW7
https://www.youtube.com/watch?v=5g-MHZ0MzZY&ab_channel=PythonHubStudio
Для РАБоты нужно хуйню автоматизировать, в программировании я как в сексе чисто листва 33 уровня, спиздил с девтулсов хрома хттп запрос powershell, работает как часы
Попытался по старой памяти че-то на c# высрать, нихуя не получилось, прыгнул на питон, тут все как-то почеловечнее, все равно нихуя 401 unathorized
Помогите пожалуйста понять где я еблан а где я хуесос
Кукисов там добавляется штук 20, я подтер их на всякий случай:
https://pastebin.com/yvun88GJ
Это у тебя какой-то бинарный поиск в две стороны сразу. Но какой от этого профит в данном случае, хз, не проще ли просто брать про три значения с начала?
Кукисы могу и протухнуть, это далеко не гарантия что такой же запрос пройдет дважды.
так в том то и дело что я каждый раз пробую павершел запрос, всё работает как часы
Ну, то, что у тебя в по ссылке на питон не похоже ни разу, берешь реквестс, там и даун разберется.
Есть класс сессии, можно туда напихать печенек и заголовков.
https://requests.readthedocs.io/en/latest/user/advanced/
я пытался, бро
но я валенок, нихуя не выходит
тупо powershell до буквы на питоне переписываю - похуй ноль реакции
Добился того что оба запроса выглядят АБСОЛЮТНО идентично (чекаю в фидлере), павершел по прежнему 200 в любой ситуации, питон 401
Памагити пж :(
Покажи пикчу.
Как сделать так, чтобы по переключателю (radio) в HTML открывалось или закрывалось дополнительное текстовое поле под ним? Я даже не знаю как нагуглить такое, сорян.
Раньше такое делалось на жквери и гуглилось за пять сек. Сейчас за жквери закидают ссаными валенками, но тебе сойдет небось. Но нормально гугли, по-английски.
Я не фронт вообще, чтобы в это говно лезть.
Я тоже не шарю в этой теме. Спасибо, попробую нагуглить что-нибудь.
это ни разу не бинарный поиск потому что j k меняются максимум на единичку за цикл
Ну короче, я почитал, это реально вариация на тему бинарного поиска. Вместо три раза брутить тот же список вложенными циклами он сортируется и потом индексы сдвигаются с одной из сторон, если сумма больше или ниже ожидаемой. Третий индекс просто идет с начала.
Компуктер саенс!
>Какие шансы вкатиться без матеши?
Математика и не особо нужна. Даже в дата саенсе там она на уровне первого курса тех вуза.
Сортировки всякие, поиски знать надо. Но это всё осваивается быстро.
>буквы можно множить на буквы какой долбоеб это придумал
Хз о чем ты, но наверное можно. Представь вместо букв цифры, например 2 x 3 это 2 + 2 + 2 или 3 + 3. Что тебе мешает вместо цифр подставить буквы и сложить букву a b раз?
По факту тебе нужно освоить всякие мелочи, адекватно называть переменные, соблюдать стиль кода, писать максимально понятно, чтобы любой кто будет допиливать код после тебя легко понял что ты там хотел сделать. Комментировать свой код или писать документацию.
На самом деле от большинства кодеров никто не ждёт что они будут изобретать охуенные алгоритмы или высчитывать миллионные цифры после запятой в pi. Достаточно просто хорошо делать свой минимум и этого уже достаточно чтобы вкатиться в айти. Даже вышка не нужна.
Менторишь? С чего начать в питоне? Я неосилятор гуманитарный и боюсь обосраться в прогерстве.
Скинь для начала свой анус с супом в тред, а дальше я подумаю менторить тебя или нет.
>>import random, time #не работат, а
>>import random
>>from time import sleep #работает
v3.8.9
поясните
тебе жалко что ли?
В StrictRedis
Бамп
feez, buzz = func_with_yield()
Да, делай.
гугли curlconverter
также копируешь в дев тулзах curl запрос и прогоняешь его через эту хуйню
Отсюда вопрос - с чего быстрее вкатиться, минуя темы для нюфань про алгоритмы, ооп, классы, и всякое такое?
Только дроны для сборки мусора.
Нет. Ты че, ебанутый. Это гражданскую поеботку еще лепят на питоне. Хули там задач то, слетать по координатам, сделать фото в нужных точках.
В том же мавике какая-то своя хуйня на основе, емнип, руби, для пульта и связи с ним. И чето низкоуровневое для железок дрона.
Допустим есть list [0,2,5,7,12,6,9,1]
Я итерирую с середины списка и дохожу до 12. Как мне узнать, что он на 4 месте?
Фундаментально? Веди подсчёт, на каком по счёту элементе ты находишься. Потом значение этого счётчика возвращай.
Есть несколько функций, которые сделали это за тебя.
Чёт глянул на for с enumerate и проиграл - это ж ебать создаётся объект-корутина, который на каждой итерации for возвращает кортеж, для которого делается flatten. При этом счётчик в цикле или range() считается non Pythonic.
Тебе шашечеки или ехать?
>объект-корутина
Это ты closure так "перевёл"? Корутина это отдельное понятие, и оно тут не при чём.
И где ты flatten нашёл?
Вот дока:
https://docs.python.org/3/library/functions.html#enumerate
Написано:
Equivalent to: ... yeld ...
Выглядит как ко-ко-ко-рутина, которая по совместительству closure (лямбда-функция) в контексте вызова.
Вызов видимо такой:
for idx, val in enumerate(list) : print(idx, val)
где idx, x и есть flattening кортежа
Клозуры это не корутины, хз с чего ты это взял.
>где idx, x и есть flattening кортежа
Ты имеешь в виду destructuring? Flatten совсем другое понятие.
>генераторная функция
Она называется "функция". Но по факту это безымянный объект, хранящий состояние для возврата управления через yeld. Да, это не асинхронный вызов выполнения работы в отдельном потоке. И естественно, что по сравнению со счётчиком, эффективностью тут не пахнет.
>распаковка
Ну да, а как ты ещё доберёшься до полей безымянного кортежа, возвращаемого методами типа __next__()?
Слыш, ну чо ты сразу с козырей-то заходишь? Дай поцану объяснить тебе, как он это видит. Он лучше знает, что эффективнее, чем какой-то там таймер.
>Клозуры это не корутины
Я этого не говорил. Closure - это лямбда. Вызываемый объект, захватывающий параметры из области видимости.
Корутина тоже вызываемый объект, но она хранит состояние, которое влияет на результаты вызова. Может быть ленивой и выполняться отложено в том же потоке (это генератор) или собственно асинхронной (это видимо питонячья корутина).
>destructuring
да
Хз, ни разу не видел, чтобы генераторы корутинами называли. Так-то и мотоцикл можно машиной назвать, он ведь это техническое устройство, выполняющее механические движения для преобразования энергии, материалов и информации, но во избежание путаницы так не делают. Так и тут, есть устоявшееся понятие для сабрутины и для генераторов (которые в определённой классификации являются их сабсетом) его не применяют.
совсем чота жестко приложил чувачка
И чё ты этим сказать хотел? Что операция доступа по индексу в цепном списке это долго? Тебе же сказали что надо счётчик использовать.
Не надо хвостом вилять. Разница не так велика и вангую из-за того, что ++ и -- не завезли.
То что в доке написано "equivalent" работает в несколько раз медленнее. Очевидно встроенный enumerate как-то дополнительно заоптимизирован.
range тоже не так плох. Хотя доступ через [] тянет за собой лишнюю арифметику.
>питоник вей
Python’s lists are really variable-length arrays, not Lisp-style linked lists.
Список это не список, а генератор это не сопрограмма.
Ладно, попробую как-нибудь затерпеть. Деваться всё равно некуда.
list.index(value)
я человек - корутина
dct = {'person': {'in_dict': [1, 2, 3],
'after_list': {4, '5'},
'after_set': ('hello', )}}
'in_dict' ,(1,2,3) : value
'after_list , (4, 5) : value
'after_set , ('hello') : value
Я так понимаю такой результат нужен
Реализовать способ, при котором каждый элемент данного словаря (ключ и значение) станет ключом в другом словаре. Если в качестве значения выступает последовательность (список), значит – каждый элемент списка становится ключом + сам список также становится ключом (для этого превращаем его в кортеж). Помним: цикл может включать в себя вложенный цикл. Сам функционал нацелен только на этот словарь.
Нужно через дикт компрехеншен делать у меня пока только с третим вышло
dct3 = {element: element for element in zip((dctKeys[2], dctValues[2]), dctValues[2])}
и выводит:
{('after_set', 'hello'): ('after_set', 'hello')}
Такое впечатление что эти задания на курсах придумуывают специально чтобы поиздеваться.
Я хз, только начал принюхиваться. В Сисечке нет ссылок, кста.
Есть два массива float, нужно из обоих поэлементно сравнить значения и в зависимости от результата сравнения по-разному посчитать значение, которое в итоге должно пойти в третий массив. Как лучше осуществить это? Сам ничерта не понимаю.
Т.е. условно первый массив [1.5, 7,8], второй - [0.5, 10.6]. Если значение первого массива больше, оно делится на значение из второго, если меньше - наоборот. В итоге должен получиться массив типа [3.0, 1.358].
Это скорее хорошо. Хоть голова работает
> не видел, чтобы генераторы корутинами называли
Видел еще лет 10 назад как к генераторам приделывают трамплин какой-то и получаются типа корутины. Нахера это надо народному хозяйству я так и не понял.
>Нахера это надо народному хозяйству я так и не понял.
На случай, если генераторы есть, а корутин нет (во всяком случае на вики так написано)
Нет, там идет итерация, а не просто высчитывание индекса, в зип ты можешь генераторы засунуть.
https://ideone.com/vhh2HO
Там на методы нужно декораторы цеплять чтобы экспешены хэндлить. При этом декораторов может быть несколько. Мне нужно добавить возможность в рантайме добавлять/удалять эти декораторы при каком-то условии. Как это лучше сделать? Пока что план вешать 1 декоратор с списком пар эксепшен-колбэк, а этот список как раз в рантайме генерировать. Какие есть ещё варианты и чтобы много не переписывать?
Есть ещё вариант в декораторе добавить опциональный аргумент кондишен и если он false, то игнорить этот хэндел и уже в рантайме нужным хэндалам проставлять этот кондишен в зависимости от рантайм данных. Что ещё можно придумать и какой вариант лучше?
Ну писались эти хэндлы до меня. Мне новый нужно добавить. Но чтобы работал он когда процесс в определёном окружении запущен. Метод детекта окружения я сделал. Теперь бы как-нибудь этому хэндлу сказать срабатывать только в нужном окружении. Дргие хэндля переписывать не хочу. И сделать хочется красиво, а в голову одни костыли лезут
он же будет на сам репозиторий ссылаться, не? Или ты предлагаешь как свойство прописывать класс используемой модели в репозиториях?
Не очень тебя понял, на какой репозиторий он будет ссылаться?
Та обычна домашка. Кроме непонятно написаного задания ничего ультрасложного не оказалось
Задание заключалось в том, чтобы каждый Клемент словаря сделать ключом и если идёт список или другой словарь то разобрать его и сделать ключом каждый отдельный елемент.
почему людей так ебут?
По собственному опыту - за один вечер читаешь вводную часть любого самоучителя про синтаксис, за второй вечер пишешь реальную прогу, не хелловорлд. На этом все, вкат закончен.
И да, на ооп и классы надо обратить основное внимание ибо там много петухон-специфики, но в принципе за 1 вечер осваивается, далее шлифуешь на практике.
На английском есть?
Вторая версия? Полгода назад искал, только препринт был.
Хорошо, спасибо.
>>478131
> Можно в истории это посмотреть.
Шелл умеет не сохранять историю при желании пользователя. В современных достаточно пробел поставить перед командой.
А так сейчас systemd получил несколько фич этого направления
https://systemd.io/CREDENTIALS/
Принимают не все, прошлое задание дало нужный результат, но там был настолько хуевый код, что препод заставил переделывать
Мне больше для собесов надо. Именно особенности и как по-нормальному на нём писать, а не c-style (если понадобится какое-то тестовое натужить).
А чем GIL принципиально мешает? Он работает и работает, просто подтормаживает основной поток
Под капотом корутины это генераторы
Нужно лайтовый веб сервер поднять, который будет периодически опрашивать основной поток и обновлять инфу по урлу
Ухх бля, вспомнил как два года назад это было первое что я по программированию порочитал. Прослезился
Пишу бекенд и аналитику на питухоне да и вообще, но не прошел тест на навыки в LinkedIn , лул, как такое возможно? Вроде все правильно ответил, ну бля, смех. Допускаю что было пару ошибок, но бля 13/15 мало что ли ?
как нойти роботу тогда ? чувствую вырос из текущего места работы
спасибо помогло
Делаешь threading.Thread(daemon=True)
Внутри демон-треда запускаешь веб сервер из стандартной библиотеки например
https://docs.python.org/3/library/wsgiref.html#module-wsgiref.simple_server
После этого основной поток программы сам по себе, веб сервер сам по себе. Никакой multiprocessing не нужен.
Я привыкч что мне все подсказывает IDE, я по сути больше 1/3 названия метода никогда не запоминаю, не говоря уже про количество и имена параметров метода. Привык к постоянному пользованию автокомплитом. Начал изучать питон как второй язык и просто охуел. Пайчарм мне выдаёт в лучшем случае мессиво с кучей ... kwargs, "", ... | "arg_name1", Union[ABC] и подобного бреда, если вообще что-то выдает. Ни о какоц всплывающей документации речи не идет. Нередко подчеркивает желтым поля к которым обращаюсь, хотя я блять знаю, что они там есть и программа работает. В общем, я в полной растерянности.
Питонисты, вы реально пишите код с открытой во второй полоаине монитора документацией и каждый раз когда хотаите что-то найти в ней пользуетесь ctrl+F??? И вы реально запоминаете названия всех методов, названия аргументов, ИМПОРТОВ?? У меня ощущение, что я что-то делаю не так. Неужели я должен реально днржать в голове всю эту бесполезную инфу, вместо того, чтобы думать над более полезными вещами, типа быстродействия написанного алгоритма или правильной архитектуры?
Как мне узнать, что такое bind, без того, чтобы держать открытой документацию в браузере?
>Указывай типы, тогда будет работать. Но в таком случае смысл питухона пропадает
У меня были точно такие же мысли. Видимо придётся как-то надрачиваться сидеть с докой в отдельном окне :/
джава-анон
Если тебе бекенды писать - пиши на Go, я питухон использую для аналитики, мл и подобных штук, так как таких либ ни под что больше нету
>Я привыкч что мне все подсказывает IDE, я по сути больше 1/3 названия метода никогда не запоминаю, не говоря уже про количество и имена параметров метода. Привык к постоянному пользованию автокомплитом.
В общем, хочу реализовать метод для выполнения задачи по таймеру.
Погуглив стало ясно, что для этого на высоком уровне кода есть либо threading.Timer либо asyncio.sleep.
Решил пока написать на асинхронно слипе, т.к. он вроде просто понятнее.
Как я понял, при вызове такой функции в event loop будет поставлен таймер, а сама программа может выполнять дальше другой код. И всякий раз при вызове этой функции в event loop будут отгружаться новые таймеры, ну а когда слип закончится будут отправлять запросы.
```
async def asend_task(self, task, time_to_run):
await asyncio.sleep(time_to_run)
self.send_request(task)
print(f"Task with timer {time_to_run} sended")
```
если я вызову этот метод дважды, сначала с таймером 1 день, а потом 1 час, то вызова функции отправятся в event loop, и сначала сработает с таймером на час, а потом на день, соответственно.
asend_task(task, 60),
asend_task(task, 60*24)
asend_task(task, 60),
asend_task(task, 60*24)
>>>Task with timer 60 sended
>>>Task with timer 1440 sended
Накатывай сразу всл2. У десятки надо какие-то обновления загрузить. У 11 сразу можно ставить.
https://learn.microsoft.com/ru-ru/windows/wsl/about
Так вот, может кто помочь сделать код с использованием библиотеки pypred -if is and then comment contains country city
Скажем условие - если ты из ДС1 то, молодец.
Конечно спасибо и за такой ответ. за "pet" учту, за остальное опустил так опустил что хотел эту библиотеку изучить :с
Работаю в виме, автокомплит любых названий по табу, работает шикарно во всех языках.
Если у какой-то херни совсем непонятный API то либо грузишь ее в ipython шелл чтобы потыкать, либо ставишь в проге перед непонятным местом ipdb.set_trace() и разбираешься какой вариант работает и делает то что нужно конкретно в этом контексте.
Пользуюсь WSL на win10, всё норм в целом. Но докер на ней так просто не запустится ибо systemd нет, и поэтому с ним вероятно будет попаболь. Хотя в последних версиях вроде завезли systemd, но я не пробовал
Чуть сложнее, если делать так, то ты должен оформить вызов в виде задачи
asyncio.create_task(asend_task(task, 60))
Ещё есть вариант, чтобы использовать low-level подход, и делать вызов
loop.call_later
https://docs.python.org/3/library/asyncio-eventloop.html#asyncio.loop.call_later
Изначально как раз нашел код с использованием low-lever API, но затем прочел в доке, что в "бытовых целях" чаще всего стоит использовать именно highl-lever интерфейс, ну и показалось что слип\таймер самое простое.
За наводку спасибо.
Ну смотри, в low-level случае ты получаешь возможность вызвать синхронный коллбэк. Если тебе дальше надо делать асинхронный вызов из этого колбэка, то не подходит в любом случае. Но если что-то простое синхронное, то вариант
Задачи более тяжеловесны, но если что-то сложное или асинхронное, то лучше их
А чем тебе питон для бека не нравится? Здесь же есть пару охуенных фреймворк с которыми го пока не сравниватся.
Го хоть и легкий язык и имеет всего там около 20 ключевых слов, но все же разработка какого-то большого проекта на нем мерзость, лучше уж питон с его фастапи/django/flask идеальной документацией, а не голанг где разработчики даже не запариваются называть переменные.
А когда ты у них спрашиваешь, почему у вас большинство переменных в 1-3 буквы, они говорят - Ну так надо, ты че не понимаешь? Очевидно же.. Сверх челы какие-то.
Го это когда ты заходишь почитать нормальную документацию какой-то либы, а 80% ее даже не пишут видимо, так набросали немного кода, функций че делают на основном сайте го и хватит.
Го это когда с возрастанием проекта код превращается в кашу и минус глаза, хотя синтаксис довольно простой, но вот с питоном не сравится, даже когда в питоне разрастается проект ты хотя бы можешь понять что за что отвечает.
Го это когда миллиард фреймворков как и в питоне для разработи какого-то веба, но нихуя нормального наподобие фастапи нет
Лучше используйте ноду/c#, чем го, для меня го это зайти написать какую-то обертку для докера/кубера других девопс штучек и т.д
Например вот пишу небольшой проектик который будут стримить логи с докера в фронтенд реалтайм, вот для этого го подойдет
> большинство переменных в 1-3 буквы
Кстати вот почему у некоторых так горит пердак от коротких переменных?
Математики обижали в детстве?
Вообще для такого селери слишком жирно. Можно глянуть на эти две либы
https://pypi.org/project/futurist/ Это просто удобная обёртка на тредами. Никаких зависимостей и нет HA
https://pypi.org/project/taskflow/ Это штука то же самое, но сохраняет своё состояние в редис и резервный воркер может продолжить выполнять таску если главный упадёт. Это у него такой HA
Выбирай
Не математикой единой. Железячники и красноглазики тоже любят по 3 буковки: dc, ctx, wd, sz, err, msg, num, val, buf.
Другое дело, что пердиксов-питонистов никто не пустит хайлоад или фреймворки пилить.
Другие проекты кушают 0% в фоне, и 3-5 при редактировании и прокрутке.
Я кликнул repair ide - и оно выдало какую-то ошибку джавы мне, и отправило об этом репорт. Но функционально всё работает, ну по крайне мере из очевидного.
Что я ещё могу сделать? Мне не норм, что кулеры гудят и мешают.
Хм. Переставил с 10.6 на 10.7 - теперь из четырёх многофайловых проектов только один вызывает 10%, хотя до этого было 3 по 20%.
>А чем тебе питон для бека не нравится? Здесь же есть пару охуенных фреймворк с которыми го пока не сравниватся.
Разве что FastApi
Не нравится тем, что типы опциональны, один человек их пишет, другой нет, поскольку сам язык для девочек 3класниц хуевое комьюнити вкатунов, действительно профессионалов питонистов я встречал пару человек, в большинстве хуевая документация, одна документация Django как пример. По FastAPI в принципе хорошая, но мне вообще не понятно нахуя нужны фреймворки, в гошке стандартная библиотека делает ВСЕ что мне надо, единственное, я использую роутер не стандартный,но который реализует интерфейс стандартного net.http роутера
>разработка какого-то большого проекта на нем мерзость
Пиздун, единая структура проекта, хорошие практики написания кода да и вообще, уровень разрабов повыше чем на питухоне. Мне писать на Го приятнее, вот копаться в джанге мерзость
>называть переменные
а нахуя их называть в функции 10 строк , где после := понятно что происходит, ну слабенько вижу у тебя по пониманию кода, раз это для тебя проблема. Где нужно переменные делают нормальной длины, где уместно оставляют короткими
Твои проблемы и придирки. Как говорят французы, сир, вы не компетентны.
>Го это когда с возрастанием проекта код превращается в кашу и минус глаза, хотя синтаксис довольно простой, но вот с питоном не сравится, даже когда в питоне разрастается проект ты хотя бы можешь понять что за что отвечает.
С возрастанием проекта его разбивают на микросервисы выполняющие конкретный бизнес кейс, если уж до этого дошло. Почему минус глаза? Паттерн репозитории минус глаза? Или то, что есть прослойка ввиде сервиса минус глаза?
>Го это когда миллиард фреймворков как и в питоне для разработи какого-то веба, но нихуя нормального наподобие фастапи нет
Пиздун, еще раз, тебе изначально не нужен никакой фреймворк и уж тем более ОРМ чтобы писать ВЫСОКОНАГРУЖЕННЫЙ веб.
>Лучше используйте ноду/c#, чем го, для меня го это зайти написать какую-то обертку для докера/кубера других девопс штучек и т.д
Лучше молчите, Сир.
>А чем тебе питон для бека не нравится? Здесь же есть пару охуенных фреймворк с которыми го пока не сравниватся.
Разве что FastApi
Не нравится тем, что типы опциональны, один человек их пишет, другой нет, поскольку сам язык для девочек 3класниц хуевое комьюнити вкатунов, действительно профессионалов питонистов я встречал пару человек, в большинстве хуевая документация, одна документация Django как пример. По FastAPI в принципе хорошая, но мне вообще не понятно нахуя нужны фреймворки, в гошке стандартная библиотека делает ВСЕ что мне надо, единственное, я использую роутер не стандартный,но который реализует интерфейс стандартного net.http роутера
>разработка какого-то большого проекта на нем мерзость
Пиздун, единая структура проекта, хорошие практики написания кода да и вообще, уровень разрабов повыше чем на питухоне. Мне писать на Го приятнее, вот копаться в джанге мерзость
>называть переменные
а нахуя их называть в функции 10 строк , где после := понятно что происходит, ну слабенько вижу у тебя по пониманию кода, раз это для тебя проблема. Где нужно переменные делают нормальной длины, где уместно оставляют короткими
Твои проблемы и придирки. Как говорят французы, сир, вы не компетентны.
>Го это когда с возрастанием проекта код превращается в кашу и минус глаза, хотя синтаксис довольно простой, но вот с питоном не сравится, даже когда в питоне разрастается проект ты хотя бы можешь понять что за что отвечает.
С возрастанием проекта его разбивают на микросервисы выполняющие конкретный бизнес кейс, если уж до этого дошло. Почему минус глаза? Паттерн репозитории минус глаза? Или то, что есть прослойка ввиде сервиса минус глаза?
>Го это когда миллиард фреймворков как и в питоне для разработи какого-то веба, но нихуя нормального наподобие фастапи нет
Пиздун, еще раз, тебе изначально не нужен никакой фреймворк и уж тем более ОРМ чтобы писать ВЫСОКОНАГРУЖЕННЫЙ веб.
>Лучше используйте ноду/c#, чем го, для меня го это зайти написать какую-то обертку для докера/кубера других девопс штучек и т.д
Лучше молчите, Сир.
А как же ты таб для пробелов используешь? Если для автокомплита нужно в режим команд переходить - то это пиздец
Нет, это какой-то баг кеширования или индекса пучарма, и вот то что он ошибку с джавой выдал ещё. Если посмотреть, там внутри пучарма были треды с загрузкой по 0.3-0.5 процентов из одной и той же dll-ки, но несколько десятков штук.
Я пытался найти в чём дело - эта штука появлялась когда был открыт файл с кодом из ткинтера и ещё нескольких библиотек, даже если 10 строк хелло ворлда - этого уже хватало. Причём если закомментировать импорты так что это будут просто вызовы неизвестных методов и классов - то ничего не меняется.
Но если создать новый проект, то проблемы нет.
В общем я просто все файлы пучарма поудалял, оставив только мои файла кода, и переоткрывал папки как проекты, и стало норм. Что-то забыли протестировать, и пучарм вис и баговал из-за своих старых файлов кеша или что он там делал.
Джавапрограмма без прямого управления памятью, чего ты хотел.
1) Есть ли смысл тайпхинтить что поле имеет стринговое значение из ENUM? Типа
class Color(Enum):
--RED = "RED"
--BLUE = "BLUE"
--GREEN = "GREEN"
@dataclass()
class Data(object)
--color: Color
Выглядит как весьма бесполезная приблуда, если все равно там будет лежать стринга. Плюс, сам интерпретатор не ругается на такую хуйню, но странно что в поле color у нас будет лежать экземпляр класса, который держит стрингу. Не похерится ли ли тот же intellisense, c подсказками по методам стринги?
2) Можно ли как-то изъебнуться и указать:
@dataclass()
class Data(object)
--color: str
--type: str
--backup: Data
Рекурсивно передавать данные внутрь не интересует, просто чтобы хинты подсказывали что Data().backup.color это валидное поле, ну или Data().backup.backup.type. Это будет все на первом уровне вложенности. Просто в backup планируются держать поля color и type. Иначе придется как-то так?
class Backup(object):
--color: str
--type: str
@dataclass()
class Data(object)
--color: str
--type: str
--backup: Backup
3) Дефолтные значения для полей которые пришли как None можно поставить в 3.9.5 питоне? Я читал как это делали люди на SO, через __post_init__ (который вроде как и не работает с frozen датаклассами, поэтому и не подходит), там еще костыли предлагали, но может в этой версии такой инструмент появился нативный. Или в 3.10, я бы тогда обновил.
1) Есть ли смысл тайпхинтить что поле имеет стринговое значение из ENUM? Типа
class Color(Enum):
--RED = "RED"
--BLUE = "BLUE"
--GREEN = "GREEN"
@dataclass()
class Data(object)
--color: Color
Выглядит как весьма бесполезная приблуда, если все равно там будет лежать стринга. Плюс, сам интерпретатор не ругается на такую хуйню, но странно что в поле color у нас будет лежать экземпляр класса, который держит стрингу. Не похерится ли ли тот же intellisense, c подсказками по методам стринги?
2) Можно ли как-то изъебнуться и указать:
@dataclass()
class Data(object)
--color: str
--type: str
--backup: Data
Рекурсивно передавать данные внутрь не интересует, просто чтобы хинты подсказывали что Data().backup.color это валидное поле, ну или Data().backup.backup.type. Это будет все на первом уровне вложенности. Просто в backup планируются держать поля color и type. Иначе придется как-то так?
class Backup(object):
--color: str
--type: str
@dataclass()
class Data(object)
--color: str
--type: str
--backup: Backup
3) Дефолтные значения для полей которые пришли как None можно поставить в 3.9.5 питоне? Я читал как это делали люди на SO, через __post_init__ (который вроде как и не работает с frozen датаклассами, поэтому и не подходит), там еще костыли предлагали, но может в этой версии такой инструмент появился нативный. Или в 3.10, я бы тогда обновил.
>ВЫСОКОНАГРУЖЕННЫЙ веб
Это что за зверь такой? Высоконагруженность решается через масштабирование на уровне архитектуры. Можно писать хоть на пыхе как мета с гуглом делала.
Я с асинхронностью знаком путём nodejs, в питоне юзал мало. И тут не прямо уж из коробки функционал идет, т.е. asynio юзать надо, в отличии от js с его интерфейсами типа promise, setTimout и тд.
Но мне кажется суть должна быть та же самая, потому что цикл событий это универсальная абстракция. Я понимаю, что в Python есть GIL, т.е. по сути Event Loop в питоне всегда будет в одном треде, и при последующих (в рамках запущенного процесса) все новые таймеры\корутины\фьючеры и тд будут в рамках одного event loop'а
В JS тоже один поток. Неким аналогом промисов в питоне служат Future, но в норме тебе с ними работать не надо, это конкретный low level.
В ноде довольно много путаницы, потому что изначально нода была построена на коллбэках, все старые библиотеки там такие. А механизм async/await, который внутри другой, принесли в ноду позже. Из-за этого появляется лапша из разных подходов, что неудобно.
То, что один поток, не всегда проблема. Ты приложения обычно можешь масштабировать запуском нескольких инстансов, обычно так и делают.
Когда у тебя несколько инстансов, тебе сложно синхнонизировать состояние, то делать приложение с внутренним состоянием считается в принципе дурным стилем. Кроме того, проблемы блокировок доступа к такому состоянию из кучи тредов тоже никто не отменял.
В общем это проблема, но не фундаментальная.
Кстати, вот есть Redis, очень известный продукт. Так он тоже однопоточный, и ничего, всё равно все им пользуются и особых альтернатив нет.
Проблема однопоточности overhiped
Но в принципе в ноде проще асинхронность, точнее входной уровень ниже, проще ли она на самом деле - не факт
Модель async/await в питоне всё-таки намного более проработана. Надо только въехать в неё, потом уже легко будет
>Python есть GIL, т.е. по сути Event Loop в питоне всегда будет в одном треде,
И здесь уточнение. В любом случае тред стартует только тогда, когда ты руками его создаёшь и вызываешь. Ты можешь стартовать несколько тредов, но из-за GIL в каждый момент будет работать только один тред. Кроме того, asyncio не threadsafe, там тебе придётся довольно сильно возиться, чтобы совмещать многопоток и асинхронность.
Это уже продвинутая тема, но может быть востребована в каких-то случаях, например когда ты делаешь GUI приложение с асинхронностью.
>приложения обычно можешь масштабировать запуском нескольких инстансов
А насколько безопасно использовать event loop, если он запускается в child proccess воркера?
Допустим воркер всего один и он всегда запускает один и тот же child proccess. Как в этом случае на низком уровне будет происходить взаимодействие с циклом событий? Или цикл событий Твёрдо и Чётко один на одну запущенную питоновскую программу и все асинхронные задачи\таймеры находятся в одном пространстве имён и в одной области памяти?
Я не очень понимаю, как может быть несколько event loop, если ты только сам специально несколько не запустишь?
Технически ты можешь в нескольких тредах запустить по своему event loop, но тебе придётся это делать явно, там больше магии, недостаточно даже asyncio.run() просто сделать.
Если же ты хочешь несколько инстансов запускать, то тут много камней может быть. Тебе надо как-то балансировать нагрузку и распределять трафик между инстансами, как-то контролировать, чтобы скажем одна сессия обрабатывалась одним инстансом и т.п.
В общем да, в таком контексте неудобно и не для всего этот подход работает. Но мне кажется, что это не очень частые системные задачи.
Скорее всего тебе надо хранить данные в каком-то внешнем сервисе, вроде редиса, очередей, БД и т.п.
>одна сессия обрабатывалась одним инстансом и т.п.
Да, тоже об этом подумал. Думаю, пока что остановиться на gevent пуле, вроде пока что это то что надо, как раз честный один поток, + операции только IO bound
В 2022 gevent не нужен. Это легаси изобретение до-asyncio времён, сейчас несерьёзно в принципе. Асинкио работает хорошо и достаточно. Это стандарт современного питона.
Разве можно без использования воркера, запускать асинхронные задачи на сервере?
Я имел в виду однопоточный воркер в Celery, это в нём у меня IO задачи крутятся
Не очень понятно, что тебе надо. У тебя есть какой-то сервисный процесс на сервере, который выполняет какой-то функционал. В нём крутится один event loop.
Дальше тебе надо как-то с этим процессом взаимодействовать. Например снаружи, через http/websocket, тогда ты его ставишь за nginx. При необходимости запускаешь несколько воркеров, а nginx балансирует нагрузку.
Либо же твой воркер подключается к очереди сообщение или чему-нибудь в этом духе. Под Celery, насколько я помню, работает rabbimq или redis, ты можешь напрямую работать с редисом через aioredis, там есть поддержка pub/sub паттерна. Либо можешь подключаться к раббиту. Ну или к целери.
Либо ты можешь со своим воркером работать через сокеты, но это скорее всего будет изобретением велосипепдов.
Дело в том, что некоторые воркеры могут создавать несколько потоков, в каждом из которых будет event loop, а мне надо чтобы контекст у всех асинхронных вызовы был один, иначе будет лажа а результат может быть непредсказуемым.
По этому мне нужно чтобы был один потокТвёрдо и чётко, с одним циклом событий. Вот и всё.
В начале пустой строки таб делает таб, после буквы таб делает автокомплит.
Расширение ervandew/supertab
>Дело в том, что некоторые воркеры могут создавать несколько потоков, в каждом из которых будет event loop,
Зачем? Я не представляю вообще, где такое может появиться. Тебе надо архитектуру чистить, у тебя какой-то ад, так не должно быть. Вообще совмещать многопоток и асинкио грязно, если такое есть, то скорее всего это твой косяк.
Если у тебя много потоков по какой-то причине, то держи только один поток с асинкио, создавай его на старте приложения. Но потом придётся сложно с ним коммуницировать, потому что основные примитивы асинкио не threadsafe. Поэтому тебе надо будет пользоваться функциями вроде loop.call_soon_threadsafe, внутри которой, например, класть что-то в асинкио-очередь. А из асинкио возвращать данные в прочие потоки тоже через очереди, то уже из модуля queue, потому что они потокобезопасные, в отличии от asyncio.Queue
Но есть подозрение, что ты пока плохо понимаешь, что тебе надо, и делаешь что-то не то, за что потом тебе будет стыдно
a = 500
b = 500
В данном случае это один объект
А вот если сделать так
b = b + 1 - 1
То это уже два разных объекта
В каких случаях происходит присвоение одинакового айди и когда он меняется?
Гарантируют ли разные айдишки выделение памяти на каждый объект или под капотом может быть так, что эти переменные все ещё ссылаются на один участок памяти с 500?
Если id разный - это разные участки памяти
А вы где потом работать собираетесь?
Вот пример на скрине, за сутки, 400 желающих, дс2.
Вы же понимаете, что скорее всего вам не повезет с работой и будете дальше дебажить свой пайтон от злости в фап тредах?
Вкатился на вакуху где было 300 откликов. Не ебёт
Там некорректный счётчик скорее всего. Они недавно его в веб версию вставляли, потом убрали. Так вот, там счётчик показывал глобальные отклики судя по всему, с момента создания вакансии. Если вакансия старая, закрывалась-открывалась, то счётчик не сбрасывается судя по всему.
Посмотри на этот же счётчик завтра, сколько там будет откликов, это будет показательно.
По id вакансии можно понять, старая она или новая.
У меня 9 лет опыта. Хрюши сами бегают за мной. Пусть набирают вкатунов, через некоторое время поймут, что 90% из них делают лютейший кал без присмотра. Тогда уже они готовы выделить бюджет на более разрабов
По-моему сейчас до 256 у тебя гарантия, что объект будет один, иначе уже разный. В твоём случае одинаковый изначально потому, что тут из констант он инициализируется. А вообще тебе не нужно об этом думать вообще, это всё детали реализации машины. Тебе со значениями надо работать, а не со ссылками.
Эта вакансия старая
https://hh.ru/vacancy/69953066
id до 70M, поднятая, а счётчик там некорректный >>481436
реальных откликов сильно меньше. Это не значит, что их прямо совсем мало, но меньше, чем кажется
Написал тестовое задание на - FastAPI/Docker/K8s/SQLAlchemy, но тестами не покрыл, дефолтные крудики.
Я уже имел коммерческий опыт разработки на питоне, но все мои собеседований были не больше 30 минут, иногда даже за 10-15 минут заканчивали техническое собеседование, я не знаю почему так выходило и вопросы в целом были легкие. Уже долгое время не проходил прям технического интервью.
Подскажите к каким серьезным вопросам можно готовиться в общем, не по питону, вакансия веб разработчика.
Я думаю смогу пояснить за то какие HTTP методы есть, что такое REST, распределенные транзакции, шердинг БД, как правильно делать распределение БД по вертикали или горизонтали, в каких случаях это нужно, солид, асид, нормализация - все это зазубрил как отче наш, знаю около 10 +- паттернов и в целом сейчас пытаюсь разобраться в архитектуре, читаю боба.
К каким можно серьезным вопросам готовиться? Мой первый заваленный собес был из-за того что я не знал что такое нормализация и в целом плохо понимал БД, индексы и т.д.
У меня просто есть очень большой стейт (на 500 мб) который представляет из себя многоуровневый словарь где ключи и значения представляют из себя строки до 5 символов. При этом уникальных значений этих строк немного, около 10к, они часто повторяются и известны заранее и кроме добавления/удаления по данным их приходящих жсонов и далее с ними никаких действий не производится. Собственно я бы хотел что бы каждое одинаковое значение было гарантированно одним объектом, так как потенциально это бы сильно сократило потребление памяти. Пока в голову ничего кроме того, что бы сделать свои строки-синглтоны в голову не приходит.
Спасибо, кажется то что нужно
Так, это я где-то в расчетах обосрался или это действительно так эффективно?
Первый вариант - 0.011 MB
Второй вариант - 513.0784 MB
Согласен, бро, возможно я делаю костыли, но выхода нет, надо пробовать, только так можно чему то научится.
Вообще, если абстрагироваться от предметной области, то в данный момент у меня есть воркер, который переодически делает GET запросы к стороннему API, если запрос успешный, то на выходе получается две пачки данных - одну надо переслать на другое API сразу, а другую через какое-то время.
Ну вот и я сначала пробовал с asyncio, теперь с Celery и asyncio.
Что я придумал? Я запускаю в воркере задачу на опрос, в этой же задаче смотрю результат, и если в нём есть условия на таймер, то спавню новую celery задачу - поставить таймер и вернуть управления в главный поток, чтобы воркер мог дальше запускать опрос сервера каждые 5 минут. Когда таймер закончится - отправить данные.
Ты что-то не то меряешь.
В варианте с sys.intern будет у всех одинаковых строк одинаковое id() поэтому result вообще больше 100 никогда не растет.
Если твои 500мб это стандартные ключи плюс какие-то полезные значения то так и надо мерять -- чтобы все 10^7 ключей оставались в памяти висеть
Крч, прошел собеседование на джуна, вопросы были такими
1 - АСИД
2 - Солид
3 - Отношения в БД
4 - Индексы(Sparse,Dense)
5 - Транзакции
6 - GIL - Конкуретность, процессы, треды и т.д
7 - DJANGO - Lasy QuerySet
8 - N+1 проблема
9 - Вопросы по фастапи
10 - Какие тесты писал, пирамида тестирования
11 - типы данных
12 - как работает внутри сет
13 - неизменяемые изменяемые
14 - генератор итератор
+ Тестовое задание, сделал хорошо как он сказал, но был 1 вопрос почему не использовал GROUP BY вместо фильтра в алхимии.
Крч, я на все ответил, но обосрался с самой легкой задачей, мне так стыдно давно не было, я даже харакири хотел сделать после собеседования, он меня успокаивал что все хорошо, но пиздец как же стыдно мне было после того.
Предыстория: Я много читаю, у меня хорошая теория и т.д, но я месяц уже не прогал, только тестовое сделал.
Задача - Напиши мне генератор которые выдает четные числа
(как я сделал) - Он говорит. а так мы будем выдавать всегда одно значения? Я охуел и подумал, точно блять, какой же я даун, переписал
1 Вариант
even_numbers_generator(num:int) -> int:
if num % 2 == 0:
yield num
2 Вариант
even_numbers_generator(num:int) -> int:
for i in range(num):
if i % 2 == 0:
yield i
for number in even_numbers_generator(10):
print(number)
Он говорит, что окей, но как мы можем сделать это через другой способ? - И вот тут я охуеваю и начинаю жестко тупить - Какой второй способ? Ну можно через класс сделать, он говорит не надо, другой способ, тут тоже все будет через цикл, я начинаю тупить и писать что-то вроде for i in yield(), он начинает подсмеиваться, я начинаю уже пиздец тильтовать, я давно не проходил собесы + нервничал.
Потом дошло, что через while можно, но и я начал тупить тут, писать типо while num < 10 и не понимать что нужно конутер добавить.
Ну и как-то так
Я никогда в жизни так не обсырался, вот собес закончился 2 часа назад, я ответил блять на довольно сложные вопросы и т.д, но как можно было так обосраться на генераторе мне пиздец стыдно, я конечно изначально не понимал что он хочет, но это пиздец, фу блять.
Все же думаю у меня есть шансы что возьмут, так как ответил на все вопросы и затупил только на решение этой хуйни, но до харакири не далеко.
Крч, прошел собеседование на джуна, вопросы были такими
1 - АСИД
2 - Солид
3 - Отношения в БД
4 - Индексы(Sparse,Dense)
5 - Транзакции
6 - GIL - Конкуретность, процессы, треды и т.д
7 - DJANGO - Lasy QuerySet
8 - N+1 проблема
9 - Вопросы по фастапи
10 - Какие тесты писал, пирамида тестирования
11 - типы данных
12 - как работает внутри сет
13 - неизменяемые изменяемые
14 - генератор итератор
+ Тестовое задание, сделал хорошо как он сказал, но был 1 вопрос почему не использовал GROUP BY вместо фильтра в алхимии.
Крч, я на все ответил, но обосрался с самой легкой задачей, мне так стыдно давно не было, я даже харакири хотел сделать после собеседования, он меня успокаивал что все хорошо, но пиздец как же стыдно мне было после того.
Предыстория: Я много читаю, у меня хорошая теория и т.д, но я месяц уже не прогал, только тестовое сделал.
Задача - Напиши мне генератор которые выдает четные числа
(как я сделал) - Он говорит. а так мы будем выдавать всегда одно значения? Я охуел и подумал, точно блять, какой же я даун, переписал
1 Вариант
even_numbers_generator(num:int) -> int:
if num % 2 == 0:
yield num
2 Вариант
even_numbers_generator(num:int) -> int:
for i in range(num):
if i % 2 == 0:
yield i
for number in even_numbers_generator(10):
print(number)
Он говорит, что окей, но как мы можем сделать это через другой способ? - И вот тут я охуеваю и начинаю жестко тупить - Какой второй способ? Ну можно через класс сделать, он говорит не надо, другой способ, тут тоже все будет через цикл, я начинаю тупить и писать что-то вроде for i in yield(), он начинает подсмеиваться, я начинаю уже пиздец тильтовать, я давно не проходил собесы + нервничал.
Потом дошло, что через while можно, но и я начал тупить тут, писать типо while num < 10 и не понимать что нужно конутер добавить.
Ну и как-то так
Я никогда в жизни так не обсырался, вот собес закончился 2 часа назад, я ответил блять на довольно сложные вопросы и т.д, но как можно было так обосраться на генераторе мне пиздец стыдно, я конечно изначально не понимал что он хочет, но это пиздец, фу блять.
Все же думаю у меня есть шансы что возьмут, так как ответил на все вопросы и затупил только на решение этой хуйни, но до харакири не далеко.
Так если я буду юзать обычные строки, то они будут уже давать этот оверхед в 500мб, просто потому что они вообще используются. Это не говорит о том сколько будет весить итоговая структура, но показывает сколько можно сэкономить.
Да, тоже так думаю, но мало ли
Я привык ничего не повторять, у меня как вроде хороший фундамент, мы в унике это все прям зубрим ещё, просто я практически не практикуюсь, я не знаю какие пет проекты писать, дефолтные круды не хочется делать, что-то сложное идей нет. Поэтому пытаюсь найти работу, что бы начать делать стоящие вещи.
Ну смотри: строка 5 символов это 5 байт (6 если с нулем), 64-битный указатель это 8 байт.
Если ты интернишь строки то в твоем гигасловаре все равно ключи будут занимать минимум по 8 байт. Потому что каждый ключ должен ссылаться на уникальную строку.
Поэтому сравнивать вариант когда result длиной 10^7 и когда он 100 получается некорректно.
Сделай result = list() и добавляй туда все строки. Тогда померяется ровно оверхед от строк.
а блин я тупой, там же меряется только sys.getsizeof а не вся потребляемая память
>строка 5 символов это 5 байт (6 если с нулем)
Питонячьи строки это не только ее содержимое, но и метаданные дающие по 49 байт
>As you can see, depending on the content of a string, Python uses different encodings. Note that every string in Python takes additional 49-80 bytes of memory, where it stores supplementary information, such as hash, length, length in bytes, encoding type and string flags. That's why an empty string takes 49 bytes of memory
Например в баше могу сделать так - cat /home/*/config.conf, как на питоне так же сделать? Желательно покороче
time.strftime + читай доку про формат
Контуры сохраняются в вектор. А, собственно, вопрос : какие цифры он сохраняет? Что они значат?
А документация не открывается?
https://docs.opencv.org/3.4/d3/dc0/group__imgproc__shape.html#ga17ed9f5d79ae97bd4c7cf18403e1689a
А потом гуглишь пример с питоном и смотришь как там возвращаются контуры и иерархия.
Это уже не говоря о том, что мне готовая демка с пояснениями выпала по первому запросу.
И не говоря о том, что поглядя на формат выдаваемого значения можно самому догадаться, что это координаты, сгруппированные (видимо по отдельным контурам). Я не смотрел, но вот они нарисовались так же, как функцией drawContours.
>Дана функция, принимающая рандомное количество элементов и выводящая на принт множество- длина которой не более 10 элементов. Здесь понадобится преобразование типов.
если кратко то список нужно как-то превратить в set через функцию
k = func2([1],2,3)
Тут без навыков телепатии не разобраться что имеет ввиду задающий задачу.
Пытаясь максимально удовлетворить запрос, я бы что-то такое примерно написал(https://pastebin.com/FYJN47XX), которое по возможности пытается разворачивать списки.
> k = func2([1],2,3)
это из задания или ты сам придумал? а то хуй знает, если бы задача была на обеспечение хэшабельности объектов, может бы об этом поподробнее сказали
а то вот я преобразовал тип аргс из листа в сет:
def f(*args):
return set(args[:10])
1) в которую в три столбца записываются некие id, короткая строка и достаточно длинная строка.
2) из которой надо быстро доставать либо конкретную строку со всеми данными, либо случайную строку по фильтру
Я сейчас использую библиотеку SQLite3, но может зря?
За пару месяцев накопилось 133 тысячи
Писать планирую на питоне, какую необходимую базу нужно иметь под рукой, если ты нихуя не понимаешь в этой теме?
в остальном пока не планировал. Погуглил про пюпитр, не совсем понял такой момент - в этих ваших интернетах пишут, что это безголовый браузер, я не понял он будет какие-то действия без визуализации производить, или с помощью него я буду открывать свою уютненькую оперу на автомате?
Есть целери и прометеус. Прометеус будет забирать метрики из легковесного сервера с одной страничкой.
Сервер поднят в основном процессе селери. Так вот, как этот ебаный регистр для многопроцессорной сборки метрик сделать? Или я дебил или что-то не так. Он писать в файлы должен, но каталог пустой.
Вот смотрите, аноны. Этот скрин анон сделал 4 октября в 11:37.
Было 347 откликов
Сейчас 7 октября, а откликов только 417. За более, чем три дня, добавилось только 70 откликов
Правда вакансия до сих пор не закрыта. Но не очень показательно ещё потому, что там "отклик без резюме", можно напрямую по почте высылать, это в статистику не попадает
Всем привет
Наверняка тут есть местные, которые разворачивали свои сайты
Планирую написать сайт на джанге (эксперимента ради), сайт простой с точки зрения функционала (всего парочку таблиц и скриптов), но хочу его сделать относительно пестрым, красивым и быстрожействующим
На какие параметры сервера мне ориентироваться? Гиг оперативы мне вряд ли хватит под джангу, если ничего особо спецом не крутить? Или как раз хватит?
В 2 раза меньше хватит.
Сама джанга ничего не жрёт. Хватит гига и на питон с джингой, и на постгрес
Если просто загружать Json, добавлять элемент и сохранять, это ведь хуевый вариант, да? Если вдруг при очередной записи пойдет что-то не так, то может похериться весь файл. Как по уму это сделать?
У Героя есть 5 разных характеристик, они могут варьироваться от 1 до 10. Надо при старте их рандомно сгенерировать. Проблема в том что общее число поинтов которое будет распределено тоже рандомно - от 20 до 30. Как это сделать?
Сохранять в новый файл, а потом удалять старый
Будет лучше, если ты не будешь перезаписывать файл, а откроешь его, и не закрывая будешь по мере поступления дописывать в него новое. Или открывай в режиме append, где запись в уже имеющуюся часть файла запрещён.
Тогда если что-то сломается, старая часть будет целая.
Я не знаю умеют ли такое pickle и json в питоне - я бы просто открывал файл в бинарном режиме, через json или что тебе нужно данные просто в bytes закидывал (можно ещё какую-то метку, чтобы если что-то сломается и будет неправильны размер записан - можно было найти метки на начала частей - или вовсе хранить их рядом в соседнем файле в виде небольшой таблицы, где хранится начало в файле, размер и хеш), и писал бы в файл размер новой части и эти байты. Старые уже записанные данные бы не трогал естественно вообще.
Рекомендую использовать вариант с sample.
>>484267
Чего? По какому ещё определению, совсем ту-ту? Ты не можешь свою функцию придумать, которая без перезаписи будет дописывать в файл второй json?
Что мне мешает данные (json или что угодно ещё) записать в свой бинарный файл как мне захочется?
У тебя 4 байта идёт размер следующего json-а, а потом его бинарное представление, потом ещё 4 байта размера и ещё одно представление json-а, и так сколько захочешь раз.
А, ты про то что json надо обновлять...
Так у тебя же акцент на том, чтобы данные не повредились. Ты полученные изменения-обновления сохраняешь отдельно, а потом объединяешь. Если один кусок не правильно загрузится, и хрен с ним - все остальные будут целые и корректно сохранены.
Это и безопаснее, и эффективнее.
Типа, если у тебя там будет 10000 отдельных кусков, то слить в конце можно за 10000 операций, а если ты на каждом шаге будешь открывать json размера 1, 2, 3... 9998, 9999 и всё в нём менять, то это довольно медленно будет, не говоря уже про беднягу жёсткий-диск (или что у тебя там). Ну, если там данные накапливаются, а не перезаписываются, естественно.
>Используй csv
А в чем преимущество перед Json в данной задаче? Можно отдельно перезаписывать часть, а не весь файл?
Смысл в том, что в json есть замыкающие скобки и т.п. Поэтому просто делать append не получится. Поэтому тебе надо придумывать какие-то грязные хаки.
Если надо обновлять файл целиком, то стандартный паттерн такой, что создаётся новый файл сначала с новыми данными, а потом старый и новый переименовываются. Есть варианты с символическими ссылками, не суть.
Другие варианты - это уже придумывать свои БД. Скорее надо не придумывать, а брать готовые решения. Ну или придумывать свои схемы по аналогии с тем, как это используют в известных системах.
Ебать, реально. Спасибо большое!
Я понял. Я про то, что если новые данные приходят каждую минуту - тебе не нужно перезаписывать файл, можно дописывать полученный кусок данных в виде, в котором он пришёл (в бинарном, мать его - и итоговый файл, это не json, а твой собственный сырой формат). Вообще не важно что там со скобками или без.
А уже потом открываешь и объединишь.
И это не бд, это 4 строчки на сохранение, и столько же на загрузку. Или около того.
>Скорее надо не придумывать, а брать готовые решения.
Из пушки по воробьям в такой простой задаче. Тебе нужно просто дописывать данные в файл, а потом загрузить их все вместе. Две операции. Не надо никаких аналогий с известными системами. Все "системы" ориентированы на общие задачи и у них функционал значительно выходит за рамки двух функций.
Это как я загуглил как в торче оператор лапласс к тензору применить - и там предлагают целую либу загружать через пип. Хотя такой оператор, это очень просто и требует только 3 строчки, название класса, перегрузка функции и одна строчка кода. Это, блять, просто пиздец. Уже пошёл готовые решение использовать. Вместо a+b буду писать pip install add_two_number, и потом использовать add_two_number.sum_two_number(a, b). Ну а хули, готовое решение, нужно использовать. Поехавшие.
И я почти уверен, что такая либа есть. Не знаю шутки ради или не совсем, но почти точно есть что-то подобное.
current = 10
sum = 0
progress = float(1.1)
for i in range(1,11):
print(i, '', current, 'км')
current += progress
sum += current
print(int(sum))
если че потом изменил 'i' на 'day', роняя калл менял имена переменных чтобы вам было проще воспринимать код
>Где можно найти реальные задачи?
На работе
>Или может начинать осваивать фреймворк? Какой посоветуете попроще и интереснее?
Тебе нужно вкатится, смотришь вакухи в твоем городе, если находишь что-то кроме джанги стараешься устроится туда. Фастапи, аиохттп, саник, не важно. По сути все это вебморда для микросервисов, а джанга это полный комбайн в виде монолита. С первым на порядок больше шансов найти компанию с более современным стеком.
ты сначала увеличиваешь рекорд дня на 10%, а затем прибавляешь его к сумме, тем самым пробежав в первый день 11 км вместо 10
вот так получится 149.5:
daily_distance = 10
total_distance = 0
progress = 1.1
for i in range(10):
total_distance += daily_distance
print(f'День {i+1}: {daily_distance:.1f} км')
daily_distance += progress
print(total_distance)
но это неверное решение, потому что тебе по заданию нужно на 10% увеличивать дистанцию дня, а прибавлять к ней 1.1 км каждый раз
> преподка нихуя не понимает
проиграл
>если находишь что-то кроме джанги стараешься устроится туда. Фастапи, аиохттп, саник, не важно.
Для начала ему тогда надо разобраться с асинхронностью, написать что-то простенькое тестовое, их его слов не очевидно, что он в этом хоть что-то понимает. Тема не простая, а во многих книгах вообще про это ничего нет.
Стандартный учебный пример - это какой-то простенький чат
он просто пади на cpython тупо написан, а петухон как фреймворк для него.
хз зачем он приводит в пример работу кода петухоновского если там написано что это просто эквивалент.
Потому что заебешься потом сидеть разбираться как это говно работает.
Разве проблема сразу сделать нормально с первого раза?
чот какое то душнилово как по мне
>>как работает внутри сет
кого вообще это ебать должно, важно что ты понимаешь для чего он нужен.
>>1 - АСИД
лол
>Правда вакансия до сих пор не закрыта.
Блять тут в питере многие вакансии вижу месяцами и год наверное висят. Причем там на отклик никак не реагируют зачастую даже.
С какой целью размещают такой сомнительный околоскам хз — заявить о своей компании, мол заказчики загуглять а там ебаать тевстировщиков за 100к ищут и питонистов за 150к, ниххуя себе контора!¡ (таких идиотских студий куча)
Либо эйчары развлекаются так.
А ты реально думаешь, что сможешь найти работу?
Кааа́амон меен, ты реально способен конкурировать с 4-мя сотнями этих ребят, которые несколько лет штруделировали алгоритмы в вузике и олимпиадах?
>Он говорит, что окей, но как мы можем сделать это через другой способ?
Анон, сейчас я тебя ещё больше расстрою, потому что есть
range(start, end, step)
и ты мог бы написать for i in range(1, 10, 2) (или до 20, не понял твою задачу)
ну или можно
for k in range(10): return 2*k
Со стороны твой подход и твои слова смотрятся стрёмно, но да ладно, все иногда обделываются
>чот какое то душнилово как по мне
Ну ты зря, ХЗ кто в конкретном случае собеседовал и что у него в голове, но эти вопросы на то, чтобы оценить твой кругозор, общее понимание платформы, как мозги работают и т.п. Ещё как ты реагируешь на вопросы, ответы на которые не знаешь.
>Блять тут в питере многие вакансии вижу месяцами и год наверное висят. Причем там на отклик никак не реагируют зачастую даже.
Недавно откликнулся на вакансию, которая до этого несколько месяцев висела, по Middle+/Senior. Пришло автоуведомление, что типа ждите, обязательно рассмотрим ваше резюме. Самое забавное, через пару дней вакансию закрыли, но другой реакции никакой, впрочем от этих я и не ждал
Чаще же даже автоуведомления нет, это когда напрямую высылаешь, даже хз, там активный ящик или его вообще никто не читает, а всё в спам отправляется
Совсем оскотинились хрюши, писали бы хотя бы "мы может быть рассмотрим Вас, когда вновь наступит 2021", я бы всё понял
Линукс основной системой, винду в виртуалке.
Открываешь сорц declarative_base и читаешь
>>чтобы оценить твой кругозор, общее понимание платформы, как мозги работают
Звучит как полнейшая херня. За 7 лет работы так и не увидел что бы это вообще как то перекликалось с реальность, кроме случаев когда челы просто заучивали абривиатуры и термины.
Написал так
requests.get(link, timeout=100)
Но он всё равно ждет 15 секунд и завершается TimeoutError.
С другим интернетом более быстрым всё нормально
разобрался. на выгрузке у меня таймаута не хватало а не на запросе
А че такова? Я бы запрограммил на петухоне без проблем.
Зачем тебе въезжать в говно?
Зачем тебе въезжать в говно?
Баннеры на хтмл появляются в рандомном порядке и мешают дальнейшему парсингу
Как закрыть баннер я знаю, а как сделать постоянное отслеживание появления определенных элементов с известными айди - я не представляю
Использую селениум, но интересует именно алгоритм
Я нуб, могу что то не знать
В общем ткните носом
Спасибо
Какого хуя? Как вкатываться в этот ваш питон то?
лол, что за ад? криворукий кодил алгоритм подбора похоже
Допустим я импортирую две библиотеки через import jopa и import govno, в которых названия функции zalupa пересекаются. В коде я использую соответственно a = jopa.zalupa() и b = govno.zalupa() Результаты будут разные или одна функция заменит другую из-за названия, так как две библиотеки импортированы подряд? Тогда стоит ли постоянно использовать from jopa import zalupa - jopa.zalupa()- from govno import zalupa - govno.zalupa()
офф дока + практика создания какого нибудь сайтика.
да
Ты мне предлагаешь форматирование. А есть ли способ сделать сами числа точными в питоне?
Есть хуй. Будешь?
____d = json.load(file)
d = json.load(open(path, 'w'))
Эти два варианта тождественны? Второй автоматически закрывает файл или нет?
Да, есть. Символьные вычисления. И я думаю что в питоне уже есть для них либы.
Во-первых, ты можешь это проверить создав свой объект и смотря за его __del__, __exit__ и другими.
Во-вторых, даже наоборот, у тебя значение переменной file останется, просто для него выполнится метод __exit__, а во второму случает у тебя никаких переменных не останется.
Вроде как разница в том, что если у тебя в функции json.load произойдёт исключение, то будет немного отличаться что-то.
>true
Почему так нахуй ??? and же
Сначала вычисляется 1 and 3, затем in. Почему возвращаются такие значения, можешь почитать здесь:
https://realpython.com/python-and-operator/#using-pythons-and-operator-with-common-objects
аа, понял, спасибо
Привет.
Помогите разобраться с concurrent.futures.
Генерируется число функцией random()
Записывается в переменную authtoken
Переменная записывается в словарь data['Token'] = authtoken
К data['Token'] прибавляется еденица и записывается в переменную badtokensum
Вывод:
IP: 2.2.2.2 Token: 0.5771020017377818
IP: 2.2.2.2 TokkenSUM: 1.202102093048409
Более конкретный пример который можно запустить:
https://pastebin.com/EJsxuM15
откуда взял такой вопрос?
вспоминаю свои собесы на джава-джуна, по сравнению с теми вопросами эта детский уровень
Почему один крупный сайт палит работу хромдрайвера через селениум?
Я перепробовал почти всё и у меня всё заработало с помощью библиотеки selenium-stealth. Но на днях скрипт опять перестал рабоать.
С помощью вот этого сайта bot.sannysoft.com я узнал что написанный мной бот на selenium-stealth почему то не подменяет web-gl и возможно именно из за этого сайт палит меня как бота
Так или иначе, может быть кто то знает как скрыть работу хромдрайвера чтобы сайт не понял, что работает скрипт?
Или может быть кто знает аналоги для автоматизации действий на сайте
Палит сразу при заходе на сайт? Если нет, то через какое количество запросов в минуту?
юзай fake user_agent, прокси, вместо перехода по ссылкам используй . click ()
>Палит сразу при заходе на сайт?
Нет, палит при введении логина и пароля - не логинит.
Если без бота, то всё норм
>юзай fake user_agent, прокси, вместо перехода по ссылкам используй . click ()
Всё это знаю и практикую - палит. Я даже на сайт захожу через гугол, а не просто по ссылке как дурак. Всё равно палит. Скрипт открывается с машины которая физически заграницей, так что прокси не использую, да и не всё так с ними просто в селениуме
Хелп. Любая помощь. Я всё перегуглил
Может подскажете где спросить?
>Палит сразу при заходе на сайт?
Хотя вот может быть селениум в консольке начинал ругаться на web-gl как только я заходил на сайт (в гугле где я через селениум гуглил этот сайт, типа я человек - всё норм, консоль молчит)
Повторюсь, после ввода логина и пароля - не логинит.
сори я отрубаюсь, но надеюсь на советы. Спасибо)
Я сейчас не могу сказать точно когда конкретно палит, потому что не за рабочим компом
погодь, а почему должно быть как-то иначе?
я питонодебил и реально не понимаю, что тебя смущает
нет, не тождественны. второй должен быть таким:
> file = open(path, 'w')
> d = json.load(file)
> file.close()
но даже в этом случае будут не тождественны, так как файл не закроется при эксепшне во время обработки джейсона, а with в этом случае автоматически закроет файл. называется context manager
Аналитики самые бесполезные черви-пидоры. Учи давай программинг сука.
Страна в опасности в кольце врагов, а ты все хочешь на дурачка проскочить.
Даже если не задаваться вопросом почему и как оно считает - при любом порядке вычислений там будет true.
твой знакомый уёбок
ни разу в жизни не пригодилось. питоню разное от сайтов до игор с 2014 примерно. нампай юзаю иногда
мимо
Пригождается для байтоёбства.
Это кор либа, итертулс или функтулс тоже не то?
Да тебе и хуй ни разу в жизни не пригодился
Я этот вопрос не искал, столкнулся прост. Там надо было проверить одновременное находение в диапазоне
нахождение*
Ну тип там должно и одно, и второе число в диапазон входить. Должно быть false. Ну вон анончик выше пояснил, как это правильно сделать
У меня так получилось после фиксов
1) У тебя в первый день он пробежал 11, а должно быть 10
2) На второй день у тебя должно получится 10 + 10%, а у тебя там фмксированное число прибавляется
Есть значения словаря котыре нужно превратить в сет
ewfwef = '9', qqwe='12334',green = 'graas', a = '123', f=[7])
нужно добавить проверку и перед выводом превратить список в тюпл. Как это можно сделать?
Это копия, сохраненная 9 ноября 2022 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.