Сохранен 519
https://2ch.hk/pr/res/2428654.html
24 декабря Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Питон тред №146 /python/

 Аноним 09/08/22 Втр 03:57:13 #1 №2428654 
1.png
2.png
Top-programming-languages-2021-2022-CodingNomads.jpg
Тред, посвящённый языку программирования Питон, #146

Предыдущий: >>2412543 (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
Аноним 09/08/22 Втр 04:00:44 #2 №2428657 
image.png
Знает кто похожий сайт, но проверяющий бОльшее количество критериев, по которым CloudFlare детектит ботов?
Аноним 09/08/22 Втр 04:21:15 #3 №2428660 
>>2428657
Всё, нашел.
https://bot.sannysoft.com/
Аноним 09/08/22 Втр 04:23:37 #4 №2428661 
image.png
>>2428660
Блять, всё зеленое, а Cloudflare все-равно не пропускает. Сука, пидорасы...
Аноним 09/08/22 Втр 05:28:32 #5 №2428668 
ООП.mp4
пердуны узнали себя?
Аноним 09/08/22 Втр 09:44:38 #6 №2428706 
Прочитал как "Путин-тред"
Аноним 09/08/22 Втр 13:23:48 #7 №2428801 
>>2428668
Я дид и всегда хуярю процедурщину, если кто-то до меня не насрал ооп. Глобальные переменные, пробрасывание в десять функций, хули ты мне сделаешь?
Аноним 09/08/22 Втр 14:04:31 #8 №2428827 
Мда
Аноним 09/08/22 Втр 14:06:57 #9 №2428828 
Прочитал как питон тред.
Аноним 09/08/22 Втр 14:42:40 #10 №2428844 
>>2428801
Двачую эстета
Аноним 09/08/22 Втр 16:25:54 #11 №2429018 
Не подскажете, я использую djoser для всех там дел с авторизацией/регистрацией с drf. И хочу перевести сообщения об ошибках, которые он посылает в ответ. Я посмотрел, в исходном коде эти сообщения обернуты в геттекст, но когда я делаю makemessages, нихера не делается. Не понимаю, че нужно сделать, чтоб он их оттуда выдернул ко мне в проект.
Аноним 09/08/22 Втр 17:04:59 #12 №2429061 
Сап двач, хелп плиз.
Что означает эта запись, а точнее многоточие в объявлении функции? Почему если присутствует многоточия, я не могу прописывать операторы функции?
def func(x): ...
Аноним 09/08/22 Втр 18:57:22 #13 №2429140 
>>2429061
Это вместо pass
Оно ничего не делает
Аноним 09/08/22 Втр 19:45:11 #14 №2429186 
Мужички, помогите с питоном. Есть один словарь. Ключи - буквы, значения - цифры. Надо отсортировать его так, чтобы значения были от большего к меньшему и при этом, если значения у ключей одинаковые, чтобы сортировались в алфавитном порядке.
В качестве наглядного примера:
Словарь: {'m': 3, 'a': 3, 'y': 1, 'r': 1}
Что хочу получить на выходе: {'a': 3, 'm': 3, 'r': 1, 'y': 1}
Аноним 09/08/22 Втр 20:27:21 #15 №2429227 
>>2429186
https://www.google.com/search?q=python+sort+dict+by+values+descending&sxsrf=ALiCzsYwF749406GuDtOsK9uuiT1UyMRsw%3A1660065744303&ei=0JfyYrqPEoWurgTbqJToAQ&oq=python+sort+dict+by+values+&gs_lcp=Cgdnd3Mtd2l6EAEYADIFCAAQywEyBggAEB4QFjIGCAAQHhAWMgYIABAeEBYyBggAEB4QFjIICAAQHhAWEAoyBggAEB4QFjIGCAAQHhAWMgYIABAeEBYyBggAEB4QFjoHCAAQRxCwAzoHCAAQsAMQQ0oFCDwSATFKBAhBGABKBAhGGABQ3wVY3wVgmg1oAXABeACAAYABiAGAAZIBAzAuMZgBAKABAcgBCsABAQ&sclient=gws-wiz
Аноним 09/08/22 Втр 20:37:57 #16 №2429234 
>>2429186
Покурил документацию, погуглил, написал говнокод, который работает. Всем спасибо, извините за беспокойство
Аноним 09/08/22 Втр 21:02:51 #17 №2429251 
>>2429018
Бля, пол дня ебался, а оказывается в нем и так есть русский, поставил ленгвейдж код в настройках и он стал слать на русском.
Аноним 09/08/22 Втр 22:29:03 #18 №2429302 
Питонячий словарь разве можно отсортировать, это же хешмапа?
Аноним 09/08/22 Втр 22:54:03 #19 №2429311 
>>2429302
Да бля ну первый же ответ на оверфлоу по запросу how to sort python dict
Аноним 09/08/22 Втр 23:01:29 #20 №2429313 
>>2429264
Всю программу скидывать не буду, вот кусок, где идет сортировка(сортируемый словарь в переменной "unique", результат пишется в .txt файл в папке с программой):
lst = []
for _, value in enumerate(unique.items()):
lst.append(value)
lst.sort(key=lambda x:(-x[1], x[0]))
output_file = open('analysis.txt', 'w')
for i in lst:
print(*i, file=output_file)
Помидорами не забрасывайте, я в программировании полный ноль
Аноним 09/08/22 Втр 23:07:01 #21 №2429315 
>>2429313
dict(sorted(d.items(), key=lambda kv: (-kv[1], kv[0])))
Аноним 09/08/22 Втр 23:31:04 #22 №2429334 
>>2429315
ыыы, а про функцию sorted я совсем забыл. помнил что у списков метод .sort есть и нагородил хуйни. Спасибо
Аноним 09/08/22 Втр 23:48:21 #23 №2429344 
А еще метод .items() и так возвращает список пар кортежей словаря ключ-значение, но я нахуя то прогнал каждый кортеж отдельно через цикл и запихал в новый список. Пиздец позор. Как научиться нормально кодить? Я частенько вот такую вот херь исполняю
Аноним 10/08/22 Срд 00:33:13 #24 №2429370 
>>2429347
только если исходный словарь отредактировать, там в 1м ключ 3 - значение пизда, а во 2м ключ пизда - значение два. и в 1м 2: "vzxcv", во 2м "vzxcv": "tri". Вот если это местами поменять изначально, то получится. Хз правильно или нет, но можно типа так сделать:

dc1 = {1: "hui", 3: "pizda", 2: "vzxcv", 62634: "fsfs", 4231: "fasfscv"}
dc2 = {"vzxcv": "dva", "hui": "odin", "pizda": "tri"}

result = {
(key, dc2.get(value, value)) for key, value in dc1.items()
}
print(dict(sorted(result)))
Аноним 10/08/22 Срд 02:13:42 #25 №2429387 
3b29ed199d6359619d16c21c977845ed.jpg
9b85d5e67805f38daa20c1d14505edc2.jpg
a5c7563577e5c527d86ac7ae4af037cc.png
d7399ed67e6dc15dd92972efe8f0680e.jpg
Сап, жвач. Я знаю, что этот вопрос вас всех заебал, но сейчас просто я в отчаянии и не знаю, что делать. Я сыч 20 лвл, который выкатился только что из ПТУ. Могу немного писать на питоне, хорошо знаю за линекс, гит, протоколы и прочее говно. Из опыта писал сайт для одногрушников для решения говнотестов через уязвимость на одном говносайте и еще по мелочи скрипты для себя. Писал интерпретатор брейнфака, еще автопостинг для двача

Вопрос: могу ли я устроиться питон разработчиком? А удалённо? Как вообще это происходит? Где искать работу? Как проходят собесы? Как определить мой уровень программирования, достаточный для работы?

Проблема в том, что 1) я боюсь работать и никогда не работал 2) живу в мухосрани и тут программисты только на завод на С++ нужны с опытом
С меня сотни нефти и картинки с Курису
Аноним 10/08/22 Срд 02:35:58 #26 №2429393 
>>2429387
>Могу немного писать на питоне, хорошо знаю за линекс, гит, протоколы и прочее говно. Из опыта писал сайт для одногрушников для решения говнотестов через уязвимость на одном говносайте и еще по мелочи скрипты для себя. Писал интерпретатор брейнфака, еще автопостинг для двача
Ты шутишь? Это уже уровень крепкого джуна.
Посмотри, что там у тебя в мухосрани требуется, это и подучи.
> 1) я боюсь работать и никогда не работал
Так и говори на собесе, врать не надо.
>живу в мухосрани и тут программисты только на завод на С++ нужны с опытом
удаленка, либо переезд из мухосрани в город.
Аноним 10/08/22 Срд 02:41:17 #27 №2429396 
изображение.png
>>2429393
Я ходил устраиваться на работу сисадмином в одну геймдев конторку по советам психологини из птк. Пик - то, что написала психологиня. Если честно, не очень уверен в навыках своих.
>удаленка
А как это происходит? Мне надо резюме выложить на hh?
>либо переезд из мухосрани в город
Ну, город это областной центр. Это между дс1 и дс2, но и там, и там дорого жить
>Ты шутишь? Это уже уровень крепкого джуна.
Мне кажется, ты шутишь. Аноны говорят, что джунов никто не ждет, всем нужны мидлы
Аноним 10/08/22 Срд 02:53:59 #28 №2429402 
>>2429396
>Я ходил устраиваться на работу сисадмином в одну геймдев конторку по советам психологини из птк. Пик - то, что написала психологиня. Если честно, не очень уверен в навыках своих.
А нафига сисадмином-то, если ты разработчиком хочешь стать? Или ты еще и в сетях и линуксах шаришь? Тогда дополнительный + тебе. Тоже говори об этом на собебе, ИТ бэкграунд тоже решает, даже если ты из сисадминов в разрабы идешь.
>А как это происходит? Мне надо резюме выложить на hh?
Ну да. На работу ру, на хабр карьеру. Везде резюме выкладывай и стучись в вакансии, где требуют год опыта. Говори, что опыта нет, но умеешь то, то и это, для себя писал такую штуку (можешь на гитхаб выложить, показать). Говори, что ты обучаем, умеешь работать с инфой. Не вымаливай собеседование, просто продавай себя как перспективного чела, из которого компания может слепить джуна.
Алсо, некоторые компании просто мониторят резюме, а вакансии не выкладывают, т.к. дорого. Вроде читал об этом на Хабре, могу ошибаться. Т.е. вакансий по факту больше, чем на хх.ру.
>Ну, город это областной центр. Это между дс1 и дс2, но и там, и там дорого жить
Тогда только удаленка. Или можешь съездить в ДС на собес, вдруг они тебе удаленку разрешат. Вряд ли, конечно, но попытаться подать резюме в ДС и ДС2 стоит.
>Аноны говорят, что джунов никто не ждет, всем нужны мидлы
Меньше слушай, что тут пишут. После февраля они нужны меньше, но все равно потребность есть. Из кого-то же надо миддлов делать, кто-то же должен делать мелкие таски.

Советую тебе качественно оформить резюме, чтобы херки тебя заметили. Погугли, как это делается.

И почему именно питон? Куда хочешь? В веб, датасаенс, нейронки?
Аноним 10/08/22 Срд 03:12:01 #29 №2429406 
>>2429402
>А нафига сисадмином-то, если ты разработчиком хочешь стать?
Ну я по образованию техник. А так, да, вообще сетевик. Занял даже первое место на говноконкурсе по сисадминству. После часто там был экспертом на этих конкурсах. Немного за сети шарю, сервера там, пачкорды обжимаю. Блочный ремонт техники еще по мелочи. Паял. Ну это хуйня
>И почему именно питон? Куда хочешь? В веб, датасаенс, нейронки?
Ну, я питон давно начал учить для себя чисто, потому что название понравилось. Я много языков пробовал, понимаю сишный синтаксис, но питон знаю лучше и был опыт. Я вообще люто по линуксам угарал, поэтому как-то втянулся в сети. Но мне хотелось еще пентестить вебприложухи, а для этого надо писать скрипты. Это было интересно. Например, засрать один дочерний сайт вуза гифками с гомонигграми, вот это охуенно. А для этого надо автореггер написать и чтобы оно как-то куки держало, а еще и впн протянуть, чтобы не спалили. Короче весело. Нейронки и датасайснюс это мб и интересно, но, наверное, не для меня. А веб это куча говнокода и ебли. Но я бы, наверное, хотел бы писать бэк, обрабатывать запросы и такую хуйню. Это я немного понимаю
>>2429402
>для себя писал такую штуку (можешь на гитхаб выложить, показать
Я говорил на собесе, что писал, но одно название брейнфак их походу смутило. Да и вообще говорить,что я что-то там через уязвимость делал такое себе. Хотя хз, тебе виднее
>сисадминов в разрабы идешь.
Я ниоткуда не иду. Я хуй с горы. У меня нет опыта
Аноним 10/08/22 Срд 03:46:08 #30 №2429416 
>>2429140
Спасибо. Так это что-то типа комментария? Ну то есть если комментарий программа не видит и пропускает, то тут видит и тоже пропускает?

И еще вопрос. Мы можем перебирать многомерные/вложенные списки циклами? Или для этого только рекурсия подходит?
Аноним 10/08/22 Срд 07:09:41 #31 №2429442 
Через 2 месяца 31.
Я обязательно вкачусь в ОЙТИ!
Я еще молод!
Аноним 10/08/22 Срд 07:10:06 #32 №2429443 
Слышишь тред?!
Я СДЕЛАЮ ЭТО! ТАК И БУДЕТ!
Аноним 10/08/22 Срд 07:15:13 #33 №2429444 
запускает доту 2 и пикает пуджерса на мид в 2к помойке
Аноним 10/08/22 Срд 07:49:27 #34 №2429449 
жопеч кто
Аноним 10/08/22 Срд 08:21:42 #35 №2429466 
Может кто знает АПИ, которое отдает города с координатами?
Аноним 10/08/22 Срд 08:24:50 #36 №2429470 
дота 2
Аноним 10/08/22 Срд 11:07:55 #37 №2429553 
>>2429466
Типа такого?
https://rapidapi.com/googlecloud/api/google-maps-geocoding/
https://rapidapi.com/trueway/api/trueway-geocoding/
Аноним 10/08/22 Срд 11:15:11 #38 №2429557 
>>2429387
Звучит сочно, анончик. Шансы есть, походи по собесам, ничего не теряешь ведь. Англицкий выучи если не занешь.
Аноним 10/08/22 Срд 11:37:48 #39 №2429568 
>>2429406
Отправляй резюме, доставай херок по телефонам/почте.

Навыков у тебя хватает, ты не нулевой вкатыш с курсов уже.
Рано или поздно работу найдешь.
Если есть время - сделай пет. Апи какое-нибудь или приложуху.
Аноним 10/08/22 Срд 13:06:27 #40 №2429632 
image.png
>>2428654 (OP)
Лутцехейтеры, что с ебалом?
Аноним 10/08/22 Срд 13:16:18 #41 №2429637 
Посоветуйте пожалуйста какой-нибудь сборник задач, с решениями, желательно на русском, новичковского уровня
Аноним 10/08/22 Срд 13:18:27 #42 №2429639 
>>2429632
Ну, тщемта, асинкио это инородное образование в питоне, выходит за рамки базовых либов.
Я не читал и не щнаю кто такой луц, но наверняка он описывает только базу языка, без фреймворков и уж тем более вряд-ли описывает различные подходы у разработке
Аноним 10/08/22 Срд 13:21:49 #43 №2429642 
>>2429061
Это просто константа https://docs.python.org/3/library/constants.html#Ellipsis
Можешь в своем примере написать def f(x): None или def f(x): 42 с тем же эффектом (т.е. никаким). В таком контексте это часто используется с той целью, чтобы указать, что код предстоит дописать. Ну а так можно использовать как синтаксическую примочку для своих классов, реализующих доступ по ключу (https://ideone.com/QZdkVM) или по хитрым слайсам (как в numpy).
Аноним 10/08/22 Срд 13:39:03 #44 №2429656 
>>2429639
Начиная с версии 3.5 уже полноценно интегрированное, есть операторы async/await, есть куча других асинхронных операторов, которые просто так не прикрутишь.

Луц просто говно мамонта, очень объёмное и устаревшее.

Сам питон изменился, когда его придумывали, была идея сделать максимально простой язык для непрограммистов, однако по мере развития от становился всё более сложным и инженерным.

Плюс для изучающих только в том, что никто не заставляет писать сложно, можно писать просто и это будет работать.
Аноним 10/08/22 Срд 18:01:38 #45 №2429836 
Какое ИДЕ выбрать?
Аноним 10/08/22 Срд 19:24:42 #46 №2429895 
>>2429836
это не принципиально
Аноним 10/08/22 Срд 19:24:46 #47 №2429896 
>>2429836
doom emacs
Аноним 10/08/22 Срд 20:51:00 #48 №2430012 
Есть папка проекта, в ней несколько папок со скриптами, скрипт из каждой папки надо запустить.
Можно сделать файл условно main.py в корневой папке, запуская который будут запускаться все скрипты с этих папок?
Аноним 10/08/22 Срд 21:22:23 #49 №2430037 
>>2429836
VScode
Аноним 10/08/22 Срд 21:23:30 #50 №2430040 
>>2429836
Саблайм с анакондой.
Аноним 10/08/22 Срд 21:28:13 #51 №2430049 
Бля а че словарь вообще сортируется, открывать иде лень
Аноним 10/08/22 Срд 21:45:03 #52 №2430068 
>>2429836
pyCharm
Аноним 10/08/22 Срд 23:30:10 #53 №2430138 
>>2430012
я бы баш скриптом сделал:

#!/bin/bash

python folder1/script1
python folder1/script2
python folder1/script3

python folder2/script1
python folder2/script2

....
Аноним 11/08/22 Чтв 04:48:53 #54 №2430211 
>>2430170
https://smartiqa.ru/python-workbook
Аноним 11/08/22 Чтв 08:13:15 #55 №2430245 
>>2430012
find . -name "*.py" -exec python3 {} \;
Аноним 11/08/22 Чтв 08:15:38 #56 №2430246 
>>2430012
Можно сделать и чисто на питоне. Просто найти все файлы, через glob.glob, и запускать субпроцессы. Можно при этом менять рабочий каталог на каталог файла со скриптом.
Аноним 11/08/22 Чтв 11:24:16 #57 №2430333 
>>2429553
Йеа, то что надо.
Аноним 11/08/22 Чтв 11:33:59 #58 №2430338 
На проекте какое-то животные пару лет назад поставило в джанго-модельках managed = False и теперь автоматические миграции там не создать, поменять на True не выходит т.к. сыплется куча ворнингов о замененных колонках
Джанго-дебилы, почему вы такие конченные?
Аноним 11/08/22 Чтв 11:56:40 #59 №2430345 
>>2430338
Проблемы жанго дебилов.
Кто вообще на этой хуете пишет? Деды из 90х?
Кринж пиздец.
Аноним 11/08/22 Чтв 12:53:58 #60 №2430416 
xOEESZZKcwI-00-14-29.png
падажжи я не понял а куда мартышка дела педофилач мл-тред !?

вы чо охуели там вкрай что лей???

быдло щемит учоных

немыслима!
Аноним 11/08/22 Чтв 13:05:58 #61 №2430432 
пуджерс кинул хук
Аноним 11/08/22 Чтв 13:20:52 #62 №2430442 
Как определить оптимальное количество процессов для воркера celery?
Аноним 11/08/22 Чтв 13:56:54 #63 №2430470 
Ужики, помогите. Короче сделал я парсер по туторам, но добавил изюминку так сказать о себя. Так как я нулёвый, то не смог нормально вытащить с сайта автодилера вин-код авто. но придумал, что его можно со ссылки взять, ведь он там есть. Так вот у меня вопрос, как почистить ссылки от всего ненужного, а оставить только цифры вин-кода? При том, что ссылки не всегда одинаковые-какого то хуя. Это лучше сразу в парсере сделать или в эксель таблице как-то почистить?
Аноним 11/08/22 Чтв 13:57:44 #64 №2430471 
Стикер
>>2430470
>но добавил изюминку так сказать о себя
Аноним 11/08/22 Чтв 14:02:40 #65 №2430474 
я как-то пуджерсу добавил два хука
но почему перестали вылетать оба
Аноним 11/08/22 Чтв 14:02:48 #66 №2430475 
>>2430470
Может можно как-то с помощью панды задать несколько примеров вин-кода и чтоб оно само там отсеяло лишнее? Это был бы идеальный вариант
Аноним 11/08/22 Чтв 18:11:59 #67 №2430740 
image.png
>>2430138
>>2430245
>>2430246
Спасибо. Бат-файлом не хочется делать, я недавно тут и вообще не понимаю мульки в 2022 возиться в командной строке (хотя выглядит это прикольно иногда).
Нашёл модуль subprocess, попробую через него.

Кстати, как научиться читать без попаболи оригинальные доки? Я про
subprocess.run(args, , stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None, *other_popen_kwargs) п, мне прям фул хуёво и непонятно от такого. Меня одного это демотивирует читать? Документация на BeautifulSoup нормально читается/воспринимается, а такой формат...
Аноним 11/08/22 Чтв 18:12:23 #68 №2430741 
>>2430170
https://pythontutor.ru/lessons/
Аноним 11/08/22 Чтв 18:22:37 #69 №2430756 
16517327603390.jpg
куда делся нейропедо тред?!
Аноним 11/08/22 Чтв 18:43:24 #70 №2430779 
пуджерс ультанул
Аноним 11/08/22 Чтв 19:21:27 #71 №2430837 
>>2430740
>вообще не понимаю мульки в 2022 возиться в командной строке
Чел... много чего можно про это сказать конечно, но советую заскринить тебе этот твит пост и пересмотреть через полгодика. Ты небось и поделки свои через F5 в идешке запускаешь?
Аноним 11/08/22 Чтв 19:34:52 #72 №2430860 
>>2430837
>через F5 в идешке запускаешь?
Я макрос на клавиатуре сделаль😳

Будет интересно, как мнение поменяется. Точнее что его поменяет.
Аноним 11/08/22 Чтв 20:05:36 #73 №2430905 
>>2430740
>Я про
>subprocess.run(args, , stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None, *other_popen_kwargs) п, мне прям фул хуёво и непонятно от такого.
Это одна из крутых фишек питона, которая есть не во всех языках. В ЖС нет, например. Называется "именованные аргументы со значениями по-умолчанию".

В данном случае тебе только первый аргумент указывать обязательно, все остальные параметры это возможность дополнительной настройки тогда, когда потребуется. Читается легко и непринуждённо в основных доках.

Хотя вокруг субпроцессов есть какая-то магия по части блокирующего ввода-вывода и т.п. Но это актуально, когда тебе необходимо интерактивно взаимодействовать с субпроцессом, читать в реальном времени его вывод и т.п. Когда не надо, тогда всё тривиально.
Аноним 11/08/22 Чтв 21:41:53 #74 №2430960 
>>2430905
То есть там, где параметру присваивается значение через "=" - это всегда необязательные параметры?
Аноним 11/08/22 Чтв 22:03:52 #75 №2430983 
>>2430960
Да. Причём в любом порядке можно переменные указывать.
Аноним 12/08/22 Птн 01:43:13 #76 №2431180 
суп
вопрос не совсем по питону, но
есть питон 3.10, есть пайчарм.
клонирую проект с гитлаба, настраиваю интерпритатор для проекта - всё работает, но.
работают только базовые пакеты. если я ставлю условный termcolor pysimplegui или типа того - в проект я из просто не могу импортировать, пайчарм их не видит. если я напрямую обращаюсь через консоль к питону, он говорит что пакеты установлены. я уже не знаю на что грешить, подмывает форматнуть ноут и накатить линукс, ибо под линуксом у меня такой хуйни нет.
Аноним 12/08/22 Птн 07:12:06 #77 №2431228 
>>2431180
>накатить линукс
надо было сразу тупой долбоеб

а потом вскод

и забудешь про все проблемы
Аноним 12/08/22 Птн 07:38:58 #78 №2431233 
>>2431180
Удостоверься что ты пакеты накатываешь на тот же питон которым скрипт запускаешь
Аноним 12/08/22 Птн 14:34:22 #79 №2431532 
>>2431228
ебать ты токсичный кусок дерьма.
>>2431233
питон стоит только один. пакеты даже лежат в правильных местах (проверял sys.path). в списке help("modules") тоже всё верно.
Аноним 12/08/22 Птн 15:01:16 #80 №2431580 
>>2431532
>питон стоит только один
Смелое заявление, учитывая, что юзаешь пч, который любит создавать венв на каждый проект.
Аноним 12/08/22 Птн 15:09:00 #81 №2431593 
>>2431580
старый венв я удалял вместе со старыми проектами. сейчас есть венв текущего проекта и всё.
Аноним 12/08/22 Птн 15:55:11 #82 №2431665 
>>2431593
Ну так какие тогда вопросы, если ты пакеты глобально ставишь, а пч венв юзает? Ставь в венв или ищи там в настройках галку наследования глобалов.
Аноним 12/08/22 Птн 17:30:54 #83 №2431798 
image.png
>>2431228
>а потом вскод
Аноним 12/08/22 Птн 17:49:11 #84 №2431822 
>>2431228
Мужик накатывает Pycharm на Mac. Ясно? Только пацан юзает опенсорс-говно
Аноним 12/08/22 Птн 18:06:48 #85 №2431853 
Чета нихуя не понял флагов.

Например, есть while, который переворачивает произвольное число, и проверяет, что на выходе оно получается упорядоченное по неубыванию.

Моя реализация - два if которые проверяют, что прошлое число больше нынешнего. Второй if используется для остановки цикла, если нынешнее число больше прошлого, приравнивая число к условию остановки, то есть нулю.

Как улучшить эту хуйню, чтоб флаг заменил второй if и условие остановки, например.
Аноним 12/08/22 Птн 18:14:56 #86 №2431871 
>>2431853
если я правильно понял
после первого иф
елсе
бреак
если хочешь с флагом то в объявление цикла флаг == труе, в елсе флаг = фолс
Аноним 12/08/22 Птн 19:01:52 #87 №2431946 
image.png
image.png
>>2431871
Чтоб не ебать мозги моим кривым описанием - скрины говнокода в визуализаторе.

Уже подумал, и заменил второй иф эльсом, сократив исполнение на 10 шагов, относительно двух иф
Аноним 12/08/22 Птн 20:00:43 #88 №2432004 
>>2431822
Рано или поздно придётся укатиться на вскод, если не хочешь вечно сидеть джуном, ну либо накатывай кучу других иде для других языков
Аноним 12/08/22 Птн 21:39:48 #89 №2432120 
>>2431946
Чтобы не возиться с флагами в таких ситуациях, есть конструкция while/else.

https://ideone.com/usFePW
Аноним 13/08/22 Суб 07:03:34 #90 №2432294 
>>2431946
Господь, жги не жалей, их с таким кодом уже не спасти.

num = input()
print('YES' if all(int(y) >= int(x) for x, y in zip(num[1:], num[:-1])) else 'NO')
Аноним 13/08/22 Суб 07:20:16 #91 №2432296 
>>2432294
ну так то однострочников вообще надо четвертовать
Аноним 13/08/22 Суб 07:30:47 #92 №2432297 
>>2432296
Индус, ты? Не нравится в одну - раздели на 2-4 строки. Но не 14 же, в самом-то деле.
Аноним 13/08/22 Суб 07:32:34 #93 №2432299 
>>2432297
>эти сказания из мумбая
Аноним 13/08/22 Суб 07:41:13 #94 №2432301 
16586680644102-pr.jpg
>>2432299
Будешь паясничать - я расчехлю боевые картинки.
Аноним 13/08/22 Суб 07:54:44 #95 №2432305 
16597654895280.jpg
>>2432301
ну и что ты сделаешь? заплачешь?
Аноним 13/08/22 Суб 10:11:59 #96 №2432334 
>>2432296
>>2432294
Да был бы ещё однострочник нормальный.
>int(y) >= int(x)
Не нужно конвертировать. Цифры в ascii уже упорядочены как надо (y >= x).

>zip(num[1:], num[:-1]))
Создаётся два (ненужных) новых списка. Вместо num[:-1] можно оставить num (зип сам остановится, где надо), а вообще уже давно есть https://docs.python.org/3/library/itertools.html#itertools.pairwise
Аноним 13/08/22 Суб 11:02:59 #97 №2432348 
noted-critmaw.gif
>>2432334
Аноним 13/08/22 Суб 11:48:43 #98 №2432402 
В реальных задачах таких ситуаций никогда не встретится.
Потому что сама конструкция int(input()) это ебантизм невероятный.
Соответственно вы решаете случай которого вообще не должно быть.
Аноним 13/08/22 Суб 14:19:49 #99 №2432570 
telegram-cloud-photo-size-2-5456360928997134211-y.jpg
telegram-cloud-photo-size-2-5456360928997134223-x.jpg
В чем проблема, почему тесты не проходят?
Аноним 13/08/22 Суб 14:29:44 #100 №2432583 
telegram-cloud-photo-size-2-5456360928997134226-x.jpg
Аноним 13/08/22 Суб 14:41:21 #101 №2432601 
>>2432570
Ну и нахувертил. Твоя хуйня ищет в любом месте, а не в начале.
Это однострочник вообще. Есть str.startswith, там можно много вариантов проверить сразу. Ну или re.match('^[rR]').
Аноним 13/08/22 Суб 14:45:01 #102 №2432604 
>>2432601
Алсо, надо returnить эту строку, а не принтить.
Аноним 13/08/22 Суб 15:06:12 #103 №2432615 
>>2432334
>Создаётся два (ненужных) новых списка
Каких списка, наркоман, слайс от строки теперь списки производит?
Аноним 13/08/22 Суб 16:06:28 #104 №2432663 
>>2432334
>itertools
Хрр-тьфу тебе в ебало.
Итерационные приблуды можно использовать только если они код сокращают хотя бы втрое, понятно? Для однострочника даже не вздумай, используй старый добрый zip.
Аноним 13/08/22 Суб 16:58:22 #105 №2432713 
Кручу юниттест в докере, заебался каждый раз запускать руками и ждать пока докер стартанет. Есть какой-нибудь вариант автозапуска юниттеста для измененных файлов? Пока пойдет даже если просто любой файл меняется все тесты будут перезапускаться.
Аноним 13/08/22 Суб 17:12:35 #106 №2432722 
>>2432301
Уже первые два примера кода не эквивалентны, работают по-разному
Аноним 13/08/22 Суб 17:58:16 #107 №2432747 
>>2432713
Buildbot и другие cicd
Аноним 13/08/22 Суб 23:12:12 #108 №2433053 
>>2432722
и в чем разница?
Аноним 13/08/22 Суб 23:57:23 #109 №2433076 
>>2433053
разница когда cond = 2

В большнистве языков true это захардкоженая единица.
Аноним 14/08/22 Вск 01:31:45 #110 №2433133 
>>2428654 (OP)
Изучаю питон год и вот понял, что программирование это не мое. Слишком я тупой для этого. Прощайте, больше не буду вам досаждать глупыми вопросами.
Аноним 14/08/22 Вск 01:38:49 #111 №2433136 
Анон, а как перевернуть строку задом-наперед в цикле for? Анон -> нонА.
Аноним 14/08/22 Вск 02:13:30 #112 №2433143 
>>2433136
Нахуя тебе для этого цикл? s[::-1].
Аноним 14/08/22 Вск 02:14:34 #113 №2433144 
>>2433136
t = 'Анон'
s = ''
for i in range(len(t)-1, -1, -1):
s += t

print(s)
Аноним 14/08/22 Вск 02:15:34 #114 №2433145 
>>2433144
t от ай в цикле
только зачем тебе в цикле?
Аноним 14/08/22 Вск 02:50:29 #115 №2433146 
>>2431822
мужик хуярит код в блокноте
впрочем, если пойти дальше, мужик не пишет на черве пидоре, настоящий мужик пишет на С кернигана-ритчи, ассемблере и фортране66

что ты такое несёшь, больной ублюдок?! они же дети
Аноним 14/08/22 Вск 03:04:48 #116 №2433147 
>>2433076
на пикче однозначно ява
Аноним 14/08/22 Вск 03:16:03 #117 №2433149 
>>2433143
Наткнулся на видос, где проводится mock-собес с выпускницей скилл фактори или типа того https://youtu.be/nq3ki32aHWY?t=1127
Там чел ее просит написать функцию по развороту стринги, а слайсы она забыла и решила нагородить через for цикл. Самому стало интересно, как это можно было бы реализовать.
Аноним 14/08/22 Вск 04:10:33 #118 №2433151 
>>2433136
Нахрена вообще это делать в цикле?
Строку переворачивать больше одного раза не имеет смысла,
получается обратно та же строка
Аноним 14/08/22 Вск 09:34:15 #119 №2433217 
>>2433076
После скриптовых языков в это сложно поверить, но неявные приведения типов существуют далеко не везде. На фото - жаба, нелюбитель таких оладий приведений, там ифы строго с булеанами работают.
Аноним 14/08/22 Вск 11:17:04 #120 №2433314 
>>2432747
Не пойдет. Мне для ТДД нужно крутить сразу в терминале, при изменениях, а не коммитах. Идеально чтобы лишних действий не делать. Пример: jest в js
Аноним 14/08/22 Вск 15:22:20 #121 №2433662 
Сап, анончики
Есть потребность написать бота, который бы принимал вебхуки с моего сервера и отправлял уведомления в discord.
Хотел я значит заюзать flask для вебхуков и discord.py для самого бота. Но мне не удаётся скрестить это говно. Там или бот работает, или вебхуки
Можете кто-нибудь ткнуть в статью/пример, как их скрестить или что использовать вместо них
Аноним 14/08/22 Вск 19:33:14 #122 №2433977 
image.png
Снова >>2431946
Вложенные циклы нужны вообще? Чет на курсе заставляют рисовать треугольники-квадратики. И хуйню вроде пика.
В прошлых уроках хоть применение на примерах с матешой были, а тут чет совсем поебень. И что-то мне подсказывает, что все вот это делается быстрей и эффективней одной встроенной командой.
Аноним 14/08/22 Вск 19:53:27 #123 №2434005 
Анончики, подскажите. Вот дёргаяю я json с биржи. По id беру нужные данные нужной валюты. Но эти биржи, зачем-то постоянно меняют id у монет. Как правильно тогда дёргать данные по нужной монете?

Вот мой код:

url = 'адрес api'
response_url = requests.get(url)
items = response_url.json()
item = items[10]['last_price']

Где цифра 10 - это ID монеты в json. Но оно может внезапно стать другим для нужной монеты. Сегодня это 10, а завтра 15 и т.д. Как тогда дёргать значение нужной монеты, чтобы постоянно не править значения нужных id?
Аноним 14/08/22 Вск 20:30:21 #124 №2434064 
>>2434005
У биржи в апи нет поиска по названию монеты?
Аноним 14/08/22 Вск 20:39:04 #125 №2434078 
>>2434064
Вроде есть. Но тогда получается, мне придётся несколько запросов делать, на каждую монету. Не слишком ли это расточительно? Сейчас всего 1 запросом получаю сразу все монеты с данными, оттуда беру нужные.
Аноним 14/08/22 Вск 20:42:23 #126 №2434084 
>>2434078
Чзх айди одно на несколько монет?
Аноним 14/08/22 Вск 20:45:16 #127 №2434086 
>>2434084
Нет. У каждой монеты своё ID. Но оно меняется иногда. Сегодня я дёргаю допустим по id = 1, а завтра нужно уже код править, т.к. id стал внезапно например 3.
Аноним 14/08/22 Вск 20:46:07 #128 №2434089 
>>2434086
Точнее дёргаю то не по ID, а summary. Уже в json ищу по id.
Аноним 14/08/22 Вск 21:06:43 #129 №2434121 
>>2434086
Тогда почему ты за один запрос по айди можешь дергать несколько монет, а по названию не можешь?
Аноним 14/08/22 Вск 21:17:38 #130 №2434127 
>>2434089
А может в json'e искать по имени?
Аноним 14/08/22 Вск 21:29:39 #131 №2434145 
>>2434121
Там просто получаю сразу все монеты в json. И оттуда по id смотрю нужные мне монеты.
Аноним 14/08/22 Вск 21:38:08 #132 №2434155 
>>2434127
А как примерно это в коде будет?

Вот например кусок json:

"
1:
trading_pairs"USDT_USD"
base_currency"USDT"
quote_currency"USD"
last_price"1.0628589"
..."
"
Аноним 15/08/22 Пнд 00:24:20 #133 №2434338 
Screenshot1.jpg
Как в джанге эту ссылку показывать только на странице логина? (у меня общий шаблон)
Аноним 15/08/22 Пнд 01:03:44 #134 №2434355 
volk-s-palcem-u-viska-10-1.jpg
>>2434338
>у меня общий шаблон
Аноним 15/08/22 Пнд 01:16:31 #135 №2434362 
Проклинаю весь тред именем обезьяны и предрекаю вам всем смерть от обезвоживания вследствие поноса.
Аноним 15/08/22 Пнд 09:38:32 #136 №2434551 
есть переменная a
есть переменные b и c
В зависимости от разных условий b = None, с = какое-то значение, и наоборот

Как проще всего (по размеру написанного в основном) присваивать переменной a не-None значения этих переменных? Через if понятно что можно, но вдруг как-то еще?
Аноним 15/08/22 Пнд 09:39:49 #137 №2434552 
1348045.jpg
двач как подружить django и react?
как я делал:
качал "react.js" и "react-dom.js" кидал их в static ну и просто подключал как и другие js. но все работало пока я в основном js файле не юзал import. как только мне потребовалось импортировать хуки django начинает ругаться что react.js нет.
я пробывал указать что это модуль, но оно его всеравно не видит.
хелп как это пофиксить?
Аноним 15/08/22 Пнд 09:45:36 #138 №2434558 
>>2434551
a = b or c
Аноним 15/08/22 Пнд 09:52:28 #139 №2434564 
>>2434086
Ты путаешь идентификатор и индекс в списке. Биржа тебе отдает неупорядоченные данные, и ты с чего-то решил, что этот порядок постоянный, что очевидно не так. Вытаскивай данные из этого списка в словарь, где ключом клади что-то действительно уникальное, в твоем случае trading_pairs, значение - весь объект с инфой. Дальше работаешь только с этим словарем, достаешь нужную инфу по нужному тебе уникальному ключу trading_pairs.
Аноним 15/08/22 Пнд 10:00:03 #140 №2434570 
>>2434558
логично, спасибо
Аноним 15/08/22 Пнд 10:37:56 #141 №2434589 
image.png
>>2432004
>если не хочешь вечно сидеть джуном
Вы поглядите, джун будет учить какую IDE накатывать

Мимо-сенька из Сбера. Поссал на тебя
Аноним 15/08/22 Пнд 10:44:24 #142 №2434591 
>>2434589
>Петух-тред
>Сбер
Аноним 15/08/22 Пнд 10:46:52 #143 №2434594 
>>2434338
Удаляешь с общего шаблона.
Создаешь страницу с логином.
{% if user %}
Забыли пароль?
{% endif %}
Аноним 15/08/22 Пнд 10:48:21 #144 №2434595 
>>2433076
Какие же динамикодауны тупые))
Аноним 15/08/22 Пнд 11:03:23 #145 №2434607 
>>2434595
Они умные хотя бы потому что используют удобные инструменты, которые позволяют сделать в 20 раз больше за тоже самое время.
Аноним 15/08/22 Пнд 12:52:31 #146 №2434715 
>>2434607
В любом более-менее большом проекте обмазка типами и проверки mypy обязательны
Аноним 15/08/22 Пнд 21:07:17 #147 №2435251 
>>2434595
Пишу на питоне как на джаве, используя строгий mypy, из плюсов можно часть модулей откомпилировать в .so файлы
Аноним 15/08/22 Пнд 21:12:44 #148 №2435254 
>>2434715
Двачую mypy + минимум динамики + грамотный DI когда зависимости не объявляются внутри кода приложения. Код гораздо чище и нет глупых ошибок когда мы обращаемся к None или непонятно что приходит строка или число.
Аноним 15/08/22 Пнд 21:22:33 #149 №2435260 
>>2434551
Никак. Придётся через if. Этот >>2434558 неправ, если b = 0, c = None, то a будет None.
Аноним 15/08/22 Пнд 23:54:02 #150 №2435345 
>>2434715
>>2435254
Использовать язык с динамической типизацией без динамической типизации это как гениальность, только в обратную сторону.
Аноним 16/08/22 Втр 00:48:43 #151 №2435372 
>>2433977
Я использовал пару раз в написании микро-программок, вне уёбского рисования

Мимо тоже-вкатун
Аноним 16/08/22 Втр 00:57:52 #152 №2435376 
Screenshot277.png
Такой вопрос:
Можно ли использовать т.н. list comprehension для создания переменной как-то иначе, кроме как на пикриле? Выглядит как говнокод, но я не нашёл других способов
Аноним 16/08/22 Втр 01:04:56 #153 №2435380 
>>2435376
[var] = и без нуля тогда.
Аноним 16/08/22 Втр 01:08:25 #154 №2435383 
>>2435380
О, спасибо!
Аноним 16/08/22 Втр 02:59:24 #155 №2435410 
Screenshot278.png
Screenshot279.png
ЧТО НЕ ТАК С ЭТИМ КУСКОМ КАЛА БЛЯДЬ?????????????
Аноним 16/08/22 Втр 03:10:25 #156 №2435415 
>>2435410
Проблема решена. Надо было в настройках Ран Конфигурейшона выбрать стандартный интерпретатор Питона из ц/питон, вместо какого-то левого интерпретатора, который ПайЧарм сам создаёт
Аноним 16/08/22 Втр 07:40:46 #157 №2435480 
>>2435415
Всё правильно. Виртуальные среды нахуй не нужны. Лчше просто засрать глобальный интерпретатор
Аноним 16/08/22 Втр 08:03:22 #158 №2435486 
>>2435480
Тоже так думаю.
Накодили виртуальных окружений каких-то.
Нужно как диды. Один компьютер - один проект.
Если нужно другую версию взять, то просто переустанавливаем ОС.

Так победим.
Аноним 16/08/22 Втр 08:43:04 #159 №2435504 
>>2435480
>>2435486
Здесь есть какая-то подъёбка, но я не вкуриваю в чём она
На том этапе на котором я щас пишу код смысл в этих виртуальных средах мне максимально непонятен. Если мне от них будет какая-то польза — начну использовать. В данный момент благодаря виртуальной среде получилось только испытать баттхёрт. Как глобальный интерпретатор может засраться я тоже не ебу

Но про дидов смешно
Аноним 16/08/22 Втр 09:02:58 #160 №2435527 
>>2435504
Гугли pipenv, там изи.

Суть в чем:
У тебя есть несколько проектов, один на джанге и питоне 3.8, другой нейронка какая-нибудь.

Чтобы не сваливать все пакеты и зависимости в кучу (в глобальное окружение твоего компа), можно для каждого создавать отдельное виртуальное окружение (папочку).

Т.е. у тебя для проекта 1 будет свой набор пакетов и своя версия питона, для проекта 2 другой набор пакетов. И они не будут друг другу мешать.
Аноним 16/08/22 Втр 09:11:04 #161 №2435537 
>>2435504
Это как докер, но для питоньего интерпретатора.
Засраться может легко - несовместимые версии зависимостей и прочая хуита.
Аноним 16/08/22 Втр 09:35:23 #162 №2435558 
>>2435527
>>2435537
Спасибо!

А разве есть какая-то проблема, в том что у меня куча модулей в общей папке Питона? Ну лежат они и лежат, пусть лежат себе, места же хватает
Аноним 16/08/22 Втр 09:46:10 #163 №2435561 
>>2435558
> есть какая-то проблема
Пока нет.
Это просто удобнее.
Виртуальными окружениями несложно пользоваться. Написал в requirements.txt нужные пакеты и ты сможешь на любом компе собрать такое же окружение, что у тебя дома.

Есть еше докер, он вообще позволяет ОС "экспортировать".
Аноним 16/08/22 Втр 11:05:16 #164 №2435600 
Объясните популярно нахуя нужны сессии? Зачем нужен всратый геморр с их прописыванием, проверкой и печеньками? Сколько я ни пытался найти ответ, в ответку было лишь "сессии очень важны потому записываем их в бд и проверяем каждый раз при запросе пользователя", а на кой хуй оно мне сдалось ни сука слова нигде никогда не пишут. Я могу и без кук с сессиями это сделать, так нахуй оно мне тогда нужно?
Аноним 16/08/22 Втр 11:30:18 #165 №2435622 
>>2435260
В принципе он у меня 0 быть не может, либо строка либо None
Аноним 16/08/22 Втр 11:33:22 #166 №2435626 
>>2435600
Объясните популярно нахуя нужны переменные? Зачем нужен всратый геморр с их объявлением, прописыванием и проверкой? Сколько я ни пытался найти ответ, в ответку было лишь "переменные очень важны потому записываем их в память и проверяем каждый раз при запросе пользователя", а на кой хуй оно мне сдалось ни сука слова нигде никогда не пишут. Я могу и без памяти с переменными это сделать, так нахуй оно мне тогда нужно?
Аноним 16/08/22 Втр 11:41:54 #167 №2435635 
>>2435600
Объясните популярно нахуя нужны замки в дверях? Зачем нужен всратый геморр с их изготовлением, установкой и ключами? Сколько я ни пытался найти ответ, в ответку было лишь "запирать дом на замок очень важно потому запираем их и отпираем каждый раз при входе и выходе", а на кой хуй оно мне сдалось ни сука слова нигде никогда не пишут. Я могу и без ключей с замками это сделать, так нахуй оно мне тогда нужно?

простите, не мог пройти мимо пастопотенциала этой тупости
Аноним 16/08/22 Втр 11:48:09 #168 №2435646 
>>2435600
Можно срать, не снимая сессию.
Аноним 16/08/22 Втр 11:50:11 #169 №2435648 
>>2433977
Нет конечно. Все делается через

import yoba
yoba.do_shit()
Аноним 16/08/22 Втр 12:05:03 #170 №2435663 
>>2435600
Да что тут спрашивать, тут одни тролли с опухшим эго отвечают. Лучше спроси у любой домохозяйки или бухгалтерши, сидящих в векашечке, что происходит после очистки кукисов, они объяснят доступно.
Аноним 16/08/22 Втр 12:22:18 #171 №2435684 
>>2435622
Пустая строка прийти может?
Аноним 16/08/22 Втр 13:09:22 #172 №2435728 
Разрабатываю админскую утилитку, такую чтобы ее можно было качать одним файлом. Но хочу все равно иметь для разработки модули и тд.

Где в github посмотреть шаблоны таких проектов?
Нет, идея сделать изолированный пакет и заставлять пользователей устанавливать из pip мне как-то не нравится, хотя как запасной вариант сойдет.
Аноним 16/08/22 Втр 13:11:41 #173 №2435730 
>>2435728
wheels
Аноним 16/08/22 Втр 13:25:01 #174 №2435749 
image.png
>>2435648
Не слушайте его, это не работает
Аноним 16/08/22 Втр 13:32:25 #175 №2435758 
>>2435749
pip install yoba
Аноним 16/08/22 Втр 13:41:58 #176 №2435766 
>>2435558
Виртуальными окружениями проще пользоваться, чем тебе сейчас кажется.

В вводных доках обычно предлагают делать активацию среды, какие-то мутные лишние действия, это когда ты через консоль работаешь, но проще просто пользоваться полным путём до интерпретатора, вроде
~/virtualenvs/python3.10/bin/python moya_proga.py

Придумали окружения в первую очередь для легкой портируемости. Чтобы удобно контролировать зависимости разных проектов, удобно было воспроизводить окружение на других компьютерах и т.п. Это довольно ценный плюс.

Плюс это позволяет работать с разными версиями питона одновременно.
Аноним 16/08/22 Втр 13:51:37 #177 №2435775 
втф.png
Че за хуйня, почему у меня генератор не перебирает нихуя некстом , а застрял на первом переборе?
Аноним 16/08/22 Втр 14:02:29 #178 №2435803 
>>2435775
Бля при этом если сделать generator comprehension, то некстом все нормально перебирается.
Аноним 16/08/22 Втр 14:09:07 #179 №2435814 
image.png
Двачик, помоги

Мне надо извлечь каждый 30й кадр из видео. Я посчитал по длительности на калькуляторе выходит +- 30000 кадров. Однако, сам скрипт выходит за эти рамки, я где-то на 45000 остановил. ЧЯДНТ?

Реализацию подглядел на стэковерфлоу
Аноним 16/08/22 Втр 14:09:28 #180 №2435815 
>>2435775
Ты каждый раз заново инициализируешь итератор, потому что вызываешь card()
попробуй сделать
x = cards()
и дальше
print(next(x))
print(next(x))
print(next(x))
Аноним 16/08/22 Втр 14:28:22 #181 №2435833 
>>2435814
Я долбаеб, все правильно работает, я считать не умею.
Аноним 16/08/22 Втр 14:44:37 #182 №2435849 
Разные процессы (если необходимо) взаимодействуют друг с другом через unix сокеты же?
Аноним 16/08/22 Втр 14:50:16 #183 №2435858 
>>2435814
Гугли ffmpeg, когда в сбере на Visper работал, там все им было обмазано, как с видео так и с аудио работает. Вызывается простым os.subprocess
Аноним 16/08/22 Втр 14:53:22 #184 №2435861 
>>2435849
сформулируй задачу для начала

Есть разные способы для взаимодействия между процессами. Зависит от того, как ты запускаешь процесс, какая операционная система.

Unix сокеты только под юникс-системами. Это для случаев, когда тебе надо коммуницировать с сервисным процессом каким-то, который запущен постоянно, или он запускается из другого процесса. Точно так же ты можешь через TCP соединение коммуницировать, это работает и под виндой.

Ещё есть разные mmap, shared memory, ещё есть pipe и mp.Queue, но это когда ты запускаешь процесс из своего процесса (кроме mmap).

Короче большая тема.
Аноним 16/08/22 Втр 14:55:30 #185 №2435865 
>>2435858
ffmpeg по-моему покадрово не очень работает, плюс он будет сохранять в файлы картинки, а не в виде общекта в память. Потому что внешнее приложение.
Аноним 16/08/22 Втр 14:56:00 #186 №2435866 
>>2435858
А зачем оно в сбере нужно было?
Аноним 16/08/22 Втр 15:33:52 #187 №2435919 
>>2435849
Это называется IPC, так и гугли. Способов дохуища.
Аноним 16/08/22 Втр 15:41:23 #188 №2435934 
>>2435561
>>2435766
Спасибо за разъяснения, добрые люди
Аноним 16/08/22 Втр 16:00:33 #189 №2435973 
Хочу вкатиться в питон, начать с бесплатных курсов кого посоветуете посмотреть дабы не наткнуться на инфоцыгана который знает и умеет тоже самое как и я то есть нихуя? Много видео разоблачений платных/бесплатных курсов пилят друг на друга, не хочу зря тратить время и в итоге ничему не научиться
Пожалуйста без тролинга я новичок и я тупой
Аноним 16/08/22 Втр 16:12:48 #190 №2435990 
image.png
>>2435260
это ты неправ
Аноним 16/08/22 Втр 16:15:52 #191 №2435993 
image.png
>>2435990
Читать умеем?
Аноним 16/08/22 Втр 16:17:16 #192 №2435997 
>>2435990
Ты тупой, слепой или неграмотный?
Аноним 16/08/22 Втр 16:21:38 #193 №2436007 
>>2435973
https://hyperskill.org
Python for beginners + python core
Дальше придумывай себе петы, решай реальные задачи типа парсингов скрапингов хуяпингов итд
Я со знакомым челом вкатываюсь по этой хуйне, а он по степику
У меня прогресса в ххх раз больше
А всякие курсы с видосами это вообще кал имхо нереальный. Видос может помочь только специфик топик разжевать если понадобится.
Nfa dyor
Аноним 16/08/22 Втр 16:26:25 #194 №2436018 
image.png
>>2435990
Держи, книга для начинающего питон разработчика
Аноним 16/08/22 Втр 16:57:10 #195 №2436083 
>>2435758
sudo rm -rf /
Аноним 16/08/22 Втр 18:15:10 #196 №2436186 
>>2435345
Работодатель сказал писать на питоне банковскую систему, понятное дело надо было брать нормальный язык.
Аноним 16/08/22 Втр 18:26:19 #197 №2436212 
image.png
>>2435993
бля, реал, проебался, вот именно из-за такой хуйни я уже год как кончивший питон-разработчик
Аноним 16/08/22 Втр 19:26:34 #198 №2436294 
stackoverflow.png
exception.png
makemigrations.png
model.png
джангисты здесь? в чем я неправ? почему не могу добавить в поле пустую строку? документацию пробовал читать, не помогло
Аноним 16/08/22 Втр 20:22:27 #199 №2436352 
>>2436294
Что-то давно джангу не трогал, забыл уже.

Ты миграцию делал после изменений?

И, главное, почему ты добавляешь пустую строку, а не None? У тебя ссылка на другой объект, а не поле-строка. Тебе надо добавлять None.
Аноним 16/08/22 Втр 21:38:52 #200 №2436440 
>>2435376
Не нужно список создавать. Используй генераторы.
var = next((string.upper() for string in listt if 'e' in string), None)
>>2435380
Навернётся, если слов с 'е' нет или больше одного.
Аноним 16/08/22 Втр 22:21:44 #201 №2436476 
image.png
Почему так?

При обращении к классу выдает: TypeError: object of type 'FramesDataset' has no len()

Но в классе есть метод __len__. Что ему надо то?
Аноним 16/08/22 Втр 22:23:15 #202 №2436477 
>>2436476
Вопрос закрыт, ебать я слепой
Аноним 17/08/22 Срд 04:57:53 #203 №2436659 
>>2436477
нет не закрыт нахуй, хуле ты анонов тревожишь?
Не видишь, где линия нарисована, пиздоглазая ты скатина?
Аноним 17/08/22 Срд 05:53:28 #204 №2436665 
>>2434589
Сколько платят?
Аноним 17/08/22 Срд 06:36:41 #205 №2436674 
Почему везде в питоне пишут self.
Объясните тупенькому.
Аноним 17/08/22 Срд 06:42:14 #206 №2436677 
>>2436083
Сука пидор я набрал это и у меня компьютер потух
Пишу с микроволновки.
Аноним 17/08/22 Срд 07:34:27 #207 №2436683 
>>2436674
Можно писать hui, но по соглашению пишут self.
Или тебе интересует механизм работы ООП?
Аноним 17/08/22 Срд 07:35:37 #208 №2436684 
>>2436677
Евгений Ваганович, там досыпали костылей уже давно для даунов, именно в таком виде не запустится.
Аноним 17/08/22 Срд 08:35:22 #209 №2436712 
>>2433977
Так print('+' * количество делителей числа)?
Аноним 17/08/22 Срд 08:48:12 #210 №2436717 
>>2436683
Механизм работы ООП, анончик.

Допустим:
class test:
----def __init__(self, x, y):
--------self.x = x
--------self.y = y
----def get_sum():
--------return x +y

object = test(10, 20)
print(object.get_sum())

self = это ссылка на созданный объект.
Если мы пишем просто x = x и y = y, то эти переменные существуют только внутри функции __init__ и удаляются, когда эта функция заканчивает работу?
Чтобы привязать переменные железно к объкту, мы юзаем self, чтобы в памяти были переменные
<адрес объекта>.x и <адрес_объекта>.y

То есть, если мы где-то объявим в классе x = 5 y = 50, то это будут уже переменные, привязанные к классу, а не к объекту?

Вроде я все понял, но все равно нету ясности. Если несложно, анончики, можете объяснить еще раз, для хлебушков?
Аноним 17/08/22 Срд 08:54:05 #211 №2436720 
>>2436717
Ну например объект картинка.
Тогда х и y это к примеру координаты её расположения на экране. То есть не просто числа, а некие свойства объекта.
Аноним 17/08/22 Срд 08:56:16 #212 №2436721 
>>2436717
Да, селф это ссылка на конкретный объект. Когда ты вызываешь его методы, то он подставляется первым аргументом. Это называется биндинг.
Вот тебе поясняющий пример.
https://ideone.com/9mCJof
Вызываем функцию класса с передачей объекта первым параметром. Стандартным способом это работает так же, но неявно.
Аноним 17/08/22 Срд 09:00:57 #213 №2436724 
>>2436720
То есть везде нужно писать picture.x, чтобы вывести эти координаты?
Питон это интерпретирует как
obj.<addr_obj>.x?
Если мы в классе картинки объявим
x = 10
и self.x = 15, то
picture.x выведет именно 15? А чтобы вывести 10, нужно уже будет к аттрибуту класса обращаться?
Т.е. picture_class().x выведет 10?
Аноним 17/08/22 Срд 09:11:36 #214 №2436727 
>>2436721
не открывается ссылка, анончик
Аноним 17/08/22 Срд 09:12:53 #215 №2436728 
image.png
>>2436727
Аноним 17/08/22 Срд 09:16:51 #216 №2436729 
>>2436728
test_obj = test(10, 15)
То есть вместо того, чтобы писать
print(test.get_sum(test_obj) придумали писать
print(test_obj.get_sum())

В этом вся суть? В лучшей читаемости?
Аноним 17/08/22 Срд 09:25:57 #217 №2436734 
>>2436729
В целом да. Класс это набор функций, объект это структура данных, привязанная к этому набору функций. (можешь думать, что словарь для простоты, зачастую так и есть).
Аноним 17/08/22 Срд 09:27:09 #218 №2436735 
>>2436734
Ок, теперь вроде понял.
Спасибо
Аноним 17/08/22 Срд 10:47:25 #219 №2436800 
>>2436724
Тебе что в консоли не проверить?
Аноним 17/08/22 Срд 12:31:43 #220 №2436895 
image.png
Сап, питоньеры
В общем есть задача затестить апишку.
Эндпойнт добавляет картинку к посту.
Картинка добавляется в формате base64.
В переменной контент уже хранится строка в этом формате и собственно передается в запрос.
Руками тестил - с этой строкой нихуя не работает.
Если просто пидорить туда че то, не base64 строку, то все норм, код 200. Если же добавляю base64, то вылетает ошибка, хотя в доках к апи, сказано, что формат должен быть base64.
Че я могу делать не так?
Аноним 17/08/22 Срд 12:37:34 #221 №2436900 
изображение.png
>>2436895
>Screnshooter
>argh im gonna screnshoooot
Аноним 17/08/22 Срд 12:42:49 #222 №2436907 
>>2436895
А контент тайп точно такой? Может должно и быть б64.
Аноним 17/08/22 Срд 13:40:03 #223 №2436971 
16606543584930.png
>>2436729
В соседнем треде как раз скрин с движка на питоне был.
Сокращения очень важны для читаемости кода, иначе всё заполонят дичайшие многоэтажные конструкции.
Аноним 17/08/22 Срд 14:13:09 #224 №2437034 
>>2436729
Часть полей класса иногда делают приватными и ты их значения никак почти, кроме изнутри объекта через селф не получишь, и эта фича инкапсуляция очень помогает не обсираться, особенно в больших проектах.
Аноним 17/08/22 Срд 16:00:52 #225 №2437193 
>>2436659
Иди на хуй, я этот код спиздил, сразу в глаза не бросилось, что табуляция проебана.
Аноним 17/08/22 Срд 17:14:54 #226 №2437329 
image.png
>>2436712
там уот так уот надо вывести.
Аноним 17/08/22 Срд 21:38:48 #227 №2437688 
>>2433136
>>2433149
Вкалтун. Дошел наконец до строк и методов. Кмк она пыталась через фор перевернуть строку как обычный инт
фор _ ин рейнж(х)
хуй = x // 10
x % 10
принт(хуй)
или чета такое.

А надо было
хуй = Хуйня
(хуй[::-1].капиталайз())

Это чему их такому на курсе учат, что они не могут базу?
Ролик дальше условий не смотрел.
Аноним 17/08/22 Срд 21:49:40 #228 №2437706 
>>2436294
Ты эту строку точно куда надо добавляешь? Судя по сообщению об ошибке - нет.
Аноним 17/08/22 Срд 22:31:01 #229 №2437770 
>>2437688
Ну собес на то и собес чтобы на нём тупить. Не так-то просто думать когда тебя оценивают.
Аноним 17/08/22 Срд 22:45:39 #230 №2437790 
image.png
>>2433136
>>2433149
А может нахуй надо вообще в погромирование идти, если кроме слайсов в голове нихуя нет. Одно дело, когда понимаешь, что слайсами правильнее, другое - когда не знаешь как сделать иначе.
Аноним 17/08/22 Срд 22:45:56 #231 №2437791 
>>2437770
Надо перед этим не мыться месяц или нажраться чего-то и пердеть, чтобы противостоять давлению.
Аноним 17/08/22 Срд 22:50:29 #232 №2437797 
>>2437790
Выглядит как говно.
Лучше уж тогда просто рейндж умножать на -1.
Аноним 17/08/22 Срд 22:52:20 #233 №2437798 
>>2437797
Тогда по своей сути это то же самое что слайс. А тут прям на обычном форе подход.
Аноним 17/08/22 Срд 22:55:11 #234 №2437800 
>>2437798
В питоне нет обычных форов, это ссаный итератор. Делай через вайл тогда, чтобы тру было.
Аноним 17/08/22 Срд 23:01:06 #235 №2437804 
image.png
>>2437800
Вопросы???
Аноним 17/08/22 Срд 23:04:34 #236 №2437808 
>>2437804
Лол, это не в прямом смысле было, просто ты придумываешь какие-то условия, вот я и подъебнул для смеху.
Аноним 17/08/22 Срд 23:11:05 #237 №2437811 
>>2437808
А вообще, эта отрицательная индексация строк дохуя где есть.
Аноним 18/08/22 Чтв 00:19:31 #238 №2437852 
image.png
>>2437790
Можно и через счетчик.

Можно создать вложенный цикл который будет трансформировать переменную первого цикла в отрицательную.

Только нахуя, лол.
А что будет, если в строке не йцукен, а хуйня на три экрана 8 кегелем?
Аноним 18/08/22 Чтв 01:36:52 #239 №2437872 
>>2437852
>Только нахуя, лол.
>>2433136
Аноним 18/08/22 Чтв 03:32:24 #240 №2437883 
trim.978C5CB8-DCFC-4930-B16C-0408AF9BE9C0.mov
>>2437872
Нет. "Только нахуя, лол" было в контексте зачем.

Дано:
из Кошка сделать Акшок.
Считай что вместо кошки произвольная строка с произвольным количеством символов. Иначе можно ручками переписать и будет норм.
НО! Мы не помним, не только срезы, но и отрицательную индексацию.

Задача:
Вычислить индекс последнего символа произвольной строки, и начать принт с него, и чтоб первый, и только первый, символ новой строки был заглавным.

Просто перевернуть строку даже такой вкалтун как я может. И даже поучаствовать в соревновании на самую уёбищную конструкцию. Мои заявки - вложенный цикл и счетчик.
Аноним 18/08/22 Чтв 11:00:07 #241 №2438006 
>>2435345
А тебе нормально рытся в любой функции что бы понять что именно она возвращает? Ладно когда небольшой пет делаешь в одиночку, но когда кодовая база становится такой, что к некоторым модулям могут по несколько месяцев не притрагиваться + кто-то другой может смотреть твой код это прям в микроадок превращается.
Аноним 18/08/22 Чтв 11:52:40 #242 №2438039 
>>2438006
Если ты месяцами чем-то не пользуешься то сам бог велел посмотреть и освежить память.
Аноним 18/08/22 Чтв 11:55:22 #243 №2438040 
>>2437883
Зачем делать бессмысленные задачи которые никогда не пригодятся? Лучше оттачивать реальные задачи по примерам профи, иначе окажешься в ситуации, когда кроме велосипедов на бесполезные такски ничего не можешь.
Аноним 18/08/22 Чтв 11:58:45 #244 №2438042 
>>2437883
- Давайте на секунду представили что мы забыли как есть через рот и попробуем есть через зад. Как бы вы это сделали?
Аноним 18/08/22 Чтв 12:14:03 #245 №2438059 
>>2438039
Скорость вспоминания увеличивается на порядок с типами. Особенно если есть получение данных извне.
Аноним 18/08/22 Чтв 12:15:37 #246 №2438062 
16283547518660.png
>>2437883
Перегоняет в лист, делаешь реверс, собираешь строку обратно, делов то
Аноним 18/08/22 Чтв 12:39:43 #247 №2438096 
>>2438062
Да ты вкатун, через кафку надо.
Аноним 18/08/22 Чтв 13:01:31 #248 №2438115 
>>2438059
Динамическая типизация на порядке удобнее и составляет основу кодинга на питоне. Та же работа с числами и строкой.
Аноним 18/08/22 Чтв 13:49:53 #249 №2438154 
image.png
>>2428654 (OP)
Попал в просак когда решил сделать базовый класс (это aiohttp) от которого будут наследоваться все другие и просто передавать ему в параметры класса service_entrypoint - асинхронная функция без аргументов которая потом будет вызываться.

При вызове:
asyncio.create_task(self.service_entrypoint())

он мне выкидывает:
takes 0 positional arguments but 1 was given

То есть эта падла передает ему self, т.к. считает это не какой-то левой функцией а полноценным методом класса. Как фикситься? Из того что вижу пока - надо мутить с метаклассами

нет, в __init__ передавать функцию не могу, т.к. это класс-вьюха и она не предназначена для прямой инициализации
Аноним 18/08/22 Чтв 14:05:19 #250 №2438164 
>>2438154
@staticmethod
Аноним 18/08/22 Чтв 14:08:22 #251 №2438167 
>>2438115
Она удобнее ровно до того момента как ты перестаешь помнить что ты написал какое-то время назад, после этого ты не можешь просто взять и заюзать какой-то модуль проверив нужные сигнатуры у возвращаемого объекта в IDE и разработка замедляется. Ты не представляешь какой ад вычитывать динамикодрисню другого разработчика, когда тебе нужно дернуть буквально один метод из его кода.
Аноним 18/08/22 Чтв 15:06:23 #252 №2438237 
>>2438115
как типы мешают динамической типизации?
Аноним 18/08/22 Чтв 15:17:01 #253 №2438254 
>>2438164
Ну давай, покажи где его ставить, если такой умный
Аноним 18/08/22 Чтв 15:28:44 #254 №2438270 
>>2438254
ну вообще то да, он умный
Если не нужно чтобы прокидывался self, то метод нужно пометить как @staticmethod
в твоем случае

@staticmethod
def service_entrypoint():...
Аноним 18/08/22 Чтв 15:29:13 #255 №2438271 
Вкатунский вопрос, заранее извиняюсь если он простой и тупой.

Имеется конструкция с двумя декораторами, верхним и нижним параметрическим, который вызывается многократно с различными параметрами.

@top-decorator
@decorator(z)
@decorator(y)
@decorator(x)
...
@decorator(a)
def funcname()

Как самый верхний декоратор может получить доступ к списку всех значений переменных a, x, y, z и т.д., которые были переданы вот в эту стопку параметрических декораторов, лежащих под ним?
Или же - как перебрасывать вверх значения переменных между параметрическими декораторами, точнее, по сути между одним декоратором с многократным вызовом?
Аноним 18/08/22 Чтв 15:33:56 #256 №2438276 
image.png
>>2438270
Я сделал вот так
Но как ты заметил, это и близко не то что ты предлагаешь
Аноним 18/08/22 Чтв 15:35:32 #257 №2438279 
>>2438276
каждый извращается как хочет. питон этому не мешает.
Аноним 18/08/22 Чтв 16:09:55 #258 №2438323 
Двач, помогай

Пишу бота, надо чтобы он каждую секунду выполнял функцию creation(). Она не принимает аргументы.

Если делаю
if __name__ == '__main__':
schedule.every(1).seconds.do(creation())
То файл создается, но скрипт сразу крашится с ошибкой the first argument must be callable

Нагуглил решения только с функциями принимающие какие-то аргументы. Как это исправить можно?
Аноним 18/08/22 Чтв 16:12:20 #259 №2438326 
>>2438323
Читай traceback. Я че Ванга угадывать что у тебя там callable а что нет

Бот синхронный что ле?
Аноним 18/08/22 Чтв 16:15:06 #260 №2438333 
>>2438167
Что ты там запомнить и узнать всё не можешь? Меньше говнокода писать не пробовал?
Ты понимаешь что любая сложная архитектура на питоне в разы проще создаётся, поэтому его используют везде. Иначе бы как деды ебались с указателями и ручной адресацией памяти.
Аноним 18/08/22 Чтв 16:16:16 #261 №2438335 
>>2438333
Ребенок, переставай хлебать борщи и пиздуй искать работу. Вот как поработаешь на реально проекте - приходи назад, плакаться, насколько ты был не прав.
Аноним 18/08/22 Чтв 16:44:44 #262 №2438393 
>>2438335
Проектор угомонись уже. Кроме тебя шизика про типы никто не ноет, ведь это одно из преимуществ питона.
Нужна статика пиздуй в другие яп.
Аноним 18/08/22 Чтв 16:51:57 #263 №2438404 
>>2438393
Мы тебя тут в 2 смычка ебем, шизло.
Очнись, статическая типизация - маст хев на любом крупном проекте в беке. Случайно спизданешь обратное среди Уважаемых Людей - быстро отправишься в петушиный угол картриджи заправлять и никто тебя к коду больше не допустит.
Аноним 18/08/22 Чтв 16:52:57 #264 №2438406 
>>2438323
Скобочки после creation убери
Аноним 18/08/22 Чтв 17:01:53 #265 №2438426 
галоперидол.jpeg
>>2438404
Повернитесь спиной.
Аноним 18/08/22 Чтв 17:09:15 #266 №2438436 
>>2438393
>Нужна статика пиздуй в другие яп.
>>2438404
>статическая типизация
вы язык не попутали? где питон с его type hinting, которые суть подсказки, а где статическая типизация.
Аноним 18/08/22 Чтв 17:19:32 #267 №2438444 
image.png
>>2438393
>преимуществ питона
>отсутствие типов
Аноним 18/08/22 Чтв 17:29:57 #268 №2438464 
>>2438444
Динамика > статика
За ней будущее.
Аноним 18/08/22 Чтв 17:47:14 #269 №2438489 
>>2438464
именно поэтому в питон и ввели type hinting и постоянно его расширяют с каждой версией
чтобы показать, насколько не нужно типоуказание и что динамика рулит

логично же
Аноним 18/08/22 Чтв 17:54:09 #270 №2438500 
>>2438489
Просто статико калеки не могут перестроится под новую парадигму. Помогают в адаптации.
Аноним 18/08/22 Чтв 17:57:55 #271 №2438505 
>>2438500
именно так.
а если видите, что какая то либа отказавшись от поддержки пи2 вдруг начала вовсю тайпхинтить, так это разрабов комары покусали (комары переносят желание указывать типы)
Аноним 18/08/22 Чтв 18:08:58 #272 №2438517 
>>2438154
https://www.youtube.com/watch?v=p_Woy1Uroro
Аноним 18/08/22 Чтв 19:00:19 #273 №2438567 
аноны, подскажите либу, которая умеет доставать авторов файлов(кто запушил файл в репу) из гита
с меня как обычно - нихуя
Аноним 18/08/22 Чтв 19:21:34 #274 №2438592 
>>2438505
Беру float перевожу в int возвращаю строкой тебе за щёку.
Аноним 18/08/22 Чтв 19:27:56 #275 №2438600 
>>2438592
к чему этот высер? сдуру можно и х.. сломать, но зачем?

Доказывать полезность type hinting это как доказывать что в мороз шуба лучше голой жопы - то есть ОЧЕВИДНО
Аноним 18/08/22 Чтв 19:32:21 #276 №2438610 
>>2438600
Наличие функционала лучше его отсутствия. Однако сам я ни разу тайпхинтом не пользовался, поэтому мне трудно понять почему тут истерят от динамики.
Аноним 18/08/22 Чтв 19:53:35 #277 №2438626 
>>2438610
боятся что на их любимый язык покушаются и заставляют писать в каком то особом стиле, что противоречит каком то там духу

вот только это тупо подсказки для IDE, чтобы работал автокомплит
Язык никак не навязывает их писать (ибо это не статическая типизация, да вообще никакая не типизация - это подсказки). А значит внедрение онных в либе питона и в других любых либах - просто показатель полезности подсказок
Аноним 18/08/22 Чтв 20:30:57 #278 №2438668 
>>2438626
Да тут статикошиз вернулся, давно его не было, а теперь в нескольких тредах опять про свою статику.

Интерфейсам и библиотекам нужны тайпхинты. Реально удобно. Это работает как документирование кода дополнительное.

Динамика как была, так и остаётся.

Ты можешь сделать
def foo(x: Union[int, str, Callable[[int], int]]
то есть одна переменная может быть нескольких совершенно разных типов, и это норм. А в статике невозможно. Конечно шиза в таком виде, просто для примера

Но более практически примеры тоже бывают.

Всё-таки хорошо тогда, когда ты можешь прописывать ограничения там, где надо, и как тебе надо, а не когда ты вынужден делать всегда и везде и только в одном виде.
Аноним 18/08/22 Чтв 21:05:36 #279 №2438705 
>>2438668
>Ты можешь сделать
более того, можно прописать overload и прописать разные возвращаемые значения в зависимости от параметра

такое перебор в рабочем коде. но в либе самое место
Аноним 18/08/22 Чтв 21:31:21 #280 №2438739 
>>2438705
>такое перебор в рабочем коде.
Когда жсоны перекладываешь, то самая обычная история. Одно свойство жсона в одном случае может быть одного типа, в другом совсем другого, в зависимости от значения какого-то параметра. Или вообще просто так. И это нормально даже.

На таких задачах начинаются проблемы у статико-языков, а динамо языки отрабатывают хорошо. При этом параметризации всё поддаётся, пидантики всякие есть много чего ещё.
Аноним 18/08/22 Чтв 21:36:50 #281 №2438744 
>>2438040
>>2438042
В ролике, то, происходит именно это. Помня про индексацию можно десятком способов развернуть строку.
Аноним 18/08/22 Чтв 22:40:14 #282 №2438828 
Подскажите где бота захостить бесплатно. На пайтонэнивер пишет типа сети нет.
Аноним 18/08/22 Чтв 23:02:16 #283 №2438853 
>>2438828
На AWS EC2 год можешь бесплатно хостить
Аноним 18/08/22 Чтв 23:06:07 #284 №2438858 
>>2438853
И на хероку емнип самный нищенский уровень можно сколь угодно долго юзать
Аноним 18/08/22 Чтв 23:08:05 #285 №2438860 
>>2438858
Я чет не осилил. Где там кнопка запустить епта? Задеплоил, а дальше что делать хз.
Аноним 18/08/22 Чтв 23:13:53 #286 №2438866 
>>2438860
Нет такой кнопки. Это такой же кампуктер как и твой, соответственно запускать нужно так же как ты у себя зупкскаешь.

Это ты на какой платформе сейчас пытаештся деплоить?
Аноним 18/08/22 Чтв 23:16:55 #287 №2438870 
>>2438860
>>2438866
И гуглить-то пробовал? Задача типовая, соответственно мануалов по типу "how to deploy telegram bot on heroku" наверняка до жопы есть всяких разных
Аноним 18/08/22 Чтв 23:23:04 #288 №2438878 
>>2438866
>такой же кампуктер как и твой
Окей, где там терминал? Нихуя ж нет.
>>2438870
Там про вебхуки чота пишут.
Аноним 18/08/22 Чтв 23:25:22 #289 №2438880 
Все, я смог благодаря статье на лолзтиме. Но это было нихуя не очевидно.
Аноним 18/08/22 Чтв 23:29:43 #290 №2438882 
>>2438880
Ну на хероке чуть другой подход на самом деле - там предполагается иметь в корне гит репы Procfile в котором записаны все комманды, которые нужно выполнить при запуске машины. Тогда ты в этом файде пишешь что-то типа "python main.py" и тогда не нужно подключаться
Аноним 19/08/22 Птн 00:22:06 #291 №2438979 
>>2438882
>тогда не нужно подключаться
Не понял. Я этот прокфайл создавал, но способ был максимально ебанутый, предполагающий установку heroku cli. Можно было просто в проект сунуть и работало бы?
Аноним 19/08/22 Птн 00:29:52 #292 №2438988 
>>2438668
>то есть одна переменная может быть нескольких совершенно разных типов, и это норм
Хватит писать говно
Аноним 19/08/22 Птн 00:43:48 #293 №2439002 
Аноны а можете накидать за щеку роадмап для дата сосаенса? Пока что заканчиваю читать вводную книгу по питону, знакомлюсь с синтаксисом.
Имею базовые знания математики, логики, информатики на уровне первого года вуза CS направления да и было это давно и неправда, так что для вкатуна желательно.
Аноним 19/08/22 Птн 00:50:57 #294 №2439007 
>>2439002
Бля я вообще с сосаенсом никогда не соприкасался. На хх нашел стажку в компанию говна разрабатывать анал компутер вижн. Нашел 15минутную видяшку типа как сделать нейросеть которая отличает кошек от говна. Посмотрел, скопипастил, чуть изменил под себя, попутно гугля интересные для себя вещи в коде. Сходил на собес, где тимлид пахан рассказывал что они мастерят. Как я понял всех все устроило и меня уже берут а я к ним не пойду, она не оплачиваемая, а опыт в рогах и копытах ну такое Дело было неделю назад.
Аноним 19/08/22 Птн 03:20:02 #295 №2439052 
>>2438668
>одна переменная может быть нескольких совершенно разных типов, и это норм. А в статике невозможно
Бля, охуительные истории, ща Object instanceofить буду. Саму идею интерфейсов, которая из статики пришла - тоже нахуй, переменная строго одного типа теперь может быть. Сращу видно эксперта, который увидел код laba2.cpp, где компилятор запрещает переписывать переменную другим типом, и сразу познал дзен.
Аноним 19/08/22 Птн 04:27:17 #296 №2439061 
>>2439052
ты как то невнятно описал претензии к челу, который все верно описал.
Аноним 19/08/22 Птн 05:31:09 #297 №2439077 
>>2439061
Вранье гринтексте не видишь даже после того, как кто-то на него указал, зато априори "все верно" там. Хорошо тобой быть - все вокруг, с кем ты согласен, никогда не врут.

Для самых маленьких: я не участвую в том споре про правильную типизацию - это сугубо вкусовщина, ешьте любую каккя нравится, а лишь указываю на ущербность аргумента, фактически не соответствующего действительности.
Аноним 19/08/22 Птн 05:44:16 #298 №2439080 
>>2439077
ну ты ОЧЕНЬ непонятно написал где там не соответствует действительности. Абсолютно непонятно написал.
Перепиши текст в понятные аргументы и я разобью его в пух и прах
но поскольку ты не участвуешь. значит аргументов вменяемых нет (или тебе лень) ну значит мимо проходим.

>Саму идею интерфейсов, которая из статики пришла - тоже нахуй, переменная строго одного типа теперь может быть
ну а это вообще из разряда "сам придумал - сам обосрал"
Аноним 19/08/22 Птн 05:56:14 #299 №2439082 
>>2439080
Ты глупенький?
>А в статике невозможно
Object a;
a = 5;
a = "string";
a = new Nebo();
a = Allah.getInstance();
Вот тебе переменная, которая может быть совершенно разных типов в статике. Ровно так же как и в динамике, если надо дальше с ней работать, а тип не известен точно, ты будешь городить isinstance/instanceof, чтобы ублажить в первом случае иде, во втором - компилятор.
Аноним 19/08/22 Птн 06:10:45 #300 №2439087 
>>2439080
>ты не участвуешь. значит аргументов вменяемых нет
>я не участвую в споре, а лишь указываю на кривой аргумент
Алсо, подтяни навыки чтения, пригодится в жизни. А пока давай на аналогиях: два чела спорят про то, какой самовар купить - дровяной или электрический. Один из них заявляет, что надо непременно электрический, потому что в дровяном нельзя сварить пельменiв. На что любой мимоадекват скажет, что это чушь собачья, но тут приходишь ты и отвечаешь, что тебе тоже нравятся электрические, поэтому они неправы и вообще из дровосекты.
Аноним 19/08/22 Птн 06:11:11 #301 №2439088 
>>2439082
>Ты глупенький?
лол. ты указал базовый тип и такой "смотрите можно"
давай посмотрим на "что можно"

>если надо дальше с ней работать
попробуй сделать а+а
и если ты сделаешь isinstance, то это тебе не поможет. тебе сначала нужно сделать cast в другую переменную потому что финт ушами вида

object a = (int)5;
a = (int)a;
a+a;

попросту не работает

компилятор благодаря статической типизации (не путать со строгой) не дает тебе работать с этой переменной иначе как с объявленным первоначальным типом. И плевать что ты туда кладешь - компилятор волнует именно объявленный тип, который ты не можешь сменить и поэтому вынужден подключать другие переменные. В динамических языках ни других переменных, ни каста не нужно.

То есть внутри может лежать быть содержимое любого типа. но тип самой переменной не изменить. гринтекст прав.
Аноним 19/08/22 Птн 06:13:29 #302 №2439091 
>>2439087
все проще. ты очень невнятно выражаешь мысли. пока не попросят перефразировать

>>одна переменная может быть нескольких совершенно разных типов, и это норм. А в статике невозможно
повторю гринтекст. тип переменной не сменить. содержимое да. но сам тип нет.
Аноним 19/08/22 Птн 06:31:31 #303 №2439095 
>>2439088
>>2439091
>ты указал базовый тип и такой "смотрите можно"
Ну да, извините, там синтаксисом надо какой-то тип да указать. Или что, в динамике это как-то по другому работает? Тот же object уже не базовый тип для всего? Не надо делать проверки типа в этой ситуации?

>гринтекст прав.
А теперь читаем тот самый гринтекст
>Ты можешь сделать
>def foo(x: Union[int, str, Callable[[int], int]]
>то есть одна переменная может быть нескольких совершенно разных типов, и это норм. А в статике невозможно.
Аналог в статике сам сообразишь какой.

>То есть внутри может лежать быть содержимое любого типа. но тип самой переменной не изменить
Тут ты прав. Ок, значит гринтекст просто криво пример привел, который не отражает сути того, чего сказать хотел.
Аноним 19/08/22 Птн 06:52:07 #304 №2439097 
>>2439095
>Или что, в динамике это как-то по другому работает?
да. не нужно. может ты и не можешь сделать x+x (вернее ты можешь так то)
но ты изи можешь доложить эту переменную в список интов

>Аналог в статике сам сообразишь какой.
никакой. x: object не является аналогом ибо на вход придет именно обжект, а не число, строка или calable
и поскольку это совершенно левый тип от ожидаемых 3х, то я не могу его положить в список интов
мне не нужен обжект, а я вынужден!!! делать каст.
В питоне же instanceof нужен лишь иногда.
Аноним 19/08/22 Птн 06:59:37 #305 №2439099 
>>2439097
>положить в список интов
Если ты положишь в список интов юнион из аргумента, то у тебя уже не список интов будет, а список юнионов, правда? Тайпхинт это, конечно, не перепишет, но тем хуже - он теперь тебя будет дезинформировать. Чтобы гарантировать, что ты только инты кладешь, тебе как ни крути придется делать проверку типа.
Аноним 19/08/22 Птн 07:08:13 #306 №2439100 
>>2439099
>то у тебя уже не список интов будет, а список юнионов, правда?
>Чтобы гарантировать, что ты только инты кладешь

И вот еще одного понесло в дебри. Какие еще гарантии? какая проверка типа?.
Это язык с динамической типизацией. Можешь класть что угодно и не проверять типы.
Пишите код, как писали. Что вы фантазируете то блин
твой метод может проверять is None и передавать дальше. потому что ему плевать на тип и всем плевать

суть отдельным постом ниже
Аноним 19/08/22 Птн 07:08:28 #307 №2439101 
То какая то статическая типизация, то интерфейсы уже какие то. то гарантия
Прямо посягают на бедную несчастную динамику питона злые любители компилируемых языков
(питон кстати тоже компилируется, но то такое)

абстрактные классы были и в пи2. тайпхинтинг был на уровне докстринга (пусть даже не пепно это - я честно хз)

питон 3 со своими тайпхинтами всего сделал хинты стандартом и усилил их.
Ради улучшения ситуации с автокомплитом IDE, статической проверки и рабочими авторефакторингами
ну и ошибками вида "хз че там" (ковыряние в чужом коде ради "да бля что там в итоге а и что у него есть" - радость то какая)

И ни в какие "писать как в языках со статической типизацией" никто не залезал.
Разница в том, что тайпхинты это описание контракта, а не описание сигнатуры (ака интерфейс) которую потом нужно реализовать
И плевать на типы в рантайме.

Тут можно сказать "а как же пидантики всякие"?
А никак -пидантик это лисапед на тему "а почему бы и нет".
Было обновление питона, которое ломало фастапи с пидантикоми (а заодно мою петовую либу орм)
ответ разрабов питона был прост - типы не для рантайма, если вы полагаетесь на них в рантайме, то ссзб

А раз это всего лишь подсказки по контрактам то

1 можно указаь несколько типов для параметра. и сделать @overload для удобства выведения типа
2 Есть понятие Protocol, где описываешь контракт и класс подпадающий под контракт про него знать не знает
3 И даже не просто класс. Можно и модули описать. Вот у меня плагины тупо файлик подкинул и заработало - описаны через протокол. IDE довольна
4 TypedDict проходим мимо. очевидно что словари от него не наследуются. потому что это описание контракта
5 помимо Union для типов есть еще NewType, который использовать как описано в доке хз зачем, но как подсказка для НЕсуществующего типа вполне можно

Также можно даже сделать родителем класс чтобы он считал дочерним класс, который от него даже не наследуется. Сила питона. Так то хинтинт тут не причем - просто вспомнилось

В общем основная сила хинтов - подсказки для IDE, анализторов и так далее. Но поскольку это подсказки, то они никак не требуют что то там наследовать, рализовывать или даже прописывать эти подсказки
Аноним 19/08/22 Птн 07:34:29 #308 №2439114 
>>2439100
>Какие еще гарантии? какая проверка типа? Можешь класть что угодно и не проверять типы
Ну да, но это только если в твоей ситуации норм неоднородный список. Как-то на практике их встречается на порядок меньше, чем однородных. Оно и понятно, поймать через х часов работы рантайма на другом конце проекта в каком-нибудь цикле по этому списку TypeError int object has no method strip или как оно там крашится, как-то не очень интересно, и иди ищи кто туда чего клал. Отсюда и желание иметь инструментарий для отлова таких говен. Опциональный, надо заметить, кому-то и так норм.
Аноним 19/08/22 Птн 08:15:55 #309 №2439120 
>>2439101
>ответ разрабов питона был прост - типы не для рантайма, если вы полагаетесь на них в рантайме, то ссзб
Ага, а потом они сделали functools.singledispatch.
Аноним 19/08/22 Птн 09:19:53 #310 №2439153 
>>2439114
так об этом и речь. никто динамику не трогает. просто добавили опциональную возможность сильно облегчить себе жизнь хинтами. И именно хинтами, а не статической типизации, которой тут не лежало.

>>2439120
ну им то можно. это ж встроенный модуль. идет с дистрибутивом, а значит у него нет задачи "нам нужно поддерживать и старые питоны".
Аноним 19/08/22 Птн 09:21:27 #311 №2439155 
>>2436907
оказалось, что я тотал ретард
там не content_type, а contentType :DDDD
Аноним 19/08/22 Птн 10:15:50 #312 №2439206 
image.png
>>2438979
Heroku CLI тебе действительно понадобится чтобы пушить локальные измения кода в репу с которой хероку запускается, чтобы запускать, останавливать сам сервер и ещё для чего-нибудь такого. Для администрирования в общих чертах короче.

Чтобы после каждого запуска/перезапуска сервера вручную не лазить в него и не запускать бот вручную, можно нужно в прокфайле прописать нужные комманды. Если всё что тебе нужно это стартовать бота то прокфайл будет выглядеть плюс/минус как пикрил (https://towardsdatascience.com/how-to-deploy-a-telegram-bot-using-heroku-for-free-9436f89575d2). Прокфайл должен лежать в корне гит репы. Ещё там же можно создать runtime.txt где можно конкретную версию питона указать. Переменные окружения не забываем настраивать.

Если кроме бота нужно ещё нужно запустпть базу данных/селери/кролика то это отдельная ёбля. Если нужно что-то на диск сохранять то хероке такое не нравится и нужно использовать облачные сервисы хостинга файлов типа AWS S3.
Аноним 19/08/22 Птн 15:34:40 #313 №2439591 
Мяу.
Есть графики и схемы в matplotlib, на них поверх рисуются дополнительные стрелочки вручную.
Как правильно перерисовать их при изменении масштаба, чтобы обновление картинки не лагало настолько безбожно? Фоновый график такой же, там просто с учётом xlim/ylim поверх рисуется ещё несколько стрелочек и надписей.

Через canvas.mpl_connect('draw_event'...) всё очень медленно работает, и перерисовывается не всегда...
Может быть есть какой-то режим работы matplotlib, который лучше подходит для не оффлайн отрисовки, чтобы и на нажатия мышкой можно было прикрутить реакцию?
Аноним 19/08/22 Птн 17:31:05 #314 №2439745 
>>2436900
Проиграл
Аноним 19/08/22 Птн 22:01:55 #315 №2440116 
Хочу вкатиться в кодинг, решил начать знакомство с этого вашего питона, так как, грят, он один из самых легких для вката, и при этом на его примере можно в общих чертах понять, как устроено программирование в целом (да?). Кстати, в математике не шарю, и в других точных науках тоже. Посоветуйте мне, дурачку, какие-нибудь учебники, гайды, где прям с нуля все разбирают по полочкам. Желательно написанное живым, неакадемическим языком. А язык текста, к слову, можно и английский. Пока что с целями особо не определился, но, наверное, в отдаленной перспективе хотелось бы уметь делать небольшие игры. Сейчас просто хочется разобраться что к чему. Заранее спасибо.
Аноним 19/08/22 Птн 22:06:53 #316 №2440120 
Мужики, тут такое дело. Решил попробовать собрать экзешник. Написал простую консольную говноигру. Собрал через pyinstaller, запустил экзешник - защитник шиндовс тут же выдает: Behavior:Win32/DefenseEvasion.A!ml
и кидает мою говноигру в карантин. Это в pyinstaller вирус был чтоли? Устанавливал через консольку командой pip install pyinstaller
Аноним 19/08/22 Птн 22:11:57 #317 №2440124 
Где можно посмотреть хорошую организацию кода. Я заебался уже рефакторить. Каждый раз по новому, каждый раз заебца, но потом скатывается в говно.
Например, взять aiohttp. Есть core.py, в котором описаны методы получения сессии, с параметрами урл, хедера, коннекторов и пр. Есть request который проверяет ответы, ошибки и делает пару повторных запросов при разрыве соединения, паузы при превышении лимита и прочих http факапах.
Рядом с ним есть уже модули к конкретным апи, в каждом лежит request.py и models.py. В первом лежат методы для различных запросов, во втором лежат пидантик модели для чтения ответов. Классов нигде нет.
Так нормально? Или лучше без пидантик моделей?
Аноним 19/08/22 Птн 22:19:58 #318 №2440133 
>>2440124
>Где можно посмотреть хорошую организацию кода
>Например, взять aiohttp.
Давно не заглядывал в код туда... Светлов няша и всё такое, но код в его творениях иногда такой, что даже мне за свой уже не так стыдно становится
Аноним 19/08/22 Птн 22:28:51 #319 №2440139 
>>2440133
Ну, у меня asyncio, сама либа устраивает. Да в питоне все async либы это костыли разной степени паршивости, но раз так то уж хотя бы в коде хотелось бы порядок иметь! Спросить не у кого, знакомых питонистов, а уж тем более коллег нет совсем. Сам себе ревьюер, тестер и всё остальное, 4 небольших проекта на проде висят по 2.5-3к строк, хочу красоту навести.
Аноним 19/08/22 Птн 23:47:51 #320 №2440209 
>>2439206
Я выяснил что там есть терминал, имхо проще через него делать как обычно. правда хз, может бот будет падать после выхода оттуда, не проверял
Аноним 19/08/22 Птн 23:55:34 #321 №2440212 
image.png
>>2440209
Аноним 20/08/22 Суб 13:39:11 #322 №2440503 
2764978-5-9775-6691-9.png
Книжка пикрил актуальна для джанги 4.1?
Только начинаю осваивать джангу, на 4.1 можно начинать лепить или лучше 3.2 установить?
Аноним 20/08/22 Суб 13:50:13 #323 №2440519 
>>2440503
Владимир Дронов это разве не хуйлован, который про всё подряд графоманит? Я бы такое не читал.
Аноним 20/08/22 Суб 13:59:17 #324 №2440541 
>>2440519
я пока 1 главу осилил, пока легко заходит без занудства
Аноним 20/08/22 Суб 18:15:39 #325 №2440935 
Привет, аноны, мне нужно написать простого бота для телеги на пайтоне, кто сможет помочь его написать за деньги, оставьте, пожалуйста, телегу, я напишу и договоримся
Аноним 20/08/22 Суб 18:58:15 #326 №2441012 
Аноны, почему время реакции в этом скрипте:

from time import perf_counter, sleep
from random import random

print("Press Enter to play")
input()
print("Ok, get ready!")
sleep(random() 5 + 1)
print("Go!")
start = perf_counter()
input()
end = perf_counter()
print(f"You reacted in {(end - start)
1000:.0f} milliseconds!\nGoodbye!")


В 2-2,5 раза больше, чем на сайтах проверки (например https://humanbenchmark.com/tests/reactiontime). Скрипт показывает неадекватные цифры, мне интересно почему он врёт и как это исправить?
Аноним 20/08/22 Суб 19:17:07 #327 №2441044 
>>2441012
Да вроде примерно так же.
Аноним 20/08/22 Суб 19:18:02 #328 №2441046 
>>2441012
>В 2-2,5 раза больше, чем на сайтах проверки
А сколько у тебя показывает?

У меня показывает 250-300мс, что лишь немного дольше, чем если другим способом заменять.

Есть небольшие нюансы с тем, что у тебя вывод текста на консоль может не моментально срабатывать.

Ты запускаешь из консоли? Или из IDE? Не надо из ide, это точно
Аноним 20/08/22 Суб 19:23:13 #329 №2441056 
image
>>2437883
> на самую уёбищную конструкцию

предлагаю пикрил
Аноним 20/08/22 Суб 19:26:56 #330 №2441070 
>>2441044
>>2441046
Хм, у меня скрипт показывает примерно 500, сайт 200.

Это я проверял в pyCharm.
Запустил скрипт в повершелле - там примерно 250 мс.
Запустил в wsl2 убунту - на 10% быстрее чем в PowerShell, но всё же не так как на сайте.

Мне интересно, а как можно реальные цифры организовать на питоне, а не вот это?
Аноним 20/08/22 Суб 19:27:11 #331 №2441071 
>>2441012
Попробуй добавить sys.stdout.flush() сразу после первого принта
Аноним 20/08/22 Суб 19:30:48 #332 №2441082 
>>2441070
Ну это очень разные способы. Там терминал и клавиатура, там мышка и жабаскрипт в браузере. Может у тебя какая-то игроёбская мышка с разгоном опроса юсб, что тоже даст отличие.
Аноним 20/08/22 Суб 19:35:11 #333 №2441089 
>>2441070
Сделай в виде графики, как на сайте, это будет работать уже адекватно.

Проблемы две. Первая человеческая, скорость реакции на печать текста может быть хуже, чем реакция на смену фона-цвета-яркости.

Вторая техническая. Между тем, как ты вызываешь функцию print(), и тем как на экран что-то выводится, может пройти определённое время, не самое маленькое. Скорее всего это в pycharm и происходит.

Возможно из-за этого разница в ОС.
Аноним 20/08/22 Суб 19:58:46 #334 №2441111 
>>2441071
Я так понимаю, что это должно быть равносильно такому?:
print("Press Enter to play", flush=True)
Если да, то цифры не изменились.

>>2441082
Даже с игроёбской мышью не могу представить такой разницы

>>2441089
Хм, вот это вероятно и есть причина. 30-50 мс за счёт текстового аутпута, а не цветового.
Выглядит говном ситуация, нафига тогда точность в наносекундах у модуля time, если в зависимости от среды выполнения нельзя даже адекватно разницу посчитать между perf_counter()?

Пойду читать про буфер в print(). А ведь начиналось всё с Regex, после перекинулся на субпроцессы, ща из-за примера на это. Хочется всё узнать, хз как учить что-то конкретное, когда как в вики по ссылкам скачешь читаешь.
Аноним 20/08/22 Суб 20:09:06 #335 №2441122 
>>2441111
>Выглядит говном ситуация, нафига тогда точность в наносекундах у модуля time, если в зависимости от среды выполнения нельзя даже адекватно разницу посчитать между perf_counter()?
perf_counter() и monotonic() для других целей

Они корректно изменяют. Просто ввод-вывод в консоль не в реальном времени происходит, это же тоже не главная задача, реальное время обеспечивать?

Адекватность браузерных замеров тоже под вопросом. Потоу что и браузер не предназначен для вывода чего-то в реальном времени, там тоже есть время реакции на события, чистка мусора и т.п.
Аноним 20/08/22 Суб 23:37:28 #336 №2441303 
>>2441070
>Мне интересно, а как можно реальные цифры организовать на питоне, а не вот это?
Консолька на реалтайм не рассчитана, там буферизации, задержки, брр - полный рандом в зависимости от платформы. По хорошему raw input, но (на виндоус) это будет проще на си написать, чем на питоне найти либу с winapi и там все те же строчки написать но с замороченным синтаксисом. Стандартные события виндоус, которые скорее всего во всех pygame и аналогах используются добавляют задержку.
Возможно короткая виндоус-реализация будет, если есть либа для directinput под питон. И ещё картинку-текст лучше аппаратно тоже выводить...
Аноним 20/08/22 Суб 23:53:57 #337 №2441310 
>>2441303
Pygame это sdl, а она на С. Да и очевидно для игр даже 200мс ужас как много для таких простых функций. Там в 100 раз большие объёмы надо за 1 кадр высчитывать.
Аноним 21/08/22 Вск 00:19:06 #338 №2441313 
>>2441303
>>2441310
Консоль это консоль, там свои буферы, там вероятно специально сделано так, что данные чуть накапливаются, а потом скопом выгружаются.

Графические оболочки работают адекватно. Я сам такую штуку просто по фану делал на wx. Можно скорее всего кучу вариантов найти на всех оболочках.

Погрешность измерения в большинстве случаев будет на уровне продолжительности одного кадра, 1/60 секунды условно.
Аноним 21/08/22 Вск 00:31:53 #339 №2441317 
Посоветуйте библиотеку для реалтаймового анализа звукового потока на предмет определенной звуковой сигнатуры (своего рода сигнал сирены)
Аноним 21/08/22 Вск 01:19:31 #340 №2441325 
>>2441313
Всё ещё нужно отключать двойную буферизацию - и вообще я имел ввиду, что не нужно через условный tkinter что-то перерисовывать, лучше что-то вроде pygame.
Аноним 21/08/22 Вск 08:15:51 #341 №2441390 
Спасибо за ответы, для меня это видимо рано пока. Попробую разобраться с stdin/out, что это и как работает в Питоне.
Аноним 21/08/22 Вск 09:39:52 #342 №2441430 
16601083109500.jpg
Холлош.
Делаю либу для того чтобы аудикокниги через silero генерить, вот пришёл к тому что очень требуется либка которая помогала бы форматировать текст. Убирать лишние пробелы, и вайтспейсы (табуляции, лишние переводы строки и т.д.)

Если доставать на сухую контент из epub он выглядит как срака полная. Есть что на примере?
Аноним 21/08/22 Вск 11:28:38 #343 №2441508 
>>2441430
Может через какой-нибудь текстовый движок пропускать и всё?
Аноним 21/08/22 Вск 11:37:20 #344 №2441509 
16387272787760.mp4
>>2441430
>16601083109500.jpg
Аноним 21/08/22 Вск 17:58:56 #345 №2442050 
>>2441317
есть детектор голоса https://github.com/wiseman/py-webrtcvad
Аноним 21/08/22 Вск 21:11:47 #346 №2442217 
>попробуй ретерн вместо принт
Аноним 21/08/22 Вск 21:13:11 #347 №2442221 
>>2440935
я немного этим занимался, пиши @Obre4en1
Аноним 21/08/22 Вск 21:18:28 #348 №2442229 
>>2440935
Есть опыт в создании асинхронных ботов на aiogram. @k1ll_m3_plz
Аноним 21/08/22 Вск 21:44:03 #349 №2442267 
>>2442229
Нам нужны синхронные боты, есть опыт?
Аноним 21/08/22 Вск 21:58:13 #350 №2442281 
>>2442267
а зачем хотеть синхронные боты?
какие есть аргументы в пользу синхронности кроме никаких?
Аноним 21/08/22 Вск 22:46:38 #351 №2442332 
Вопрос к практикующим анонам с опытом - вы часто юзаете ли стандартные библиотеки а-ля collections и itertools в своем коде?

Вот допустим в той же pandas/numpy вроде всё и так есть. Но это на мой нубасовский взгляд.
Аноним 21/08/22 Вск 23:31:55 #352 №2442405 
>>2442332
Сравнил теплое с мягким
Аноним 21/08/22 Вск 23:35:43 #353 №2442410 
>>2442332
Достаточно часто, пандасы это большущие комбайны, которые нужны для специфических случаев и нужно тащить их в зависимости если точно не уверен.
Аноним 22/08/22 Пнд 02:09:33 #354 №2442488 
>>2442332
Очень часто использую itertools.count
Замена трёх строчек кода, но тут вопрос стиля больше

Другие какие-то штуки оттуда как-то разово использовал, но по факту редко.

Из collections ChainMap довольно практичная и полезная штука, остальным по-моему не пользовался на практике.

Сравнивать с numpy и подобными неправильно. Не помню такого функционала там, во-первых, во вторых хорошая практика в том, чтобы пользоваться функционалом из стандартных библиотек, чтобы не привязываться к зависимостям.

Конечно, это если твой код не полностью построен на какой-то библиотеке.

functools ещё есть, есть рекомендации использовать partial оттуда, но лично я это чаще игнорю и делаю люмбды или же стои локальные функции.
Аноним 22/08/22 Пнд 05:01:10 #355 №2442498 
>>2442281
ты рофлишь? синхронные могут сразу синхронно перекрывать треды.
а асинхронные срут вразнобой
Аноним 22/08/22 Пнд 05:01:56 #356 №2442499 
>>2442332
Очень часто датаклассы использую, второй по популярности - functools.wraps, иногда использую всякие вещи из functools и collections, itertools почти не пользуюсь.
Аноним 22/08/22 Пнд 05:27:39 #357 №2442504 
>>2442498
>синхронные могут сразу синхронно перекрывать треды
переведи на понятный.
Аноним 22/08/22 Пнд 07:02:05 #358 №2442518 
Здравствуйте все. Порой у питона находятся очень хорошие утилиты, которые я удачно пизжу, но так как в питоне я хуй простой, то перевожу их в standalone exe всякими свистелками-перделками из сети. Теперь вот понадобилось то же самое сделать с этой вот штукой https://pypi.org/project/mcrcon/ (не для майнкрафта, rcon используется дохуя где), оно переводится, но ничего в консоль не выводит. Если паке установить то mcrcon или mcrcon --help выдаёт хоть что-то. Если же превратить пакет в exe, то в консоли пусто. Помогите перевести или перевидите, пожалуйста, этот пакет в exe (x86 по возможности)
Аноним 22/08/22 Пнд 07:37:59 #359 №2442526 
Дали тестовое, я ебался с ним неделю и сделал только половину, в итоге заебался и сказал им, что не буду доделывать, все правильно сделал?
Аноним 22/08/22 Пнд 08:45:01 #360 №2442547 
>>2442526
Какую именно задачу на тестововое дали?
Аноним 22/08/22 Пнд 10:35:50 #361 №2442601 
Пацаны, в чем разница добавления метакласса через атрибут __meta__ в теле класса и через опцию meta= ?
Аноним 22/08/22 Пнд 10:45:46 #362 №2442609 
>>2442332
itertools достаточно часто.
collections не использую совсем, сейчас посмотрел - вроде бы и нет особо полезных штук, а если и есть, будет несложно написать что-то своё поверх стандартных типов. А если код про скорость, то это не про питон, и либо через извращения с numpy делать, или с numba, либо, да я не знаю..

Почему numpy до сих пор не стандартная библиотека - не очень понятно, он же чаще того же itertools используется.
Аноним 22/08/22 Пнд 10:48:44 #363 №2442613 
>>2442547
Сделать сайт, конструктор форм для компании, на 7 экранов где-то.
Аноним 22/08/22 Пнд 10:51:38 #364 №2442615 
>>2441509
Анальник, пытающийся казаться Мужиковым Мужиком, это то еще зрелище
Аноним 22/08/22 Пнд 11:04:05 #365 №2442622 
>>2442609
>не очень понятно, он же чаще того же itertools используется.
у кого чаще? пока не понадобилось всякие там научные штуки - и не использовал даже.
Аноним 22/08/22 Пнд 11:23:00 #366 №2442633 
image.png
Тыкаю в http://restful-booker.herokuapp.com/ Постманом, если важно, но на этапе создания токена, по дефолтному логин-паролю отфуболивает пиком. И пример для тела пробовал, и в парамс, результат один.
Это в демке дело, или у меня руки из жопы?
Аноним 22/08/22 Пнд 11:29:43 #367 №2442638 
>>2442633
Не тот тред, сорре.
Аноним 22/08/22 Пнд 11:39:01 #368 №2442647 
>>2442622
У меня. А что, питон для чего-то ещё используют? Ну, я математик, питон - вспомогательный язык, у меня три без половины программы без numpy, если не считать небольший файлов-скриптов, которые вместо батников.
Аноним 22/08/22 Пнд 11:48:40 #369 №2442652 
>>2442647
это язык общей направленности. на нем пишут все что не лень
Аноним 22/08/22 Пнд 12:03:16 #370 №2442659 
Что кроме питона нужно учить, чтобы богом интернета быть?
Аноним 22/08/22 Пнд 12:08:22 #371 №2442663 
>>2442659
Чтобы быть Богом всего -> https://www.haskell.org/
Аноним 22/08/22 Пнд 12:13:38 #372 №2442669 
>>2442659
мемы
Аноним 22/08/22 Пнд 12:14:04 #373 №2442670 
>>2428654 (OP)
Кто-то может представить больших куколдизм чем разработка с flake и ему подобными "слишком умными" линтерами?

Found too many `elif` branches
High Jones complexity
Found negated condition
Found upper-case constant in a class

Какая-то скриптовая чмонька, указывает тебе как писать код? Пиздец, все равно что бабу ебать, когда над тобой мамка стоит и говорит что и как делать. Тут уж лучше и правда другого ебаря пригласить чтоб все за тебя сделал.
Аноним 22/08/22 Пнд 12:17:34 #374 №2442673 
>>2442332
Зависит от того где, как и кем запускается скрипт. Наколеночный glue скрипт я могу и без внешних библиотек написать, ибо чинить по патчноутам ваши йоба-комбайны при обновлении питона сил никаких нет.
Аноним 22/08/22 Пнд 12:17:54 #375 №2442674 
>>2442670
ну так то все эти претензии нормальные
код должен читаться легко.

А если ты пишешь чисто для себя, то и линтеры ни используешь же.
Аноним 22/08/22 Пнд 12:22:49 #376 №2442679 
>>2442674
>too many `elif` branches
Ебать, давай-ка расскажи мне сколько в моем коде должно быть ветвей)) Что сам-то бдешь делат ькогда поймешь что кондишенов уже больше 3?

>High Jones complexity
Вообще пук в лужу

>negated condition
Безусловно, раз скриптик спизданул что "нидолжно" то так и делаем, похуй что в таком случае когнитивная нагрузка меньше

>upper-case constant in a class
Ору вместе с моими enum-ами

Там еще есть такой ништяк как "used 'in' not with set container" - скриптопетух не в курсе как set/dict работают
Аноним 22/08/22 Пнд 12:29:55 #377 №2442681 
>>2442679
>Что сам-то бдешь делат ькогда поймешь что кондишенов уже больше 3?
возьму match или выделю метод где заменю на return

>High Jones complexit
это как я понимаю когда засилье скобочек в одной большой длинной строке?

>negated condition
а вот за это на кол. такие вещи трудно читаются, особенно если они среди многих or/and

>upper-case constant in a class
питон это язык где форматироанием занимается автоматика. если она форматирует по разному, то будет беда.

>скриптопетух не в курсе как set/dict работают
зачем тогда используешь линтер
Аноним 22/08/22 Пнд 12:35:03 #378 №2442686 
>>2442681
>зачем тогда используешь линтер
Может потому что петухи в тиме прикрутили его гитлабовскому пайплайну?
Аноним 22/08/22 Пнд 12:37:23 #379 №2442689 
>>2442686
ну видимо им не нравится читать любителей "выражаться затейливо"
Аноним 22/08/22 Пнд 12:37:59 #380 №2442690 
>>2442670
Да забей, через некоторое время код будет сохраняться в промежуточном представлении, и каждый разработчик будет видеть код со своими отступами и настройками стиля, и возможно даже с другими именами переменных.
Аноним 22/08/22 Пнд 12:46:26 #381 №2442697 
графы1.jpeg
Снимок веб-страницы22-8-2022124119codeforces.com.jpeg
Сап.
Не могу понять почему превышен лимит времени. До этого думал, что создал вечный вайл, пару раз его переработал, не помогает. Наверное дело в том, что использую поиск в ширину вместо в глубину. Но в графе все вершины, кроме одной обходятся единожды и оба поиска по сути идентичны. Или в глубину обработает все быстрее? Или проблема в чем-то другом?
пик 1 - задача
пик 2 - попытки
https://pastebin.com/M98ZqAPg - код
Аноним 22/08/22 Пнд 13:13:50 #382 №2442722 
>>2442679
Адепты Чистого Кода это опущенные, с ними даже общаться не нужно. В их "Библии" указано даже число строк сколько максимум может быть тело функции. Как, думаете сколько это? Воздуха в грудь набрали? 8, ага
Аноним 22/08/22 Пнд 13:34:19 #383 №2442745 
>>2442663
хах, да ты заебал)
Аноним 22/08/22 Пнд 13:35:46 #384 №2442749 
>>2442722
Ну, ставить пробелы вокруг операторов - не такая плохая идея (я ставлю вокруг ==, = и подобных, и не ставлю вокруг +, *), но вот с количеством строк - я тут показывал код, где функция на 113 строк длинная - но она выполняет одну логическую функцию, и кому я показывал сказали что всё понятно в коде сразу.

>>2442697
А дашь ссылку на задачку, хочу сам потыкать. Так без цифр вообще не хочется пробовать написать или изучать твой код...
Аноним 22/08/22 Пнд 14:05:14 #385 №2442771 
>>2442722
не путай адептов чистого кода с адептами читаемого кода
вон с моржовым оператром можно так замутить что хрен распарсишь, а работать будет
Аноним 22/08/22 Пнд 14:41:01 #386 №2442806 
>>2442771
Читаемый код очень важен в больших проектах, иначе скролинг этих слепленных портянок превратится в настоящий ад где захочется убить автора.
Аноним 22/08/22 Пнд 15:18:47 #387 №2442844 
>>2442806
Папка пишет код читаемым несмотря на линтеры. Линтеры лишь ограничивают Папку.
В тему идут только линтеры форматирования вроде black или mypy для типов, если ты сумел его нормально прикрутить, а не через жопу (как чаще бывает). flake - нахуй
Аноним 22/08/22 Пнд 16:27:42 #388 №2442876 
>>2442844
Чет этот папка вместо того, чтобы быть гигачадом и отказаться работать в тиме с неудобным ему линтером / продавить свои правила для линтера, тихо ест что дают в тиме и изливает свое нытье на двачах.
Аноним 22/08/22 Пнд 16:45:22 #389 №2442881 
>>2442876
Проект может быть интересным, но 23-х летний тимлид услышал что-то про хорошие практики и решил внедрить на проекте самые лучшие техники.

Задача в том, чтобы убедить не увлекаться слишком сильно.

Разрабы этих флаков реально какие-то пидорасы неадекватные.

Я за то, чтобы код был читаемый и чтобы за некоторые практики по рукам давать, но должна быть адекватность.
Аноним 22/08/22 Пнд 17:33:51 #390 №2442922 
Есть тут аноны, которые работали с ppadb, нужна ваща помощь.
Аноним 22/08/22 Пнд 17:49:31 #391 №2442943 
>>2442881
В сухом остатке чед папка работает гребцом по правилам, писанным вирджин лидом-зумером.
Аноним 22/08/22 Пнд 19:56:18 #392 №2443070 
>>2442881
Тащемта хлопья и настроить можно, что считать ошибками, а что нет.
Аноним 22/08/22 Пнд 23:45:05 #393 №2443289 
>>2440120
https://python.plainenglish.io/pyinstaller-exe-false-positive-trojan-virus-resolved-b33842bd3184
Аноним 23/08/22 Втр 01:46:44 #394 №2443325 
image.png
image.png
Почему он добавляет буквально "\n", а не новую строку?
Аноним 23/08/22 Втр 03:11:50 #395 №2443332 
>>2442050
Спасибо! Это всё же немного не то. В моем случае там именно сирена с определенными частотными характеристиками, которые в остальном потоке не встречаются.
Штош, попробую поработать с исходниками на С, а там глядишь кто-то ещё что-то посоветует.
Аноним 23/08/22 Втр 03:15:20 #396 №2443333 
>>2442050
Ах да, у меня ещё и не веб-поток, а аудиопоток, которые исходит от другого приложения.
ПИТОНЯШКИ У НАС ПРОБЛЕМА! Аноним 23/08/22 Втр 03:30:42 #397 №2443334 
2022-08-23x03:19:24.jpg
2022-08-23x03:18:56.jpg
2022-08-23x03:29:37.jpg
ПИТОНЯШКИ У НАС ПРОБЛЕМА!

кажется я нашел в жс-дрисне превосходящий функционал!


нужно срочно разобраться в это вопросе

а именно - найти шорткат для булевой инверсии с присвоением. то что имеется ебанная простыня


и самое главное - как организовать няшный рефакторинг без ЗЛОПИДАРСКИХ КЛАСОВ С ОБОССАННЫМ БОЙЛЕРПЛЕЙТОМ СУКА !?


чето пиздец я разволновался, надеюсь на твою скорую помощь анончик!
Аноним 23/08/22 Втр 03:41:59 #398 №2443335 
2022-08-23x03:41:24.jpg
хух, пол дела сделано
Аноним 23/08/22 Втр 04:52:54 #399 №2443336 
816ec6c0dee0207d15f22bd.jpg
>>2443334
наркоман штоле?
Аноним 23/08/22 Втр 06:12:38 #400 №2443341 
2022-08-23x06:12:17.jpg
we are almost there pytonyashque!


осталось дождаться пока проснуться ФП господа и пояснят как обойти ботлнек со стейтом
Аноним 23/08/22 Втр 07:17:39 #401 №2443356 
image.png
Пацаны, как убрать из стринга вот подобную текстовую формацию смайлов? Детектить и удалять весь текст посреди двух двоеточий не вариант, так как бывают случаи, когда они используются по делу. Но ничего другого в голову не приходит. Так что к детекту по колонам добавлю еще 2 критерия: латиница и кол-во символов <20. Но уверен есть вариант лучше.
Аноним 23/08/22 Втр 07:29:50 #402 №2443360 
>>2443356
https://docs.python.org/3/library/re.html#re.sub
Аноним 23/08/22 Втр 08:47:47 #403 №2443395 
>>2443341
Мда. Этот теперь в две жопы срет сразу и в питон-тред и в жс-тред.
Мань, что ты ерзаешь туда-сюда? Нахера ты учишь, будучи вкатышем, язык для фронта И язык для бэка? Ты определись уже.

А то так и будешь сидеть лаба1.руjs в треды постить.
Аноним 23/08/22 Втр 08:50:33 #404 №2443397 
>>2443325
потому что '\n' - это \n
а новая строка - это "\n"
Аноним 23/08/22 Втр 09:18:56 #405 №2443409 
2022-08-23x09:18:40.jpg
>>2443397
Аноним 23/08/22 Втр 09:25:18 #406 №2443414 
scr.png
>>2443409
шнобель, ты?
Аноним 23/08/22 Втр 09:39:36 #407 №2443429 
>>2443414
Почему шнобель?
Давно этого анона тут вижу. Мне кажется, у него от длительного вката немного кукуха барахлить стала
Аноним 23/08/22 Втр 10:03:39 #408 №2443457 
>>2443429
тут мало настолько токсичных персонажей, как шнобель.
и он любит, обосравшись, нападать с оскорблениями типа такого >>2443409
"это не я обосрался, это ты додик-даун"
Аноним 23/08/22 Втр 10:24:25 #409 №2443472 
image.png
Есть лист объектов. Какой самый эффективный способ взять индексы только тех единичек, которые повторяются?
Аноним 23/08/22 Втр 10:24:43 #410 №2443473 
>>2442876
Щенок, хоть в курсе, с кем базаришь?
Аноним 23/08/22 Втр 10:24:44 #411 №2443474 
image.png
>>2443472
fix
Аноним 23/08/22 Втр 10:25:36 #412 №2443475 
>>2443472
>Какой самый эффективный способ
for
Аноним 23/08/22 Втр 10:45:02 #413 №2443489 
>>2443475
Ну мне ничего в голову, кроме такой кринжы не приходит:

for index, value in (enumerate(array):
____if value == 1 and array[index+1] == 1:
...
Аноним 23/08/22 Втр 10:50:53 #414 №2443498 
Сап, возникла задача - есть список координат (штук 10 к примеру) и нужно между точками составить автомобильный маршрут ну и нарисовать это на пикче. Есть либы в питоне? то что чекаю - нихуя не строит - просто прямую линию рисует между точками.
Аноним 23/08/22 Втр 10:51:35 #415 №2443500 
2022-05-15x19:04:06.jpg
2022-05-15x04:47:47.jpg
>>2443489
я тебе перезвоню..
Аноним 23/08/22 Втр 10:52:46 #416 №2443501 
>>2443498
> Есть либы в питоне?
есть.
Аноним 23/08/22 Втр 10:54:37 #417 №2443503 
>>2443500
Пиздец, ебло, ты до сих пор работу что ли не нашло?) Сколько уже блять месяцев прошло а ты до сих пор тут срешь?
что за нелепая и неэффективная хуета на 1м скрине? ничего удивительного что ты нахуй на рынке никому не нужен
Аноним 23/08/22 Втр 10:56:02 #418 №2443504 
image.png
Че эт такое?
Аноним 23/08/22 Втр 11:00:26 #419 №2443514 
>>2443504
ничего удивительного что ты нахуй на рынке никому не нужен
Аноним 23/08/22 Втр 11:01:49 #420 №2443516 
>>2443514
Я против рынка. Я коммунист.
Аноним 23/08/22 Втр 11:02:41 #421 №2443517 
>>2443516
Пиздец, ебло)
Аноним 23/08/22 Втр 11:05:56 #422 №2443525 
>>2443501
а какие?
Аноним 23/08/22 Втр 11:15:40 #423 №2443537 
>>2443457
Я имею ввиду почему у этого шизоида погремуха Шнобель?
Жид что ли? Так они не тупые, а этот прям даун.
Аноним 23/08/22 Втр 11:24:27 #424 №2443557 
>>2443537
несколько тредов назад сдианонили, и оказалось, что пациент - обладатель греческого профиля огромного жидовского шнобеля то есть
Аноним 23/08/22 Втр 11:26:38 #425 №2443560 
>>2443557
Есть фото?
Я коллекционирую шизиков.
Такой кадр в моей коллекции не помешал бы.
Аноним 23/08/22 Втр 11:28:19 #426 №2443563 
>>2442749
https://codeforces.com/contest/1020/problem/B - вот
Аноним 23/08/22 Втр 11:41:14 #427 №2443573 
>>2443560
https://2ch.hk/wrk/res/2600614.html#2606706
Аноним 23/08/22 Втр 13:47:46 #428 №2443651 
Посоветуйте современные книги по питону.
Или выскажите мнение по лутцу(начал с него).
Меня впринципе не пугает стиль лутца, всё ок. Вопрос больше в актуальности того, что он там рассказывает.
Аноним 23/08/22 Втр 13:51:18 #429 №2443656 
>>2443651
>выскажите мнение по лутцу
5 из 10. Много воды, но сам язык он разбирает по косточкам.
Смысла не вижу его именно читать. Лучше держать его под рукой и обращаться к нему время от времени.
Аноним 23/08/22 Втр 13:52:59 #430 №2443658 
>>2443651
И еще вопрос, что действительно пишется на питоне и за что деньгу иметь можно на практике?

По запросам в гугле там целый набор, от игр до космолётов, но я же понимаю, что игры там 1 из миллиона делается на питоне, а космодесантом мне не стать.
Аноним 23/08/22 Втр 14:01:11 #431 №2443671 
>>2443658
МЛ, бекенд, компьютер вижн, дата саенс, девопс очевидно тут не только в питон уметь надо
Аноним 23/08/22 Втр 14:53:34 #432 №2443709 
>>2443671
>МЛ
Это у которого на бекенде все на сишке?
>бекенд
ну что то сложнее запросов к бд нахуй надо, не осилит с нормальным перфомансом...
Аноним 23/08/22 Втр 14:55:19 #433 №2443711 
>>2443709
>Это у которого на бекенде все на сишке?
Весь питон на сишке. И?
Аноним 23/08/22 Втр 15:34:37 #434 №2443749 
>>2443709
Может найдешь наконец работу, чтоб поскорее выбраться из манямирка?
Аноним 23/08/22 Втр 19:57:00 #435 №2443979 
Screenshot20220823-191409VK.jpg
Мнение?
Аноним 23/08/22 Втр 20:27:03 #436 №2444015 
>>2443979
ебать да это же ИСКУСCТВЕННЫЙ ИНТЕЛЛЕКТ
Аноним 23/08/22 Втр 21:24:26 #437 №2444060 
А хули из класса А вызывается метод если из класса Б его вызываю? Неужели нельзя запомнить, какие методы есть у текузего класса и из него в первую очередь звать. И как мне звать из класса Б когда одинаковые имена в разных классах? Что за хуйня?

https://ideone.com/yTs8Xv
Аноним 23/08/22 Втр 21:30:22 #438 №2444069 
>>2428654 (OP)
Где можно спиздить про пайчарм для линуха?
Раньше был ресурс который выдавал ключи для продуктов жидбрейнс, но его прикрыли
Аноним 23/08/22 Втр 21:37:55 #439 №2444075 
B.PNG
>>2444060
Вот скрин для тех кому лень переходить.

Класс Б ничего не знает про 2 других класса. И делая класс Б ожидаю, что и методы будут из класса Б вызываться
Аноним 23/08/22 Втр 21:40:11 #440 №2444079 
>>2444060
>А хули из класса А вызывается метод если из класса Б его вызываю
>вызывает метод из А по правилам mro
>...
Аноним 23/08/22 Втр 21:42:44 #441 №2444080 
>>2444079
Я как разрабодчик класса Б и подумать не мог, что кто-то захочет унаследоваться от него и от ещё какого-то класса, у которого будет метод с таким же именем. Как мне такое надо было нормально делать чтобы не словить такой нежданчик?
Аноним 23/08/22 Втр 21:54:30 #442 №2444090 
изображение.png
>>2444060
Мог бы и сам попробовать-догадаться.
А теперь догадайся что будет, если снизу ты объявишь классы E(C,D) и F(D,C)
Аноним 23/08/22 Втр 22:10:31 #443 №2444110 
>>2444080
А вот это никак. Я помню наследовался от класса, и создал сложную переменную, по типу urllib3_client - и всюду ошибки высыпались. Оказывается, по какой-то случайности в родном классе была такая же переменная, лол.
Аноним 23/08/22 Втр 22:42:39 #444 №2444141 
изображение.png
>>2443325
Я даже не могу уловить что ты спрашиваешь. \n - символ переноса строки.
Если ты выведешь строку, он тебе может так и написать с \n и другими спецсимволами. Если ты напишешь print, то он будет переносить строку, но это потому что в print есть специальный код для этого (скорее всего не в ней, а ниже, ну да не суть)

>>2443472
>самый эффективный способ
В плане кода или в плане производительности?
https://ideone.com/Ao5iKb
Быстрее всего через нумбу будет, второе по скорости извращение вроде моего на нумпи. Да, преобразовать лист в нумпи-массив, посчитать, и потом обратно в лист будет быстрее, чем что угодно с листом бесполезным и тормозным.
Аноним 24/08/22 Срд 00:33:23 #445 №2444204 
>>2444080
Замечание правильное. В других языках есть и private-члены, и protected-члены и слово virtual.
В питоне можно использовать двойное подчеркивание
__hello() или вызывать нужную версию B.hello(self)
Аноним 24/08/22 Срд 01:18:16 #446 №2444213 
>>2444069
>Где можно спиздить про пайчарм для линуха?
нет разницы линукс это или винда. решение одинаковое
Аноним 24/08/22 Срд 09:52:28 #447 №2444295 
a.jpg
>>2443472
Аноним 24/08/22 Срд 10:12:31 #448 №2444302 
опятб выходишь на связь
Аноним 24/08/22 Срд 13:24:06 #449 №2444441 
>>2444213
Так какое? Где ломаный годный пуйчарм?
Аноним 24/08/22 Срд 13:40:39 #450 №2444448 
>>2444441
Cброс триала, там пару файлов удалить нужно
Аноним 24/08/22 Срд 13:42:09 #451 №2444451 
>>2444448
Делал так год назад. Больше не канает
Аноним 24/08/22 Срд 14:11:50 #452 №2444466 
>>2444451
мб за год что-то поменялось и теперь надо удалить 3 файла а не 2? не думал, долбоеб?
Аноним 24/08/22 Срд 14:31:07 #453 №2444473 
работу найти не думал, долбоеб?
Аноним 24/08/22 Срд 14:54:56 #454 №2444486 
Помогите плс с парсингом, я даже не вкатун, просто пытаюсь некоторые свои задачи решать через код, понимаю очень мало.
Вот у меня есть страница и там значит такая структура
div class = content inner
<section>
<table>
<tbody>
<tr>
<td>
<section>
<table>
<tbody>
<tr>
<td>
<section>
</section>
Вот я хочу с помощью бьютифулсупа получить содержимое второго section -> tr
а я как не подступлюсь к этому говну с .find или .find_all я или получаю огромную кучу несортируемой хуйни либо упираюсь в первый section/первый table итд
как выцепить-то бля!
Аноним 24/08/22 Срд 15:42:57 #455 №2444522 
Я просто нихуя если честно не понял почему просто нет поиска элемента по XPath втф
Аноним 24/08/22 Срд 15:55:49 #456 №2444542 
>>2444522
Сначала берет либу где нет xpath
А потом удивляется
Аноним 24/08/22 Срд 15:56:52 #457 №2444546 
>>2444542
А де есть
Аноним 24/08/22 Срд 15:57:52 #458 №2444548 
>>2444546
lxml
Аноним 24/08/22 Срд 15:58:23 #459 №2444551 
>>2444548
Уже нашел но спс
Аноним 24/08/22 Срд 16:01:47 #460 №2444553 
>>2443563
А, так там задача не только под питон, и можно си выбрать.
Может, эм, язык говно просто тормозное, не? Там же натурально даже в простом коде разница в сотню раз с си.


Я написал вроде как быстрый код, но тесты крупные скопировать не могу, а на сайте пишет "вердикт: RUNTIME_ERROR" без объяснения причин.
Если написать другой, потупее и в лоб, то, ну вот: https://pastebin.com/2h9BFeGq
Не знаю ничего про графы и что это такое, и откуда они тут берутся, просто написал как решал бы такую задачу. Графы это разве не про нахождение кратчайшего пути, если у тебя карта есть в виде графа?
>https://pastebin.com/M98ZqAPg
У тебя какая-то хуета со словарями и deque, я даже не знаю что это в питоне. У тебя же обычного массива достаточно для решения такой задачи, который (по крайне мере в с++) на порядок быстрее любого ассоциативного, который тут совсем не нужен. Там короче цифры к кольцам сходятся, я нахожу кольца и нумерую их - ученики из кольца останавливаются на себе же, ученики присоединяющиеся к кольцам останавливаются на первом ученике попавшем в кольце. А у тебя хуета с полным перебором, где ты дублируешь вычисления многократно с каким-то хреновым асимптотическим временем вычисления - боюсь представить как твой код на 100к учениках заработает...
Аноним 24/08/22 Срд 16:36:32 #461 №2444570 
>>2444441
тута
https://3.jetbra.in/
Аноним 24/08/22 Срд 16:49:54 #462 №2444580 
Ладно с xpath тоже нихуя не просто всё оказалось, возвращает пустую хуйню скотина.
Аноним 24/08/22 Срд 17:01:50 #463 №2444596 
>>2444570
Блэ, вот норм мужицкий ответ. А не невнятные виляния очком что делал анон пару постов назад. Сам нихуяшеньки не знал но корчил из себя дохуя умудренного
Аноним 24/08/22 Срд 17:20:52 #464 №2444604 
>>2444060
Это называется C3-линеаризация. Почитай, как в питоне работает множественное наследование.
Аноним 24/08/22 Срд 17:25:13 #465 №2444608 
>>2444080
Ответ: если человек хочет множественно наследоваться от классов, которые для множественного наследования не предназначались - это его проблемы. По-хорошему, множественное наследование должно выглядить как "1 основной класс плюс миксины к нему".
Также можно использовать __ перед названием функции, это специально предназначено для избегания конфликта при наследовании (в pep8 так написано).
Аноним 24/08/22 Срд 17:26:08 #466 №2444609 
>>2444570>>2444441
А что даёт по сравнению с обычным пучармом?
Аноним 24/08/22 Срд 18:09:25 #467 №2444650 
>>2444609
русификатор
Аноним 24/08/22 Срд 18:17:03 #468 №2444659 
Аноны, стоит ли учить черепашью графику? Где она применяется?
Аноним 24/08/22 Срд 18:34:22 #469 №2444681 
Есть две траектории движения из разных отрезков. Как сравнить, насколько они совпадают/не совпадают. Наверняка должна быть библиотека.
Аноним 24/08/22 Срд 18:40:17 #470 №2444685 
>>2444681
А там одинаковое количество точек, или может быть такое, что в одной в десять раз больше, и в каких-то местах сгущения, и при этом одна из траекторий ещё и повёрнута?
Задача настолько общая, что сходу можно десятки подходов придумать - и в зависимости от входных данных какие-то подходы теряют осмысленность.
Аноним 24/08/22 Срд 18:49:22 #471 №2444691 
>>2444685
В том-то и дело, что разное.
Вот я подумываю всё вограть в систему координат и интерполировать точки целыми числами.
Аноним 24/08/22 Срд 19:01:00 #472 №2444697 
>>2444685
Или ещё придумал нарисовать эти отрезки на картиеке с заданной площадью, потом использовать величины площади пересечения по сравнению в общими. Кажется, что-то такое видел в opencv, но поди и попроще библиотеки есть.
Аноним 24/08/22 Срд 19:07:29 #473 №2444699 
>>2444691
>интерполировать точки целыми числами.
Хуита. Лучше для каждой точки траектории найди ближайшую точку из соседней траектории (причём с соблюдением порядка (чтобы не было петель пройденных в другую сторону), то есть чтобы ближайшая точка из второй траектории по индексу была больше или как последняя обработанная.), и как меру сходства взять отношение (среднеквадратичного расстояния до точек соседней - расстояние между точками в этом месте)/(расстояние между точками в этом месте) - ну или там меру сам выберешь подходящую. Лучше вместо расстояния до ближайшей точки взять расстояния до кубического сплайна (особенно если траектория физическая и там была инерция) построенного по второй траектории, и следить за порядком всё так же.
Такой алгоритм и меру сходства выдаст, и позволит найти такое, если в первой траектории отрезок от 10% до 40% совпадает с отрезком второй траектории от 70% до 90%.

Мяу, могу накидать код, если дашь по десять кривых. Чтобы степень зашумлённости посмотреть и сложности траекторий.
Аноним 24/08/22 Срд 19:08:44 #474 №2444701 
>>2444697
Тоже хуета, нечувствительная к мелким деталям и обходу петель не в том направлении. И ещё плохо применимая для 3d, у тебя (у твоего компьютера) крыша поедет рендерить трёхмерный массив, если там мелкие детали есть.
Аноним 24/08/22 Срд 19:48:30 #475 №2444720 
Безымянный.png
Сап. Мб кто-нибудь может сообразить. Как в джанго сделать аннотацию количества записей, за исключением тех, которые пустые? (blank то есть)
У меня есть типа товар, у товара отзывы и оценки. Я хочу отображать количество того и другого. Собственно оценка - это поле отзыва, можно просто оценить, а можно добавить ещё текст. Ну и вот, получается количество оценок - это количество всех записей в таблице отзывов, относящихся к товару, потому что нельзя создать отзыв без оценки. А вот количество отзывов (в смысле с текстом) - это количество записей в таблице отзывов, относящихся к товару, у которых в поле текст пустая строка типа. Ну и вот че-то не работает. Я вот так сделал. И у меня всегда количество отзывов и количество оценок одинаковое. То есть типа всегда отрабатывает default у Case. Хотя если в шелле смотрю, то текст у отзыва - пустая строка.
Аноним 24/08/22 Срд 21:57:58 #476 №2444788 
>>2444720
Ну в общем, я подумал, что все равно наверное каждый раз запрашивать такую хуевину у бд, когда кто-то просто на страницу зашел, как-то не очень и добавил просто эти поля к товару, а запросы эти агрегирующие запускаю в методе сейв в модели отзыва и сохраняю их в товаре. Типа считаю всё это только когда кто-то отзыв оставил или поменял.
Аноним 24/08/22 Срд 21:57:59 #477 №2444789 
Сап, имеется одна формочка в tkinter + функционал. В нее пользователь вводит некие данные. Нормально что я сохраняю данные в xml или json, чтобы при повторной загрузке их вывести частично на формочку? Или есть более изящный способ сохранения данных, введенных пользователем. Применение бд "заказчик" не поймет, тк функционал довольно простой.
ток не обоссывайте, не являюсь программистом, поэтому тут спрашиваю
Аноним 24/08/22 Срд 22:21:22 #478 №2444799 
>>2444789
Не понятно, что и как ты сохраняешь

Ты можешь использовать в качестве базы sqlite, идёт среди стандартных библиотек питона, дополнительных зависимостей нет, никакие дополнительные сервисы не поднимаются
Аноним 24/08/22 Срд 22:25:36 #479 №2444803 
>>2444789
И ещё

sqlite хорош тем, что ты можешь сохранять данные в БД, довольно надёжно

Если ты работаешь в режиме разовых дампов, то может тебе проще сохранять в формате pickle. Так ты можешь сохранять данные любой сложности, всякие классы и т.п. json всё-таки сильно ограничен по возможностям
Аноним 24/08/22 Срд 22:46:13 #480 №2444819 
>>2444799
Скажем так, сохраняю: id, дату, путь, название. По факту это данные для бд, но проблема в том, что итоговое приложение надо будет через pyinstaller преобразовать в exe, а надо ли для работы sqlite устанавливать на другой комп саму sqlite, как с postgres или нет? Потому что нужно учесть перспективу раздачи другим пользователям, а ходить по всем и ставить тонну вспомогательного софта не хочется и такое решение задачи не примут.
>json всё-таки сильно ограничен по возможностям
Мне только записать, прочитать, удалить ненужное
>формате pickle
видел на ютубе про это что-то, но так и не стал разбираться
>Если ты работаешь в режиме разовых дампов
здесь я тебе не скажу что да как, ибо это более продвинутый уровень надо иметь, либо опыт выполнения проектов. У меня пока уровень написания скриптов, а не хоть какого-то легковесного приложения.
Аноним 25/08/22 Чтв 00:17:14 #481 №2444871 
>>2444819
>надо ли для работы sqlite устанавливать
Дальше не читал, ответ - не надо.
Аноним 25/08/22 Чтв 01:26:40 #482 №2444888 
Бля лол, на торентах нет ломанутого пайчарма? Чет способы описанные выше пиздец шизофрения, что с удалением что с левым сайтом.

мимо студентота с бесплатным профешшионал
Аноним 25/08/22 Чтв 01:29:51 #483 №2444889 
>>2444819
Смотри документацию на питон, раздел "модули".

sqlite это штатный модуль, sqlite3 называется. Всё сохраняется в один файл.

Впрочем тебе скорее всего это не нужно, а нужно именно в json. Или в pickle.

Короче храни в json, если же будешь понимать, что что-то явно не так, формулируй задачу и задавай вопросы. Довольно часто серьёзный софт хранит данные в json, это нормально.
Аноним 25/08/22 Чтв 01:32:11 #484 №2444890 
>>2444888
Для тебя МС трудилась, создавала бесплатный VS Code, шикарная IDE. А ты всё свои вороватые замашки проявляешь.

Есть решения свободные, бери и пользуй. Хочешь такого энтерпрайза, ну купи, блин. Уважай чужой труд.
Аноним 25/08/22 Чтв 01:39:30 #485 №2444893 
>>2444890
Я ж говорю, мне ближайшие 4 года похуй, у меня анлимитед подписка на все. Сама суть интересна, почему нормально не крякнули. Могу предположить что с теми ебанутыми способами он может обновляться

А визикод ну хз, вряд ли он может столько сколько пайчарм. Когда-то в детстве пользовал вижуал студию для плюсов, но тот же силайон в разы удобнее и функциональнее.
Аноним 25/08/22 Чтв 04:12:16 #486 №2444924 
>>2444888
>Бля лол, на торентах нет ломанутого пайчарма?
Есть. но там будет оригинальный пишарм и тот же подход что "с левым сайтом"
Аноним 25/08/22 Чтв 04:22:49 #487 №2444927 
>>2444893
>Сама суть интересна, почему нормально не крякнули
куда уж нормальнее. никто не патчит бинарники, не требует права админа. Распаковать зип, указать пару строк в конфиге (даже регаться для триала не нужно), применить ключ и забыть о проблеме до следующей мажорной версии. Просто время от времени качать дистры с оффсайта ибо когда придет новая мажорка и механизм сломается (как это было недавно), то можно будет просто откатить и ждать пока починят.

>вряд ли он может столько сколько пайчарм
ну он и легче. не у всех мощные машины.
Аноним 25/08/22 Чтв 04:56:42 #488 №2444929 
>>2428654 (OP)
Символ Питона желто-голубой - это если присмотреться, то это свастон в цветах укр. флага?
Аноним 25/08/22 Чтв 07:25:26 #489 №2444950 
>>2444889
Спасибо, анон
Аноним 25/08/22 Чтв 10:16:02 #490 №2445015 
bce4f71c-c16c-4a61-8604-9bbd2fccb297.jfif
>>2444929
Аноним 25/08/22 Чтв 12:41:02 #491 №2445121 
>>2444929
Герб Азова, скоро Пыня начнёт отстреливать питонистов
Аноним 25/08/22 Чтв 13:21:36 #492 №2445137 
Тут чел на созвоне упомянул какой-то "калгрин" для питона, который анализирует траты RAM в рантайме. Но нагуглить ничего не могу
Аноним 25/08/22 Чтв 14:08:52 #493 №2445155 
>>2445137
о у вас в команда Настоящий Программист.
короче, тулза называется valgrind. Вот какой там аналог ее в питоне - неебу.
Аноним 25/08/22 Чтв 14:12:31 #494 №2445158 
>>2445137
Кал грин это когда дисбактериоз, надо таблеточек пропить с бактериями.
Аноним 25/08/22 Чтв 15:17:30 #495 №2445195 
image.png
В алхимии не избыточен ли подобный вызов? self.session это разумеется AsyncSession. Он работает, но я хз, обязательно ли вызывать session.commit в конце
Аноним 25/08/22 Чтв 15:50:55 #496 №2445221 
>>2445195
Да, обязательно, чтобы данные сохранились
Аноним 25/08/22 Чтв 15:59:30 #497 №2445233 
>>2445137
калгрины по-моему для анализа ветвей исполнения и производительности

Смотри стек с ключевыми словами
kcachegrind, pyprof2calltree
Аноним 25/08/22 Чтв 16:02:31 #498 №2445241 
>>2445195
Лучше транзакцию открой session.begin(), в конце будет автоматом комит
Аноним 25/08/22 Чтв 16:26:59 #499 №2445268 
перекатите спец скриптом
Аноним 25/08/22 Чтв 20:21:24 #500 №2445441 
>>2444699
Тоже не очень хорошо. Вот одна траектория вообще в какой-то момент разварачивается на 180 градусов, просто расстояния этого не учтут.
Аноним 25/08/22 Чтв 20:51:32 #501 №2445475 
>>2445441
Это уже нужно траектории смотреть.
Взять производную, смотреть чтобы скалярное произведение было положительное, или тем же кодом ещё и производные проверять. Ну это так, вариант сходу.

Дайте мне уже траектории, я же проверить хочу как моя идея сработает, а генерировать - ну, они тогда очень простыми будут, а генерация сложных будет сложнее кода проверки соответствия.
Аноним 25/08/22 Чтв 21:25:32 #502 №2445488 
Ну и какую книгу взять в 2022?
Аноним 25/08/22 Чтв 22:19:18 #503 №2445531 
>>2445488
В рот возьми
Аноним 26/08/22 Птн 02:25:58 #504 №2445644 
Доброй ночи, аноны, хочу попросить совет или какой нибудь гайд для вкатывания. Пробывал проходить курсы на степике, от задач которые там даются прихуел от жизни. Поймал разочарование полное что забил хуй. И вот хочу спросить либо мне это не дано, либо же я пошёл по какому то не правильному пути?

Заранее благодарю
Аноним 26/08/22 Птн 03:44:33 #505 №2445652 
>>2445644
Зачем тебе именно питон? Какая сфера интересна?
OFFTOP Аноним 26/08/22 Птн 08:06:09 #506 №2445666 
Heroku прислал письмо, где сказано об окончании халявного хостинга с ноября 2022 года. Кто куда мигрирует? Желательно бесплатный или копеечный хостинг.
Аноним 26/08/22 Птн 09:49:02 #507 №2445722 
>>2445652
Хотелось бы вкатиться в веб разработку для начала, и далее изучить автоматизацию
Аноним 26/08/22 Птн 10:17:52 #508 №2445751 
>>2445722
> веб разработку
тебе в php-тред

> далее изучить автоматизацию
автоматизацию чего?
Аноним 26/08/22 Птн 10:24:39 #509 №2445757 
>>2445722
Изучай джанго.
Делай пет, так и изучишь.
Вон, анон в другом треде борду свою запилил.
Аноним 26/08/22 Птн 11:21:33 #510 №2445796 
>>2445751
>тебе в php-тред
с чего вдруг.
Аноним 26/08/22 Птн 12:40:50 #511 №2445867 
Почему старый как говно мамонта петухон одновременно является зумерским языком в наши дни? Откуда такое противоречие, в каком-то детском мультике главный герой писал на петухоне?
Аноним 26/08/22 Птн 12:57:22 #512 №2445882 
>>2445796
в веб на рынке рф - пхп вакансий больше
>>2445867
курсов дохуя, реклама на каждом шагу учи питон за час зарабатывай 300к/сек
Аноним 26/08/22 Птн 12:58:21 #513 №2445883 
>>2445882
>в веб на рынке рф - пхп вакансий больше
но самоуважение тоже нужно иметь
Аноним 26/08/22 Птн 13:33:55 #514 №2445936 
Есть один сервис. У него есть жирный стейт, снапшот которого иногда запрашивают клиенты, при этом для каждого клиента применяются определенные фильтры и сами данные на выходе выглядят для каждого немного по разному. Обычно они запрашивают его одновременно и поэтому сервис не всегда успевает отдать его за приемлемое время. Пока сделан костыль, при запросе снапшота эта задача отдается в отдельные процессы на каждого клиента, в принципе все отрабатывает достаточно быстро, но есть одно НО в виде жирнючего стейта который дублируется на каждый процесс. Сам снапшот во время раздачи не меняется. Собственно есть ли в пистоне аналог расшареной памяти между несколькими процессами?
Аноним 26/08/22 Птн 14:31:28 #515 №2445991 
>>2445936
нахуй они одновременно запрашивают? они ебанутые?
Аноним 26/08/22 Птн 16:05:02 #516 №2446088 
>>2445936
Что-то вроде shared memory есть, ты можешь посмотреть в доке на модуль multiprocessing, но там что-то очень ограниченное.

Я этим никогда не пользовался, даже тестировать не пробовал, я как понимаю, нормальную shared memory на уровене питон-данных ты всё равно не сделаешь, возникают проблемы те же, для чего GIL придумывали, проблемы синхнонизации ещё.

В питоне всё на счётчиках ссылок, вот у тебя в двух процессах что-то ссылается на объект из shared memory. Как ты будешь счётчики ссылок синхронизировать?

Сам по себе стрёмный паттерн. Даже в многопотоке, ты замяешься корректно лочить или обрабатывать ситуации, когда у тебя одни поток читает, а другой меняет этот супер тяжеловесный стейт.

В какой момент ты создаёшь клиенты? У тебя посикс? Ты можешь делать отдельные процессы уже после изменения стейка, использую метод fork для того, чтобы порождать подпроцессы.
Аноним 26/08/22 Птн 16:09:11 #517 №2446094 
>>2445936
Ещё одно, насколько я помню, если ты форкаешь процесс, но при этом не меняешь данные, то реально в памяти хранится только одна физическая копия, размножение делается, если ты что-то реально меняешь в памяти.

По крайней мере на виртуальных машинах такое что-то работает.

Надо уточнять-проверять, сейчас немного лень. Но если тебе важно, проверь вот это вот.
Аноним 26/08/22 Птн 20:22:02 #518 №2446442 
ПЕРЕКАТ
>>2428654 (OP)
>>2428654 (OP)
>>2428654 (OP)
Аноним 26/08/22 Птн 20:23:02 #519 №2446444 
ПЕРЕКАТ 2.0
>>2446437 (OP)
>>2446437 (OP)
>>2446437 (OP)
comments powered by Disqus

Отзывы и предложения