Программирование

Ответить в тред Ответить в тред
Check this out!
Питон тред №115 /python/ Аноним 15/03/21 Пнд 01:57:18 19670181
pylogo.jpeg 39Кб, 1000x625
1000x625
feaybtnl1920x10[...].jpg 321Кб, 1920x1080
1920x1080
AR-200108475.jpg 151Кб, 2100x1400
2100x1400
Тред, посвящённый языку программирования Питон, #115

Предыдущий: >>1954138 (OP)
Литература:
https://ln2.sync.com/dl/cf2c1d070#xq4s328t-xbbjys2z-9r6j7ss7-gf4e9dv6 <-- Книжки, новое собрание
Ещё книжки: https://yadi.sk/d/HQhhsBsq3TVRUq
Тоже книжки: https://yadi.sk/d/tArKKuQu3Kejuq
Больше книжек: https://yadi.sk/d/H-00n-UG3RSQem

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
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
Аноним 15/03/21 Пнд 03:20:58 19670412
Че там по питону 4 есть какие-нибудь задумки? Что вообще планировали в него выкатить?
Аноним 15/03/21 Пнд 04:00:28 19670543
Переписал одну веб-тулзу для работы через async, получил 60%-ое уменьшение времени исполнения, охренел и до конца не понимаю, как это работает.
Скрипт по сути что делает: принимает некий текст, сплитит его по заданному ключу, посылает запрос на API, сообразно с ответом оттуда переделывает кусок сплитнутого текста, потом джойнит эти куски текста из массива в строку и её возвращает. При этом await, естественно, к запросу на API присобачен. Спрашивается, как так получается, что куски текста по итогу оказываются склеенными в нужном порядке, если запросы на API, без которых невозможно начало их переделывания, посылаются не по порядку? ЯННП.
Аноним 15/03/21 Пнд 04:14:50 19670584
>>1967054
Лучше бы код скинул, конечно, но вероятно джойнит куски он в конце, когда все ответы получены, а запросы из-за асинхронности делает по сути одновременно
Аноним 15/03/21 Пнд 04:15:06 19670595
>>1967041
>Че там по питону 4 есть какие-нибудь задумки? Что вообще планировали в него выкатить?
Питон 4 не планируют выкатывать вообще. В этом нет необходимости. Будет 3.10, 3.11, 3.12 и так далее.

Цель третьего питона была даже не в том, чтобы много нового принести, а в том, чтобы убрать мешающее старое.

Сейчас это не актуально.
Аноним 15/03/21 Пнд 04:26:40 19670616
Что такое Хуки и для чего нужны? Обёртка для чего? Зачем?
Аноним 15/03/21 Пнд 04:42:26 19670637
>>1967058
Вероятно-то оно вероятно, но хотелось бы понимать, что это за вундерваффе.
Сейчас я ещё больше удивился, потому что рераны теперь показывают вдвое большее время исполнения. Хотя, тут, может, API искусственно снижает пропуск.
Код не покажу, потому что там жесть.
Аноним 15/03/21 Пнд 07:33:36 19670848
>>1967063
Выполняешь через asyncio.gather? Возвращает в том же порядке, в котором и передавал. В этом и фишечка
Аноним 15/03/21 Пнд 07:45:25 19670929
>>1967059
Он мечтает чтобы как в жабе. 8, 10/11/ хуяк 15
CI/CD ? Аноним 15/03/21 Пнд 08:39:19 196709910
Приветствую, питоняч!

Подскажите вот какую вещь.
У меня есть приложение на flask.
Оно развернуто на VPS с Ubuntu, с использованием Gunicorn и Nginx. Классика, крч.

На сейчас я просто делаю git push со своего ПК, потом на VPS nginx stop и git pull.

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

Как можно выкатывать обновления без остановки приложения?


Я видел разные статьи по CI/CD пайплайнам, но, как я понял, это даёт только автоматический git push после прохождения тестов. А это не совсем то.


Подскажите что гуглить, что посмотреть.
Спасибо!
Аноним 15/03/21 Пнд 09:36:52 196711211
>>1967099
>Подскажите что гуглить
Zero downtime deployment, blue-green deployment, rolling update without sms and registration
Аноним 15/03/21 Пнд 09:56:07 196711712
>>1967054
Разные коннекшены под каждый запрос. Хоть сто раз перекрути порядок, всё вернётся через колбэки как надо.
Аноним 15/03/21 Пнд 09:57:02 196711913
>>1967061
Хуками чего только не называют. Обычно это такой костыль сбоку, позволяющий вызвать твой код в какой-то ситуации.
Аноним 15/03/21 Пнд 10:01:05 196712314
>>1967099
Тебе нужна хитрая прокся, nginx скорее всего только в платном варианте плюс так умеет. В момент деплоя подняты две версии одновременно и прокся все новые конекшены переваливает на новую версию. Дальше ждёшь когда старые конекшены отвалятся и гасишь старую версию. В кубернетесе эта херня из коробки есть, даже без nginx plus.
Аноним 15/03/21 Пнд 10:23:40 196713115
Аноним 15/03/21 Пнд 10:38:56 196714116
>>1967059
>а в том, чтобы убрать мешающее старое
Поэтому в либах до сих пор проверка на версию питона идет?
Аноним 15/03/21 Пнд 11:37:23 196717917
А правда что Bottle быстрее Flask? Стоит ли пересаживаться на него?
Аноним 15/03/21 Пнд 11:44:31 196718318
Аноним 15/03/21 Пнд 12:03:03 196719119
>>1967179
Тебе стоит хоть на что-то пересесть с маминой шеи.
Аноним 15/03/21 Пнд 12:04:17 196719320
>>1967018 (OP)
почему питон связывают со смей если его назвали в честь монти пайтона?
Аноним 15/03/21 Пнд 12:13:20 196720221
>>1967193
А почему MySQL связывают с дельфинами? Это просто маскот, съеби нахуй.
Аноним 15/03/21 Пнд 12:13:45 196720322
>>1967018 (OP)
На связи фуллстек макака: питон (aiohttp/sanic) + жс (ангуляр)
9 месяцев назад вкатился, сейчас думаю менять работу чтобы не застрять на одном месте (и апнуть зп конечно же). Как посоветуете выбирать проекты, чтобы не продаться за дешево или не сесть за неликвидное гавно?
буду также идти фуллстеком пока либо только в бэк, как получится
Аноним 15/03/21 Пнд 12:15:18 196720823
>>1967179
If you want new sensations, just use Bottle. © Guido van Rossum
Аноним 15/03/21 Пнд 12:17:58 196721324
>>1967203
Ангуляр и питухон? Это где такое просят?

Общался тут по поводу нейронки, ребята на Django/Flask все нахуячили и продают. Я хуй знает что советовать. У меня одни ожидания, а по факту FastaAPI который я более менее знаю нахуй никому не всрался. Сижу пердолю интеграции-эмуляции.
Смотри че там у Яндекса по стеку, они питон любят.
Аноним 15/03/21 Пнд 12:19:59 196721725
>>1967208
Этот чорт больше не имеет право голоса. Лучше бы посмотрел как perl 6 делался. Никаких секс утех с совместимостью. Просто новый язык, а гвидо не смог так
Аноним 15/03/21 Пнд 12:21:04 196722026
>>1967202
Почему ты такой грубый?
Аноним 15/03/21 Пнд 12:22:08 196722427
>>1967220
очевидно почему, ты тупой.
Аноним 15/03/21 Пнд 12:28:30 196723228
>>1967217
Заебись сделался - пятый за это время помер, а эта хуйня никому не нужна изначально.
Аноним 15/03/21 Пнд 12:31:26 196723729
>>1967232
Так дело не в том, что он используется в 3 местах, а в том, как язык был сделал.
Аноним 15/03/21 Пнд 12:36:41 196724430
>>1967237
Так между этими фактами есть прямая связь.
Аноним 15/03/21 Пнд 12:38:04 196724631
>>1967213
статистика по ХХ за неделю, ДС
6 вакансий «sanic»
25 вакансий «fastapi»
47 вакансий «aiohttp»
52 вакансии «asyncio»
97 вакансий «flask»
184 вакансии «django»
2 247 вакансий «python»

Причём в случае fastapi и некоторых других там больше через запятую.

Джанго свой индустриальный фреймворк, это одна песня.

Flask по-прежнему популярен только потому, что у асинхронных фреймворков ПОКА тяжеловато с ORM, соответственно там сложно делать что-то, что использует сложные SQL базы под собой.

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

Аноним 15/03/21 Пнд 12:39:44 196724932
>>1967246
> у асинхронных фреймворков ПОКА тяжеловато с ORM
Есть асинхронная sqlalchemy...
Аноним 15/03/21 Пнд 12:41:08 196725033
>>1967224
ну ты и бык, ну ты и торч!
Аноним 15/03/21 Пнд 12:45:37 196725434
>>1967249
Официальная пока в стадии бета-тестирования, версия 1.4.

Есть какие-то левые оболочки, где асинхронные интерфейсы к синхронной алхимии, то есть там через thread executor как-то это поддержано всё.

Аноним 15/03/21 Пнд 12:45:57 196725735
>>1967244
Нет прямой связи. Людям хочется юзать что-то простое. Перл с первого взгляда никогда не был простым, хотя на деле не сложнее крестов, просто с парой фич.
Ты даже не запустишь простой пример perl 6 на perl 5
Зато в питоне в модулях вставки
if sys.version_info >= (3, 0)
вот это современно, вот это классно.
Аноним 15/03/21 Пнд 12:50:32 196726136
>>1967257
>Зато в питоне в модулях вставки
>if sys.version_info >= (3, 0)
Если модуль старый, то что делать, тогда актуально было.

То есть проблема в том, что пытались поддерживать две ветки сразу.
Аноним 15/03/21 Пнд 12:51:40 196726337
>>1967257
Без этого бы не было уже произошедшего массового перехода на 3. (который даже так происходил весьма туго)
Пиздец, как можно этого не понимать?
Аноним 15/03/21 Пнд 13:03:44 196727238
Аноним 15/03/21 Пнд 13:08:19 196727439
>>1967272
Это говно еле развивается
Аноним 15/03/21 Пнд 13:13:52 196727840
Аноним 15/03/21 Пнд 13:14:53 196728041
>>1967278
VScode на электроне, Sublime (платный), Atom(платный), VIM(учишь дольше чем питон)
Аноним 15/03/21 Пнд 13:16:38 196728242
>>1967261
>две ветки сразу
Вот про это я и говорю.
Аноним 15/03/21 Пнд 13:17:21 196728443
>>1967280
>Sublime (платный)
На уровне:
-Заплати, плиз.
-Пошел нахуй.
-Ладно. Но я потом еще спрошу.
Аноним 15/03/21 Пнд 13:20:13 196728644
>>1967280
>на электроне
Что это значит?
Аноним 15/03/21 Пнд 13:26:18 196729845
>>1967286
Вместо нативной программы делают бандл хромиума с скриптами на жс. Жрет ресурсы оно соотвтетствующе.
Аноним 15/03/21 Пнд 14:15:13 196732946
>>1967280
А вот я и вижу дегрода с плутора извилинами который не может спиратить Professional PyCharm / WebStorm
Аноним 15/03/21 Пнд 14:15:44 196733047
Аноны, хелп, у меня уже жопа горит, проблема с джанго, я частенько переделываю модели и проблема возникает, когда я начинаю делать связи, например, если сначала сделал модель через внешний ключ, а потом поменял на 1к1, либо наоборот, ххочу сделать миграцию, удаляю все строки из таблицы заранее, потом мейкмиграшонс, он говорит что для уже созданных записей нужно прописать дефолтное значение, но записей нет, я перепроверяю, потом вписываю рандомное значение и у меня получается сделать миграцию, потом я пытаюсь ее применить, но теперь джанго говорит, что я дурак, потому что теперь у этих несуществующих строк несколько дефолтных значений и не дает применить, иногда помогает удалять миграции и создавать заново, иногда приходилось тереть бд, но это ведь не нормально, подскажите какие хинты использовать и как это фиксить, а то я устал танцевать с бубном каждый раз
Аноним 15/03/21 Пнд 14:19:38 196733348
>>1967329
Сейчас бы хвастаться пиратством говноподелия.
Аноним 15/03/21 Пнд 14:22:57 196733749
>>1967333
>Чем же там "гавно"?
>АХАХАХ ДА ТЫ ЖЕ ЖИДБРЕЙНС ЮЗАЕШЬ)) ГОВНА НАВЕРНУЛ АХАХАХА
>Нет, ты нормальным языком можешь пояснить, что там не так?
>ЯРЯЯЯ СЛИЛСЯ! СЛИЛСЯ! ГОВНОПОДЕЛИЕ ЗАКУПИЛ И СЛИЛСЯ АХАХАХА
Аноним 15/03/21 Пнд 14:28:02 196734650
>>1967330
Господи за что, есть таблица в бд, но в ней нет колонки id, я удалил миграции, создал заново инитную, в ней написано что у таблицы есть id, пытаюсь мигрировать, но колонка не создается, в бд не появляется, пишет что все окей, дропнул таблицу, все равно пишет все окей, все нормально, как с этим бороться?
Аноним 15/03/21 Пнд 14:30:43 196734851
>>1967337
Это говно не умеет активировать интерпретатор на удаленной машине, если она на Windows. Нахуй надо. И для каждого языка своя среда.
Аноним 15/03/21 Пнд 14:30:59 196734952
>>1967337
Поясняю.
Индексация проекта отжирает кучу ресурсов.
Фоновые процессы работаю, которые мне не нужны.
Полное отсутствие модульности. Вот поебать что ты не пользуешься встроенным db navigator, т.к. он убогий, он будет висеть.
Без принудительной ревалидации кеша - никуда.
Порой просто не в состоянии найти модуль в проекте.
Ломается модуль - ломается ide.
Ну и самый смак. 90% этих иде содержат один и тот же функционал. Ты скачиваешь одно и тоже, за исключением автокомплита и анализатора, которые теперь выносят в ls для любых редакторов, для любых языков.
Аноним 15/03/21 Пнд 14:32:41 196735053
>>1967348
>интерпретатор на удаленной машине
>если она на Windows
Проблемы админского говна любого нормального разраба не ебут. Обмажься своим вимом, отойди в сторонку и не мешай Big Guys разруливать проблемы
Аноним 15/03/21 Пнд 15:11:12 196738054
Я могу проверить наличие какого-то элемента массива с помощью if some_element in list:
Какой самый лучший способ перебрать несколько элементов для проверки, кроме if some_element in list and other_element in list and another_element in list?
Аноним 15/03/21 Пнд 15:13:37 196738255
>>1967380
all(x in [None, 'a', 'ooo', 'qwe'] for x in ['1', 'b'])
Аноним 15/03/21 Пнд 15:14:36 196738356
>>1967380
>>1967382
И есть еще any
Догадаешься думаю для чего
Аноним 15/03/21 Пнд 15:25:54 196739157
>>1967346
В общем судя по всему это просто баг, до сих пор не понимаю как именно иногда получается создавать pk на onetoonefield, но чаще джанго начинает ругаться что id столбца нет и самый простой вариант это назначть дефолт и убрать в файле миграции этот дефолт и потом мигрировать
Аноним 15/03/21 Пнд 15:43:43 196740058
>>1967350
>JetBrains
>BigGuys
>На каждый язык та же хуйня на жаве что и IntelliJ
>неоптимизированный комбайн тащит за собой логику для Java IDE
>ряяя топчег за свои деньги
говна наверни, макака
Ты из тех "у меня на локальной машине работает, мне норм".
Аноним 15/03/21 Пнд 17:49:27 196752059
С ооп проблемы. Можно ли создавать неограниченное количество экземпляров классов? Или как-то хранить их данные.
Создал класс с init методом. Дальше в коде делаю так
card = Bank(a, b)
(a,b - инпуты) А можно ли сделать, чтобы если я заново ввожу этот инпут (в вайл тру) то создавался новый экземпляр, а не перезаписывался старый.
Аноним 15/03/21 Пнд 17:52:27 196752860
>>1967520
>(a,b - инпуты)
Я перепутал строки. Там рандомные цифры
Аноним 15/03/21 Пнд 17:53:41 196753161
>>1967520
Ты хуйню какую-то спрашиваешь.
Обьясни задачу, а не свои идеи, как её решить.
Аноним 15/03/21 Пнд 17:58:58 196753862
>>1967531
да я уже понял, что хуйню пытаюсь заливать.
Надо было словари подключить, а не хуйнёй стадать
Аноним 15/03/21 Пнд 18:37:56 196759563
Аноны, есть задача в которой мой сервис на дрф должен выдавать ответы только по пермишшонам на аутентификацию, есть сайт на который сервис будет встраиваться и на нем реализована какая-то аутентификация, какой самый обычный способ связать эти 2 сервиса? Очевидно нужны токены, есть возможность в джанге вообще перееопределить юзера так, чтобы сохранялись только токены и если человек передает токен в заголовках, то получает ответ? Пока туплю и приступать не сегодня к реализации, поэтому лениво прошу вас подсказать, может можно как-то заменять request.user на токен автоматически при каждом запросе?
Аноним 15/03/21 Пнд 19:07:35 196763364
>>1967272
>>1967337
Comunity версии для очень и очень много хватает с головой, новичкам для изучения уж точно
Аноним 15/03/21 Пнд 19:24:51 196766065
>>1967232
>>1967217
Perl 5 жив, последнее обновления вот было в январе этого года, более того, пилят новою версию Perl 7, которая будет продолжать традиции пятой версии, а Perl 6 переименовали, теперь это Raku, слишком уж другой язык получился.
Аноним 15/03/21 Пнд 20:15:48 196774366
Нужен совет умных людей.
Есть класс один.
class A:
_pass

class B:
_def __init__(self, args, *kwargs):
__self._own = A()

Мне нужно не меняя класс A, дополнить его, чтоб везде, где он использовался, он был расширен парой методов и переопределены пара существующих.
Наследоваться, дополнить и заменить везде не могу по причине, что не могу поменять импорты. Выносится в отдельный модуль.
Аноним 15/03/21 Пнд 20:17:36 196774767
Планирую вкатиться в SOLID, какие подводные?
Аноним 15/03/21 Пнд 20:21:49 196775168
>>1967743
Манки-патчинг.
def hui(self):
pass
module.A.method = hui
Аноним 15/03/21 Пнд 20:25:26 196775369
Аноним 15/03/21 Пнд 20:36:31 196776270
>>1967751
И везде, где будет
from x import A
b = A()
b.method()
Будет работать?
Аноним 15/03/21 Пнд 20:40:01 196776471
>>1967762
Да, импортируй его у себя, замени, а потом последующие импорты уже берут оттуда.
Аноним 15/03/21 Пнд 20:49:51 196777372
Аноним 15/03/21 Пнд 20:59:50 196778273
>>1967179
Нет, не быстрее. Твоя бизнес-логика перекроет на несколько порядков быстродействие фреймворка. Хоть ты на чистом си напиши фреймворк с миллионами попугаев в секунду, всё это быстро станет ненужно.
cmd и python. Помогите ради довольства Всевышнего Велосипеда Аноним 15/03/21 Пнд 21:03:42 196778674
Суть в том, что я пытался сделать bat файл (нужно, чтобы экономить время), в котором есть 3 сценария:
1) открытие cтандартной IDLE для питона
2) открытие пыхчарма
3) открытие индусского учебника

В общем виде bat файл выглядит вот так:

call "C:\Users\Nananan\Desktop\IDLE (Python 3.8 32-bit).lnk"
call "C:\Users\Nananan\Desktop\ A_Byte_of_Python_Rus_2.01.pdf"
call "C:\Users\Nananan\Desktop\PyCharm Community Edition 2020.1.2.ink"

Но открывается только IDLE, хотя остальные пути прописаны в таком же синтаксисе. При этом добавляя про оставшиеся два путя, что не они являются внутренней или внешней командой. Как сделать так, чтобы все 3 сценария запускались?
Аноним 15/03/21 Пнд 21:46:48 196782975
>>1967786
Там явно не call, а что-то другое было всегда.
Алсо, используй всякие шорткаты для путей вместо полного, разные %шиндовс% там есть и т.д.
Аноним 15/03/21 Пнд 22:00:18 196784676
>>1967829
Это операторы cmd, я понимаю. Я уже юзал несколько, но 0 КПД. Мб дело в самих файлах. Хз. Помогите кто-нибудь
Аноним 15/03/21 Пнд 22:11:35 196785977
>>1967538
Какие словари?! Во-первых есть NamedTuple, во вторых
BankFactory:
objects:List[Bank]=[]
@classmethod
def create_new_obj(arg1, arg2):
bank = Bank(arg1, arg2)
objects.append(bank)

Nested/inner class или просто импорт, похую
class Bank:
def __init__(a,b)
self.a=a
self.b=b
Дальше просто вызываешь BankFactory.create_new_object(a,b)
Аноним 15/03/21 Пнд 22:12:54 196786378
>>1967846
За 5 сек нагуглил, всё работает.
Не ленись.
Аноним 15/03/21 Пнд 23:41:08 196794179
>>1967751
А вот и нихуя

>>1967743
Не слушай предыдущего, он не в курсе что биндинг методов работает не так
Тебе нужен types.MethodType

def my_method(self): pass

a = MyClass()
a.instance_function = types.MethodType(my_method, a)
Аноним 16/03/21 Втр 00:05:54 196795680
>>1967123
Подобное можно и на обычном нжинксе реализовать, довольно просто. Сам так на РАБоте сделал для проекта, полет нормальный.
Аноним 16/03/21 Втр 00:11:34 196796481
Аноним 16/03/21 Втр 00:47:26 196798082
>>1967941
Причем тут инстанс, если ему класс нужно изменить.
Аноним 16/03/21 Втр 01:14:14 196799783
>>1967964
Для себя подчерпнул пропущенные моменты, спасибо, правда есть мнение, что лучше после изучения питона перед бд, вебом, фреймворками и гитом изучить линукс, очень много проблем отпадет, вспоминаю как на винде ебался с mysql по началу, страшно представить, какие-то окна непонятные, какие-то подключения и тоже самое с гитом, пока не понял что такое терминал было страшно с гиту подступать. Так же читать книги в запой я думаю очень глупо, сначала учишь основы, узнаешь в общих чертах о возможности(типа асинхронность), а уже когда придет подходящая задача идешь в документацию и гуглишь всю реализацию. А читать с нуля книги, кроме укуса питона не стоит имхо, это скорее справочники, особенно забавно где-то видел в начале книги страниц 49 по импортам в питоне, а человек скорее всего даже пару месяцев не будет вообще ничего импортить и в итоге забудет напроч
Аноним 16/03/21 Втр 01:23:27 196800784
>>1967956
У нгинкса проблема в том что если апстрим недоступен, нгинкс падает полностью. И dns resolve апстримов присходит только один раз при запуске/перегрузке конфига. Уж лучше траефик какой-нибудь.
Аноним 16/03/21 Втр 01:34:52 196801485
>>1967997
Ну я и указал что книги можно не читать, я вообще обычно пролистываю и записываю важные части, не особо вдумываясь, чтобы потом прочитать и понять. С линуксом радикально решил, переехал на коляску сначала, сидел на ней месяц, потом накатил арч+i3 и поебался с настройкой, думаю файлик как че делал тоже на гит запилю.
Аноним 16/03/21 Втр 02:23:49 196803886
>>1968014
Хз на счет настроек, я один раз накатил убунту и в ней хватает всего абсолютно, разве что грузится дольше винды по ощущениям, так что всем начинающим советую просто ставить 2-ю ось убунту и копаться в терминале, станет гараздо понятней и как ос работают и как с программами можно взаимодействовать
Аноним 16/03/21 Втр 02:29:06 196804287
>>1968038
Ну хуй знает.
Десктопный линупс это ебля с установкой-драйверами и с иксами. Самое бесполезное практикующему девелоперу.
А что ты потом запустил тот терминал, что путти, разницы нет.
Запускаешь себе виртуалбокс бриджем и дрочи тот линукс сколько влезет без лишней шелухи.
Аноним 16/03/21 Втр 05:27:25 196812088
>>1967119
Чем отличается от декоратора тогда?
Аноним 16/03/21 Втр 06:21:32 196813189
>>1968120
Хук это не обёртка, это совсем другое.

Обёртка это декоратор. Или middleware в терминологии веб-фреймворков. Декоратор подволяет сделать с данными, которые куда-то передаются, перед вызовом, и с результатом после. При этом функция, которую ты вызываешь, ничего про твою деятельность не знает, это не её забота.

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

Декоратор - снаружи. Хук внутри.
Аноним 16/03/21 Втр 07:23:34 196814590
>>1968120
А их нужно сравнивать? Регистрация хука может быть выполнена в виде декоратора. Хук чаще всего это такой слот, в который ты можешь вставить свой код, но слово общее и точного определения нет. Примерно из той же оперы что entity, helper, handler, слова которые почти ничего не значат.
Аноним 16/03/21 Втр 08:37:26 196816291
image.png 21Кб, 646x486
646x486
Есть вот такая хрень сорри за скрин, выдаёт последние сделки с биржи, как можно реализовать нахождение двух похожих чисел из разных словарей в диапазоне +-1%?
Аноним 16/03/21 Втр 08:44:44 196816492
>>1967280
>VIM(учишь дольше чем питон)
Неправда. Чтобы просто редачить текст с минимальным конфигом - достаточно одного/двух вечеров. в моем случае правда потребовалась неделя, ибо у меня деменция.
Делать из вима полноценную ide затея конечно сомнительная. Очень многие люди просто накатывают вим плагин поверх любимой идешки. У меня вот и вскод и пичарм с вим плагинами. Зачем? -Быстрые замены, удаления, правки текста и вот это вот все... Ещё на сервере править конфиги вимом куда удобнее, чем нано. Многие вещи в нем сделаны действительно очень классно, рекомендую кароч!
Аноним 16/03/21 Втр 11:29:54 196829993
На coursera годный курс по вкату?
Аноним 16/03/21 Втр 12:22:11 196836594
Как вкотиться в удаленку на питоне и есть ли вообще шансы найти её при условии, что знаю питон и джанго/фласк?
Аноним 16/03/21 Втр 12:22:30 196836795
>>1968365
без джса, реакта, вью и прочей поебени этой
Аноним 16/03/21 Втр 14:20:22 196850696
>>1968365
>Как вкотиться в удаленку на питоне и есть ли вообще шансы найти её при условии, что знаю питон и джанго/фласк?
Без бекграунда в офисе почти никак, джуны на удаленке нахуй не нужны
Аноним 16/03/21 Втр 14:56:46 196856897
>>1968506
Какие шансы вкатиться туда?
Аноним 16/03/21 Втр 14:59:32 196857498
>>1968506
я работал в веб-студии, хорошо шарю в вебе как сеошник, верстала и тестер.
или ваще вкатиться в пхп и ларавельку и через месяца 3-6 уже брать заказы на апворке и быть миллионером?
Аноним 16/03/21 Втр 17:41:59 196878899
X=1 , y=1 , все объекты в питоне имеют уникальный id,, так какого хуя у них id одинаковый(x,y)
Аноним 16/03/21 Втр 19:01:42 1968906100
>>1968788
Типа, ты пишешь, что x = 1 и y = 1, а потом удивляешься id(x) == id(y) возвращает True? Дело в том, что числа в питоне это неизменяемые объекты, он не создает две разные единицы, обе переменные, x и y, они ссылаются на один и тот же объект, число 1. Вот если ты напишешь x = [] и y = [], то id(x) == id(y) будет False, потому что списки это изменяемые объекты, и питон два раза создаст новый список.
Аноним 16/03/21 Втр 19:06:13 1968911101
image.png 4Кб, 169x137
169x137
>>1968906
Угадаешь, почему так происходит, можешь взять с полки пирожок
Аноним 16/03/21 Втр 19:06:14 1968912102
>>1968788
Вм при старте инициализирует часто используемые числа, вроде до 250 или где-то так. Попробуй с большими - такого не будет.
Аноним 16/03/21 Втр 19:37:11 1968951103
image.png 80Кб, 944x745
944x745
Что я собственно делаю не так? Почему оно ещё self просит ввести?
Аноним 16/03/21 Втр 19:50:02 1968965104
>>1968951
Там сложнее с тем, как область видимости устроена. Почитай про mro и т.п.

Суть в том, что у тебя есть переменая класса, например balance

У тебя есть объект, класс Bank. Это тоже объект, у него есть свои переменные, balance и другие.

Ты используя этот класс создаёшь новый объект
b = Bank()
например

Это другой объект типа Bank, у него свой набор переменных.

Если в b у тебя не определена переменная balance, и ты обращаешься к ней, то питон сначала лезет в переменные b. Он видит, что переменной с таким именем не определено. Тогда он дальше лезет уже в класс Bank, и берёт переменную оттуда.

То когда ты записываешь в переменную, пишешь код
self.balance = 100
то питон смотрит объект b, и если там нет этой переменной, то он не лезет наверх, а создаёт переменную с таким именем в объекте b
Аноним 16/03/21 Втр 19:50:43 1968967105
>>1968951
>card = Bank
Это штука делает не то, что ты хочешь
Аноним 16/03/21 Втр 19:52:38 1968973106
>>1968965
>>1968967
Попробовал сделать Bank.create_card() Но тоже не то
Аноним 16/03/21 Втр 19:55:24 1968977107
>>1968973
Метод не статический, тебе нужен уже существующий объект
Аноним 16/03/21 Втр 19:58:36 1968982108
>>1968973
Лол, пиздуй читать про ооп, а не угадывай.
Тебе нужен classmethod и другая логика.
Аноним 16/03/21 Втр 19:59:41 1968984109
>1968982
Да, ты прав, просто в одном проекте чёт написал на ооп, но сам не до конца понял, как это работает
Аноним 16/03/21 Втр 20:08:35 1968989110
>>1968973
>Bank.create_card()
Тебе надо почитать про объекты в питоне. Доля магии есть, вот с наследованием, разрешением имён и т.п.

В целом же всё просто.
вот у тебя есть класс Bank
class Bank:
....
____def print_balance(self, text):
________print(text, self.balance)

my_card = Bank(balance = 10000)

И my_card, и Bank это объекты

запись
my_card.print_balance(some_text)
эквивалентна записи
Bank.print_balance(my_card, some_text)

в обоих случаях происходит одно и то же, вызывается функция
print_balance
первым элементом, который self, передаётся my_card, дальше остальные параметры.

Дальше начинается магия питона, что происходит, если в self не определена какая-то переменная. Тогда он лезет в другие объекты, чтобы её достать для чтения.

Если ты хочешь записать что-то в переменную именно класса, а не объекта, созданного из класса, то тебе надо обращаться как
Bank.balance = 666

Изнутри объекта ты можешь делать что-то вроде
self.__class__.balance = 6666

Лучше про это почитать, чтобы лучше понимать, что происходит там. Не понимая ООП не освоишь.
Аноним 16/03/21 Втр 20:13:28 1968992111
>>1968951
>card = Bank
Пиздец, питонотред - сборище самых тупых долбаебов. Даже не какие-то непонятные/странные ошибки.
Аноним 16/03/21 Втр 20:49:08 1969036112
>>1968992
Тоже с этой хуйни проиграл
Насмотрятся рекламы от айти инфоцыган на утубах, а потом лезут сюда
Аноним 16/03/21 Втр 21:32:11 1969085113
>>1968007
> У нгинкса проблема в том что если апстрим недоступен, нгинкс падает полностью.
Антош, антош, смотри шире.
+ Не совсем так
>Уж лучше траефик какой-нибудь.
Юзай, никто ж не запрещает. Чем-то, наверное, и трафик лучше.
Аноним 16/03/21 Втр 21:36:33 1969091114
Вы используете 2 монитора? есть возможность поставить 2-й, но до сих пор не понимаю как это на практике пригождается, подскажите
Аноним 16/03/21 Втр 21:46:27 1969097115
>>1968951
Долбоеб, ты фишинг сайт сооружаешь что ли? Нахуй тебе ввод карты и баланс.
Аноним 16/03/21 Втр 21:51:12 1969100116
Аноним 16/03/21 Втр 22:02:14 1969110117
Аноним 16/03/21 Втр 22:04:28 1969116118
>>1968992
Даже обидно, сам недавно забыл в одном месте скобки поставить и минуту не мог понять в чем дело
Аноним 16/03/21 Втр 22:06:49 1969117119
>>1968989
да там и переменные класса используются, он явно решил не читая ничего про ооп начать практику делать, потом будет вопрос про то почему когда он создает 2 карты, то баланс у них общий
Аноним 16/03/21 Втр 22:09:51 1969119120
>>1969117
Я пока до sql не дошёл планировал в txt файле держать данные
Аноним 16/03/21 Втр 22:19:15 1969127121
>>1968911
Здесь нечего угадывать, del только разрывает связь между переменной и объектом, пока не случится сборка мусора, объект никуда не денется, и питон считает, что если его можно использовать, то почему бы не использовать
Аноним 16/03/21 Втр 22:20:27 1969130122
>>1969100
ладно, за мат извени
Аноним 17/03/21 Срд 05:03:46 1969341123
Аноны, вопрос по автоматизации: есть пиратка ABBY Fine Reader, хочу сделать из нее что-то вроде автоскана(в реальном времени) для сабов на экране и чтобы это все еще работало в offscreen/background ( на заднем фоне вообщем). Гугл советует использовать библиотеку Pyautowin. Сам вопрос: это вообще осуществимо? Или в программах обычно лочат такие вещи еще на этапе разработки?
Аноним 17/03/21 Срд 05:35:20 1969355124
>>1968145
>entity
Это ведь значит сущность, структура клиента иногда.
Аноним 17/03/21 Срд 05:44:49 1969360125
Подскажите что-нибудь годное про ООП почитать
Аноним 17/03/21 Срд 11:08:49 1969519126
>>1968299
там дохуя курсов, на какой именно глаз положил?
могу расписать если это из тех курсов что я видел
Аноним 17/03/21 Срд 14:50:45 1969745127
>>1969519
>там дохуя курсов, на какой именно глаз положил?

Начал проходить Python for Everybody, пока нравится.

>могу расписать если это из тех курсов что я видел
Какие там еще годные есть?
Аноним 17/03/21 Срд 15:04:49 1969753128
Приветствую вас шипящии, начал смотреть лекции Тимофея хирьянова по питону, вроде весьма интересно , но как думаете стоит ли оно того или мне сразу пойти скачать курсы от отиса и налегать на них ?
Аноним 17/03/21 Срд 15:29:01 1969774129
tkinter
Аноним 17/03/21 Срд 15:53:52 1969788130
>>1969753
Что за мода выискивать какие-то ЛУЧШИЕ курсы? Смотри эти, потом посмотришь другие.
Аноним 17/03/21 Срд 17:02:27 1969910131
Двач, как можно рисовать скриптами? Какие есть варианты? Задать размер холста, линии там рисовать, квадраты, точки.
Аноним 17/03/21 Срд 18:08:05 1969956132
Сам, только начал изучать, в качестве среды решил использовать Atom подключенный к Git, всё правильно делаю?
Аноним 17/03/21 Срд 18:10:09 1969959133
>>1969127
>пока не случится сборка мусора
А что, питон останавливается для сборки, как жаба?
Аноним 17/03/21 Срд 18:32:49 1969976134
>>1969956
бери vscode лучше или тормозной spyder или pycharm
Аноним 17/03/21 Срд 18:34:05 1969977135
>>1969959
любой язык со сборкой мусора останавливается
Аноним 17/03/21 Срд 18:36:39 1969979136
>>1969753
Есть и лучше курсы по питону университетские, но всё зависит от твоего уровня программирования.

Хирьянов по основам программирования и алгоритмов, на питоне, но не про питон.

Если программировать более-менее можешь, более-менее можешь решать задачи уровня easy, то лучше смотреть на курсы именно про питон.
типа такого:
https://www.youtube.com/playlist?list=PLlb7e2G7aSpTTNp7HBYzCBByaE1h54ruW
Аноним 17/03/21 Срд 18:43:32 1969982137
>>1969979
Спасибо , запишу на будущее, думаю пока досмотрю лекции хирьянова , основы я не очень хорошо знаю хотя при этом простые задачи могу делать , просто набор функций по большей части одинаков но не все понимаю как именно работает хотя после стольких лет образования на электрика по цепям рза понимаешь что обычно сильно углубленные знания и не требуются в работе
Аноним 17/03/21 Срд 18:49:44 1969989138
>>1969977
Только вот в пистоне объекты вычищаются сразу по счетчику, там нет глобальной остановки как у жабы
Аноним 17/03/21 Срд 18:56:56 1969999139
>>1969745
там есть основы питона, погружение в питон (неоч), ООП, создание веб на питон, птион для анализа данных и т.п.
ты как я понял начал курс от буржуев?
Аноним 17/03/21 Срд 19:07:50 1970008140
>>1969999
>ты как я понял начал курс от буржуев?

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

>>1969999
>создание веб на питон, птион для анализа данных

Эти уже закинул "на потом", а вот основы питона что-то не могу найти.
Аноним 17/03/21 Срд 19:18:40 1970018141
Аноны, хочу поставить на рабочий копм Jupyter Notebook, чтобы ковыряться в данных несколько быстрее, но есть сомнения. Я не понимаю как работаю веб-приложения вообще, и как работает Jupyter Notebook тоже только в общих чертах и боюсь, что случайно скомпрометирую корп.инфраструктуру. Как случайно не открыть портал в открытые интернеты?
Аноним 17/03/21 Срд 19:35:08 1970034142
>>1970008
https://www.coursera.org/learn/python-osnovy-programmirovaniya
тут упор на программирование.
дается несколько роликов по возможностям и 30+ задачек.
и так каждую неделю.
рассчитано на начинающих так как когда дается задание то предполагается что ты будешь его решать именно теми средствами, про которые рассказали в видео, без всяких читов типа библиотек и методов.
Математики там прилично, задачи в основном на математику
Аноним 17/03/21 Срд 19:36:07 1970035143
>>1970018
джупитер ноутбук работает в браузере вроде. по крайней мере я работал с ним в браузере прямо на одном из курсов
Аноним 17/03/21 Срд 20:30:14 1970079144
Аноним 17/03/21 Срд 20:31:20 1970083145
>>1969341
у питухона свои OCR есть и возможно лучше. тем более можешь сразу парсить с экрана
Аноним 17/03/21 Срд 20:32:21 1970085146
Аноним 17/03/21 Срд 22:44:15 1970162147
>>1970018
Чтобы открыть портал надо жопу порвать, пожтому не бойся, просто веб интерфейс в браузере и все
Аноним 18/03/21 Чтв 00:00:08 1970215148
>>1967018 (OP)
>Книжки, новое собрание
Eric Matthes - Python Crash Course (2016)pdf - есть более свежая версия 2020 года, можно найти в вк по документам.
Аноним 18/03/21 Чтв 00:42:16 1970243149
>>1970018
Он по умолчанию на локалхосте открывается, ничо не скомпрометируешь, с трудом представляю себе корп-структуру где вася мог бы порт в интернет выставить, тем более случайно
Аноним 18/03/21 Чтв 08:10:11 1970363150
>>1969355
Ну и что значит сущность? Что угодно может быть сущностью.

>>1969085
Ну я заебашил траефик себе в кубер чтобы можно было нормально proxyless services поднимать, стало хорошо. У траефика кастрация в другом месте правда и он не для всего, статику не умеет раздавать например. В итоге нгинкс внутри подов на локалхосты ходит, а траефик как ингресс. Видимо настало время дорасти до haproxy.
Аноним 18/03/21 Чтв 08:12:46 1970365151
Аноним 18/03/21 Чтв 08:15:03 1970366152
>>1969956
Достаточно хорошо. Но атом уже пару лет как не развивается, хотя и вполне работает. Вся разработка ушла в vscode. Гит я бы всё-таки сначала из консольки поучился с гитбуком, гуи не сильно упрощают работу с ним.
Аноним 18/03/21 Чтв 08:22:23 1970368153
1.png 571Кб, 1918x856
1918x856
Подскажите, че там у него происходит в классе RegisterPage? Я почитал про то, что делает супер, типа вызывает метод родительского класса. Но что он накодил все равно недопер. Не понимаю, что делают передаваемые в этот метод аргументы. Ну и в общем этот класс, если честно.
Аноним 18/03/21 Чтв 08:34:19 1970375154
>>1970368
Ну очевидно он туда автологин вставил. Можешь снести нафиг весь этот метод, у тебя будет регистрация без автологина. super уже давно можно без всякой хуйни писать return super().form_valid(form)
Аноним 18/03/21 Чтв 08:49:31 1970382155
>>1970375
А, ну то есть то, что он написал это то же самое, что просто super()? Типа сразу логинит после регистрации, а если юзер не создался, то там эта функция оригинальная сама что-то пизданет.
Аноним 18/03/21 Чтв 09:08:57 1970390156
>>1970382
Там нет если. Оригинальная функция отработает в любом случае. Но если юзер создался, то дополнительно залогинит.
Аноним 18/03/21 Чтв 10:40:52 1970424157
Анончик, допустим, у меня в директории лежат пакеты одного приложения для разных платформ, pip может выбрать из этой директории подходящий и установить его? С pypi же выбирает нужный. Не могу найти как это сделать.
Аноним 18/03/21 Чтв 11:11:50 1970434158
https://www.youtube.com/watch?v=dOO3GmX6ukU

Ппц вместо того чтоб статическую типизацию завезти какую-то хуйню выдумывают. Он будто кончает когда эту парашу юзает
Аноним 18/03/21 Чтв 11:14:54 1970436159
>>1970434
Блоггер тоже хочет кушать, че ты.
Аноним 18/03/21 Чтв 11:43:33 1970453160
>>1970424
pip не умеет выбирать пакеты в директориях, но ты можешь прямо указать какой файл-пакет установить.
Аноним 18/03/21 Чтв 11:44:51 1970455161
Бляяя, а можно как то в атрибутах класса сохранить ссылку на внешний словарь? Что бы менять значения внешнего словаря, а не внутреннего.
Типа я передаю в конструктор класса словарь, и класс будет менять значения этого внешнего словаря, а не какого то своего локального.
Аноним 18/03/21 Чтв 11:52:21 1970466162
>>1970434
Во как, в статически типизированных языках значит валидацией входных данных принципиально не занимаются.
Аноним 18/03/21 Чтв 11:54:14 1970469163
>>1970455
Какую проблему ты решаешь? Звучит как ехал костыль через костыль чтобы сложить 2 + 2.
Аноним 18/03/21 Чтв 11:59:25 1970475164
>>1970469
Ну есть пайплайн. Там идёт векторизация через tf-idf. Хочу после векторизации сохранить размерность полученной матрицы, для этого пишу кастомный трансформер, куда хочу передать внешний словарь, что бы сохранить в него размер матрицы.
Аноним 18/03/21 Чтв 12:06:24 1970479165
>>1970455
>а можно как то в атрибутах класса сохранить ссылку на внешний словарь?

Можно

dickt = {'ti':'huy'}

class Kostilik:
def __init__(self):
self.dickt = dickt

Как видишь reference на тот же объект, новый не создается. можешь даже проверить id объектов, если не веришь. Нахуя только тебе словарь, когда можно хранить в виде объекта

class MatrixSize:
x=0
y=0

Аноним 18/03/21 Чтв 12:09:35 1970483166
>>1970475
Насколько ты контролируешь пайплайн? В этом пайплайне нет какого-то хранилища артефактов, пусть даже в виде словаря? Тупая труба, вышло из первого, вошло во второе? Даже если так, почему по этой трубе не может идти словарь со всеми матрицами и размерностями?
Аноним 18/03/21 Чтв 13:07:32 1970530167
>>1970483
Это просто пайплайн из ск лёрна
>>1970479
А я чот так сделал и изменения во внешнем словаре не появились
Аноним 18/03/21 Чтв 13:09:42 1970531168
>>1970530
Хотя нет, стопе, я передавал словарь в конструкторе.
Можно сделать без такой зависимости, как у тебя?
Аноним 18/03/21 Чтв 13:54:16 1970571169
Есть набор корутин, которые надо выполнить, некоторые нужно выполнять в определенном порядке, так как там берутся необходимые данные для работы следующей корутины. На некоторых при ошибке нужно валить весь набор исполняющихся корутин. Есть ли какая-нибудь либа, которая позволяет декларативно описать эти зависимости? Заебало императивно это дрисню описывать.
Аноним 18/03/21 Чтв 14:17:59 1970586170
>>1970531
Какой зависимости дурень? Создай объект хранилище до инициализации объекта из конструктора и все. Иди учи CS, хуйню какую-то хочешь, пайплайны у него блять
Аноним 18/03/21 Чтв 14:18:34 1970587171
>>1970571
Есть, asyncio в официальной документации все описано
Аноним 18/03/21 Чтв 14:19:49 1970590172
Аноним 18/03/21 Чтв 14:39:24 1970598173
>>1970571
Ты лучше пример приведи, какой код есть, и примерно как ты хотел бы.
Вот то, что ты описываешь, выглядит так
try:
____data1 = await foo1(data0)
____data2 = await foo2(data1)
____data3 = await foo3(data2)
____data4 = await foo4(data3)
except:
____something

Тебе это к чему преобразовать надо?
делать вложенно
await foo4(await foo3(await foo2(await foo1(data0))))
пожалуй не очень эстетично, но так
А что хочешь ты?
Аноним 18/03/21 Чтв 14:45:08 1970602174
>>1969091
И на работе, и дома стоят 2 монитора. На одном пишешь код, на втором проверяешь его работу. Если, конечно, ты не консольную утилиту делаешь какую-то. А так второй монитор может пригодиться разве что мультики смотреть или музыку переключать, например
Аноним 18/03/21 Чтв 14:45:17 1970603175
>>1970598
Примерно так, только некотрые корутины независимы от выполнения других.

Примерно так хочу
Аноним 18/03/21 Чтв 14:51:36 1970606176
image.png 10Кб, 517x193
517x193
Аноним 18/03/21 Чтв 15:07:34 1970620177
Аноним 18/03/21 Чтв 15:11:42 1970624178
>>1970620
Я спрашивал есть ли готовые менеджеры для такого, так педалить свое придется
Аноним 18/03/21 Чтв 15:22:14 1970631179
>>1970606

class CustomTask(Task):
def __init__(depends=[], coro=coro, results):
self.name = ''
async def execute(self, results_pool):
cur_tasks = asyncio.Tasks()
args =[]
for t in tasks:
if t.name in depends and t.done:
args.append(next((r[1] for r in results_pool if r[0]==t.name)
output = await coro(*args)
results_pool.append((self.name, output))


class TaskPool:
gathered_results=[] # ('task1', 'tobi_pizda')
tasks = []
Аноним 18/03/21 Чтв 15:23:17 1970632180
Аноним 18/03/21 Чтв 15:28:35 1970636181
>>1970631
В коде явно объебался, но суть ты понял. Там кстати есть done callback, можешь через asyncio Lock, Event управлять.
Аноним 18/03/21 Чтв 15:30:28 1970639182
>>1970636
>>1970624
Ещё и мимо.
На done call back ты можешь например из цепочки сразу вызывать нужную тебе корутину и т.д. не хочешь не реализуй, мне похуй. Готового из коробки нихуя нет. Вместо того чтобы подумать, ты ноешь в разделе
Аноним 18/03/21 Чтв 15:34:51 1970642183
>>1970639
>ноешь в разделе
Шиз, я только спрашивал есть ли готовое решение, что бы не писать костыль, вместо этого ты на меня сагрилился "хули ты не гуглишь", хотя сам потом понял, что готового решения нет, а aiojobs решает только часть задач и нужно самому писать.
Аноним 18/03/21 Чтв 15:40:33 1970649184
>>1970632
>aiojobs
Не для таких задач

>>1970606
>>1970624
>Я спрашивал есть ли готовые менеджеры для такого, так педалить свое придется
Мне не понятно, как data flow устроен и как его формально прописать. То есть в каких-то случаях у тебя одна корутина возвращает данные, другая корутина использует данные от двух других корутин, и т.п.

Здесь может быть очень много извращённых логик. И их надо как-то формализовать. Вот как ты это запишешь?

Может быть такой подход для реализации логики.
допустим, есть функции
data1 = foo1
data2 = foo2,
data3 = foo3,
foo2 и foo3 выполняются независимо
data4 = foo4(data2, data3)
а вот foo4 нужны данные от foo2 и foo3
и дальше схожая логика

Вот чтобы параллельность реализовать, надо использовать механизм очередей.
foo4 принимает на вход очередь, queue4, в которой кортежи или словари вида
('data3', data3)
('data2', data2)
надо помнить, что порядок произвольным может быть

как только пришли оба элемента, код выполняется, результат помещается в другую очередь.

Это просто принцип построения. Не знаю решений для этого, но закодировать тут пару десятков строчек, наверное.

Можно сделать декоратор, который будет как раз конвертировать очередь в обычные параметры.

Под свою логику можно сделать удобное решение.
Аноним 18/03/21 Чтв 15:46:23 1970656185
>>1970642
>Шиз, я только спрашивал есть ли готовое решение
Мне кажется, что слишком специфичная задача, чтобы под неё было готовое решение. Слишком много вариантов логики. При этом руками сделать несложно совсем, не сложнее, чем потом декларировать на каком-то птичьем языке эти зависимости.
Аноним 18/03/21 Чтв 15:49:24 1970660186
>>1970649
>То есть в каких-то случаях у тебя одна корутина возвращает данные, другая корутина использует данные от двух других корутин, и т.п.
Я думал сделать какой-нибудь объект, который записывал все возвращаемые в виде словарика с ключем по имени таска и доступный для каждой исполняемой корутины.

Аноним 18/03/21 Чтв 15:59:48 1970669187
>>1970642
Шизик тут только ты, который читает документацию по диагонали и не видит готовые решения указанные в ней.
Callback ничего не возвращает, но триггерит запуск другой корутины, exception перехватывается. Если хочешь инкапсуляции логики, а не говнокод на 50 строк при увеличении количества тасков, то делай объекты и методы. Заебали такие "ыыы хачу в лоб, питон жи проста. А где готовое решени ыыыыааа а где либа? Питонгавно"
Аноним 18/03/21 Чтв 16:00:46 1970671188
>>1970669
А хотя нет, оставайтесь такими даунами, хоть на срыночке не пересечемся
Аноним 18/03/21 Чтв 16:05:07 1970676189
Что в питоне нужно выучить, чтобы от зубов отскакивало?
Аноним 18/03/21 Чтв 16:07:35 1970678190
>>1970669
Питонотреды, ожидание:
>Есть ли готовое решение для этой задачи?
>Нет, пиши сам, можешь это заюзать попробовать.
>Ок

Реальность:
>Есть ли готовое решение для этой задачи?
>КАКОЙ ЖИ ТЫ ТУПОЙ БЛЯДЬ, ВОТ ЖЕ ВСЕ ОПИСАНО, ЧТО ЗНАЧИТ ЛИБА НЕ ПОДХОДИТ ДЛЯ ЗАДАЧИ?!?!? НУ ТЫ И ДЕБИЛ, ВОТ ЖЕ КОД, ХОТЯ МЕНЯ НИКТО НЕ ПРОСИЛ ЕГО ПИСАТЬ, СМОТРИ КАКОЙ Я ОХУЕННЫЙ, ЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫЫ, ЧТО ЗНАЧИТ МЕНЯ НИКТО НЕ ПРОСИЛ!?!?!?!! МНЕ ВООБЩЕ ПОХУЙ НА ВСЕ, БЫДЛЫ ТУПЫЕ
Аноним 18/03/21 Чтв 16:12:36 1970684191
>>1970678
Чего ты подрываешься? Это же имиджборд. Сюда могут писать аноны разного уровня компетентности и адекватности, и никакого контроля, почти никакого, нет.

Но ты сам сформулировал свою задачу очень нечётко. Долго вникать в твою задачу и додумывать, что тебе нужно, желания не хватает у большинства. Вот тебе неадекваты и отвечают поэтому.
Аноним 18/03/21 Чтв 16:17:04 1970689192
>>1970678
Нормально ты порвался что тебе не дали готовое решение.
Аноним 18/03/21 Чтв 17:15:29 1970719193
>>1970678
Ебать неосилятор закукарекал.
Аноним 18/03/21 Чтв 18:31:22 1970795194
>>1970678
>Неадекваты
>Не объяснили на пальцах, вот же суки
>Я жи проста вкатывальщик с хотелками чтобы написали за меня
>Пачиму меня не берут, у меня опыт 1 год в питонотредах
Нахуй иди, серьезно. Ладно бы реально на баг какой нерешаемых нарвался или спросил по поводу направления поиска решения проблемы, но ты просто выблевал хотелку без кода и сел ждать когда тебе выдадут решение.
Если сказали в документации читать читай документацию, значит ты что-то упустил. Но вы же рветесь на ровном месте и вместо того чтобы загуглить паттерны на коллбеках ведёте себя как ебучие заказчики. Ты платишь? Нет.
Аноним 18/03/21 Чтв 18:38:17 1970802195
>>1970795
>сел ждать когда тебе выдадут решение
Я просил за меня код писать или что?
Аноним 18/03/21 Чтв 18:54:59 1970808196
>>1970795
>Если сказали в документации читать читай документацию, значит ты что-то упустил.
Сказать "читай доки" может любой ламер, желающий возвыситься. Даже если в доках ничего нет. Обычная история. Польза нулевая от таких.

А для такой задачи в доках ничего нет, как раз такой случай.

Можно обсудить идеи, как вот такую задачу решать.
Аноним 18/03/21 Чтв 19:00:20 1970813197
>>1970808
Ещё один.
Вот, блять пальцем покажу куда смотреть. Нет там ничего, пиздец просто...

done()
Return True if the Task is done.

A Task is done when the wrapped coroutine either returned a value, raised an exception, or the Task was cancelled.

result()
Return the result of the Task.

If the Task is done, the result of the wrapped coroutine is returned (or if the coroutine raised an exception, that exception is re-raised.)

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task’s result isn’t yet available, this method raises a InvalidStateError exception.

exception()
Return the exception of the Task.

If the wrapped coroutine raised an exception that exception is returned. If the wrapped coroutine returned normally this method returns None.

If the Task has been cancelled, this method raises a CancelledError exception.

If the Task isn’t done yet, this method raises an InvalidStateError exception.

add_done_callback(callback, *, context=None)
Add a callback to be run when the Task is done.

This method should only be used in low-level callback-based code.

See the documentation of Future.add_done_callback() for more details
Аноним 18/03/21 Чтв 19:05:36 1970817198
Тут все что нужно этому шизику вплоть до простого метода "что сделать если завершилась корутина и есть хоть какой-то результат".
Аноним 18/03/21 Чтв 19:45:46 1970834199
>>1970813
Долбоеб, я спрашивал готовое решение для данной задачи, если бы мне нужно было написать, я бы это сделал. Это как на просьбу посоветовать тулзу для парсинга сайтов предлагать urllib с html.parser вместо реквестов с бьютифол супом.
Аноним 18/03/21 Чтв 19:53:48 1970836200
>>1970834
Да сучий ты ж потрох. У тебя уже реализовано в самой библиотеке, тебе не надо low level design создавать, просто блять используй методы.
И это будущие чьи-то коллеги?
>Не хочу писать код, хочу пыщ пыщ и в продакшн и 300к в наносекунду
Аноним 18/03/21 Чтв 20:02:35 1970839201
image.png 140Кб, 481x280
481x280
>>1970836
Я если что уже 2 года работаю

>Да сучий ты ж потрох. У тебя уже реализовано в самой библиотеке, тебе не надо low level design создавать, просто блять используй методы.
Что реализовано? Тебе написали, что готового решения нет и нужно собираться все это, причем есть вещи над которыми нужно подумать, куда собирать результаты функций, что бы они были отовсюду доступны, как грамотно организовать шатдаун всего пула и т.д. Но нет, ты брюзжишь слюной и орешь ВОТ ТЕБЕ ТРИ ФУНКЦИИ, ЭТО ВСЕ ЧТО НУЖНО, а тут речь про грамотную организацию.
Аноним 18/03/21 Чтв 20:05:55 1970841202
>>1970813
Дебил, и кому нужен твой add_done_callback? Ты вообще думать умеешь?

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

С таким же успехом можно было бы и await coro() сделать.

Аноним 18/03/21 Чтв 20:12:01 1970849203
>>1970839
>Нужно подумать
Очень полезный навык, ну может ещё через 2 года появится и напишешь в софт скиллс "сначала думаю, потом спрашиваю хуйню". Куда собирать? У тебя кортежей нет? Не реализован хэшмэп из коробки?
Graceful ahutdown в 5 строчек делается, но ты опять будешь ныть "не из коробки".
Советовать BS4 не буду если там надо найти тэг, который будет на второй строчке, потому что lxml умеет делать это инкрементно, а так ты весь объект тащишь.
Аноним 18/03/21 Чтв 20:14:07 1970853204
>>1970841
gather у тебя Гвидо украл? Опять же это написано в документации к asyncio.
Аноним 18/03/21 Чтв 20:20:59 1970864205
Питонач помоги. Короче есть у меня метод литерали одна строка — ретурн, убирающий юникодовские спецсимволы типа \u3000 \u2028:
return line.replace(u'\u3000', u' ') отрабатывает нормально
return line.replace(u'{}'.format(charcode), u' ') все идет по пизде

Я думал, что может дело в очередности типа как с++ и ++с или я просто неправильно написал, но print(line.replace(u'{}'.format(charcode), u' ')) в консоли отрабатывает как надо.
Аноним 18/03/21 Чтв 20:21:17 1970865206
>>1970853
Ты достал, вот совсем достал. Ты какой-то бот, который по ключевым словам выдаёт какой-то бесполезный ответ. Только с агрессий. Тебе подлечиться надо, а не бросаться на людей здесь.

Потому что ты не в состоянии подумать над задачей, хоть другой анон её не сформулировал как надо.

То, что анон просит, штатными средствами не решается, здесь решения на базе каталов, паттернов pub-sub нужны. pub-sub ты такими способами не сделаешь. Это в общем случае. Хотя ХЗ, что анону надо, он не сказал, это я за него додумываю.
Аноним 18/03/21 Чтв 21:42:47 1970936207
>>1970865
Давай сокеты и брокер ещё подтянем, когда есть примитивный синхронизатор и Queue. Сразу ебашим Redis или MQTT, да.
Ещё раз говорю, есть Event, есть Lock. В чем проблема создать ивенты для зависимых Task и на их основе создать логику? И чего там нет на верхнем уровне? Low level это select/epoll. Тут же и методы и все дано, нет хочу усложнить. Любители Django знакомятся с asyncio и охуеваю что готовенького ничего нет.
Ладно, add done callback не то, https://overcoder.net/q/407597/python-asyncio-adddonecallback-%D1%81-%D0%B0%D1%81%D0%B8%D0%BD%D1%85%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%BC-%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC
У человека так же задача, после одной корутины запустить следующую по выполнению первой.
Решение в Гугле
Аноним 18/03/21 Чтв 22:08:05 1970971208
>>1970936
>У человека так же задача, после одной корутины запустить следующую по выполнению первой.
Это вообще не задача, для этого и есть оператор await
result_1 = await coro_1()
await coro_2(result_1)
и никаких коллбэков, конечно, не нужно. async/await как раз нужны для того, чтобы избавиться от колбэков и чтобы не было callback hell, как это бывает в JS.

Вот проблемы начинаются, когда логика нетривиальная, например от result_1 зависит несколько функций. А ещё хуже, если они зависят ещё от result_2, которая считается другой корутиной, независимо - вот здесь уже никакой gather не поможет.

На этом этапе и начинается переизобретение MQ с разными стратегиями. Надо смотреть на конкретные задачи и конкретные проблемы, чтобы предлагать решение.
Аноним 18/03/21 Чтв 22:22:36 1970984209
>>1970971
Ты уже выдумываешь другой кейс, когда loop.run_forever(), без выхода. Этот же шизик указал, что он хочет все в пуле делать, но со schedule.
Ты же начинаешь искусственно усложнять условия первоначальной задачи.
Что значит избавиться, когда он тут нужен в одном месте для запуска цепочки других тасков? При чем тут JS, если речь про Python? Ах да, весна пришла.
Pub/sub нужны тогда и только тогда, когда нет иного механизма передачи данных:
1. Микросервисы
2. Исполнение кода на удаленном сервисе
3. Все разбито на процессы, так как CPU bound так много, что нет смысла все делать асинхронкой и нет выхода из цикла кроме как с ошибкой.
Аноним 18/03/21 Чтв 22:27:30 1970990210
>>1970984
>Pub/sub нужны тогда и только тогда, когда нет иного механизма передачи данных:
pub/sub это архитектура для взаимодействия между задачами в приложениях с конкурентностью. Как и очереди, только это более продвинутые варианты очередей.

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

Такая же история и с очередями.
Аноним 18/03/21 Чтв 22:36:15 1970998211
>>1970971
На пальцах объясняю. Тебе надо исполнить все корутины и исключить блокировку.
Coro1, coro2, coro3 производят какие-то результаты
сoro4 зависит от результата coro2, coro5 зависит от результата coro3.Если я правильно понял шизоида, то надо выполнить одновременно первые 3 корутины и не ожидать конца из выполнения. Прописав кастомный callback ,если корутина 2 выполнится раньше чем корутина 3, то должен быть передан результат выполнения, передана как аргумент в coro4 и запущено исполнение.
Тут стратегия принятия решения: если первая зависимая корутина возвращает exception, тогда весь процесс прекращается. Шлется [t.cancel() for t in asyncio.Task.all_tasks] и выход sys.exit(1) например.
Все просто. Для этого надо напрячь мозг и описать стратегию, инкапсулировать логику в объектах, а не писать спагетти код
Аноним 18/03/21 Чтв 23:39:30 1971042212
>>1970998
Всё-таки ты немного неадекват.

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

Во-первых, это спагетти конкретное. Это довольно большой лишний код. Ты туда передаёшь синхронную функцию, хотя по логике тебе скорее понадобится асинхронное поведение, тебе корутина нужна.

>тогда весь процесс прекращается. Шлется [t.cancel() for t in asyncio.Task.all_tasks]
Весь процесс? А вот если не весь процесс, а только ветвь исполнения? Потому что реальная проблема, когда у тебя какая-то задача не может достучаться до какого-то сервера, но это штатная ситуация и не повод прерывать исполнение целиком.

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

Иначе бы не писал такие вещи.

По делу, основной паттерн в современном конкурентном программировании это pub/sub. Частный случай очереди.

У тебя одна задача что-то посчитала, опубликовала результат в очереди. Те, кому этот результат нужен, слушают это очередь, и как только туда что-то поступило, начинают свою работу.

Вот так и достигается декларативность. Работает это и в рамках одного процесса (asyncio/threading), и на системах с несколькими машинами и большим количеством микросервисов.
Аноним 18/03/21 Чтв 23:44:48 1971045213
image.png 8Кб, 395x129
395x129
Вот так норм писать или для этого есть специальная штука?
Аноним 18/03/21 Чтв 23:45:41 1971046214
Аноним 19/03/21 Птн 00:03:47 1971056215
Аноним 19/03/21 Птн 00:56:24 1971085216
>>1971042
Писал, пишу и буду писать.
Ты долбишься в глаза, где я говорил о add done callback? Я предложил отказаться нахер от этого варианта и написать свой. Это просто блять название, сечешь?
Так я хуй знает надо ему обработать это exception и продолжить выполнение или нет. Речь шла о прерывании, ты опять додумываешь кейсы за него.
Какая блять синхронная функция если
def callback(task, result):
if not task.exception():
loop.run_until_complete(coro3(result))
Все! Сделай класс-обертку и применяй к любой корутине, добавь туда логику и готово решение. Используй где угодно.
Нет ты тащишь паттерны, пытаешься натянуть сову на глобус. Один раз создать класс обёртку, добавить туда exception handler для обработки исключений каких надо и все. Или ты снова мне про паттерн pub/sub будешь затирать и снова кейсы выдумывать? Смирись, все делается меньше чем за 30 строк кода.

Аноним 19/03/21 Птн 01:06:26 1971088217
16035766884110.png 56Кб, 289x267
289x267
>>1971085
>Запуск run_until_complete в работующем лупе
Аноним 19/03/21 Птн 01:07:23 1971089218
>>1971042
И все посты не про самоутверждение. Что тот анон, что ты сами не понимаете что должно в итоге получиться.
Ну куда мне до вас сеньоров-лапшичников двухлетних
Аноним 19/03/21 Птн 01:11:50 1971090219
>>1971088
Все я низменный червь проебывающийся в синтаксисе, уел.
Извините сеньор помидор, больше сюда не зайду.
Аноним 19/03/21 Птн 01:13:54 1971092220
>>1971090
Может быть ты заметил, что это ломает твою логику с добавлением в калбек, так как ты не можешь засунуть туда асинхронную таску
Аноним 19/03/21 Птн 06:08:27 1971129221
Всем привет! Поставили задачу запилить тест Фреймворк для тестировщиков. Тесты 90% api. Я с питоном особо не работал, но почитал что request библиотеки и pytest хватит почти для всего.
Вопрос. С чего вообще начать фреймворк? Я полагаю нужно сделать ООР с методами логина и прочей ботвой отдельно от самих тестов?
Где-то можно шаблон какой-то найти? Вот прям с самого старта чтобы сделать логин, какую-то базовую проверку токена, ну и тд. Спасибо.
Аноним 19/03/21 Птн 07:09:29 1971134222
>>1971129
Запили сначала с десяток тестов как они должны быть. Затем то что повторяется выноси в фреймворк.
Аноним 19/03/21 Птн 12:49:34 1971276223
>>1971045
Лол, это ты содажешь функции с названими хуй, пизда? ну ты рофлишь
Аноним 19/03/21 Птн 12:52:38 1971282224
>>1967018 (OP)
Правда ли что Джанго - тупиковый путь в плане работы и после него маловероятно что залезешь во что-то иное?

сейчас работаю на стеке фласк / aiohttp есть ли смысл перекатываться в джанго?
Аноним 19/03/21 Птн 12:56:02 1971289225
>>1971282
Зависит от того, что ты делаешь. На прошлой работе джанга была нужна только как гейтвей с орм и шаблонизатором для вызова микросервисов.
Аноним 19/03/21 Птн 13:25:57 1971318226
>>1971276
Альфач пишет те имена функций, которые хочет
Аноним 19/03/21 Птн 13:50:45 1971340227
Аноним 19/03/21 Птн 13:58:55 1971346228
Аноны, можно ли через пайчарм редактирвать код на удаленном сервере, то что запускать через деплоемент можно я уже в курсе, хотел бы именно полностью удаленно запустить папку с проектом и там спокойно копаться и редактировать, это вообще возможно?
Аноним 19/03/21 Птн 14:10:59 1971364229
>>1971346
А нахуя? Ты гитом пользоваться не умеешь?

Проще тогда без пайчармов на сервере редактировать файлы, если уж так прет
Аноним 19/03/21 Птн 14:16:13 1971373230
>>1971318
А как же мантра питона что названия функций должны быть понятны?
Аноним 19/03/21 Птн 14:18:20 1971379231
>>1971373
Это вообще то для любого языка актуально. Название функции должно давать предстваление о том, что эта функция делает

Т.е. функция def fuck_ops_mom() не должна тебе отсасывать
Аноним 19/03/21 Птн 14:22:10 1971383232
4.png 56Кб, 946x712
946x712
>>1967018 (OP)
Недавно писал сюда, и мне помогли, потому попробую ещё раз.

С горем пополам построил я по 3 спискам координат график, который делает контурный рисунок поверхности методом триангуляции. И всё бы хорошо - только вот всратый он, как моя жизнь. Поэтому надо мне область под кривой закрасить - а она не хочет. Собственно, пример на картинке - plot.fill даёт неудовлетворительный результат, как я с ним не мучился, а between я не знаю, как тут применить.
Аноним 19/03/21 Птн 14:28:46 1971394233
>>1971379
Кстати этому пацанчику с экстремальными названиями функциями нужно запилить игру на пайгейме где функция хуй реально будет отрисовывать хуй, а функция пизда - пизду.
ну и полирнуть функцией фак для запуска процесса.
Аноним 19/03/21 Птн 14:34:02 1971400234
>>1971346
Tools / Deployment, гугли как настроить
Потом в Python Интерпретаторы вроде надо добавить SSH Interpreter
Аноним 19/03/21 Птн 14:43:03 1971411235
>>1971340
Скорее всего виновата кука gog_lc
>>1971346
Если уж vscode так умеет, то pycharm точно должен уметь.

Аноним 19/03/21 Птн 15:51:16 1971472236
>>1971411
Спасибо, указал в параметрах сессии cookies= {'gog_lc': 'RU_RUB_en_US'}, помогло
Аноним 19/03/21 Птн 16:21:33 1971517237
Есть пгшная функция, которая возвращает set of refcursors

Вопрос: как через sqlalchemy вытянуть таблицы из этого набора курсоров?
Аноним 19/03/21 Птн 21:11:30 1971736238
Поясните, питонисту нужен ли линукс? Ставил его пару раз и у меня просто физическое отвращение к нему, из-за того, что всё не как на винде.
Аноним 19/03/21 Птн 21:44:46 1971749239
>>1971736
>Поясните, питонисту нужен ли линукс?
Уметь с ним работать нужно любому разработчику. Использовать в качестве основной операционной системы - нет.
Аноним 19/03/21 Птн 21:51:31 1971750240
Прмерно за сколько времени можно стать джуном по питону? Уделять готов 2-3 часа в день. Имеются базовые знания программирования. И можете посоветовать гайл или что то подобное? Что вообще должен знать джун?
Аноним 19/03/21 Птн 21:51:36 1971751241
>>1971749
А что подразумевается под "имением работать"?
Часто вижу это требования в вакансиях.
Если я через терминал могу спуллить код с гитхаба и подредактировать его в nano - я уже умею пользоваться линуксом или ещё нет?
Аноним 19/03/21 Птн 21:57:51 1971758242
>>1971751
>Если я через терминал могу спуллить код с гитхаба и подредактировать его в nano - я уже умею пользоваться линуксом или ещё нет?
В принципе да, если не пугаешься консоли и способен быстро учиться. Работают с линуксом в основном девопсы, а разрабам хватит основ.
Аноним 19/03/21 Птн 22:39:12 1971772243
>>1971751
Это называется на уровне пользователя, то есть ты можешь более-менее спокойно пользоваться базовыми возможностями командной строки, ходить по каталогам, копировать-удалять, архивировать-разархивировать, фильтровать вывод, редактировать файлы (не обязательно vim), там команды find, grep, top, ps, kill. Запуск команд из командной строки. Плюс установка софта через apt, работа с ssh, ну и понимание каталогов /etc, /var, /opt.

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

Админские навыки это уже другое.

Бывает ведь народ, который может работать исключительно в окнах винды (может даже довольно прилично, с хорошим пониманием на админском уровне), командная строка даже видны для них мрак, соответственно если они попадают в линуксовое окружение и необходимость работать через консоль, они просто рассыпаются.

Аноним 19/03/21 Птн 23:05:29 1971800244
>>1971318
>Альфач пишет те имена функций, которые хочет
Истинная правда.
Вот делает чувак модуль logging для стандартной библиотеки питона. Не портирует либо под питон, а именно чисто питонячья стандартная библиотека.

И срёт на весь PEP8, не удосуживаясь даже от camelCase к питонячьим стандартам перейти
https://docs.python.org/3/library/logging.html

И ничего. Стандартная библиотека.
Аноним 19/03/21 Птн 23:26:28 1971814245
>>1971772
Ну так-то командная строка шинды это та ещё хуйня - или убогий cmd из времен дос, или норкоманский павершелл. Можно получить отвращение к такому способу работы с системой.
Аноним 20/03/21 Суб 00:13:29 1971840246
>>1971800
У меня кстати подгорает, подскажите, в чем проблема сделать logging.info(*list), почему нужно блять передавать либо f string, либо str(str(a)+str(b)), либо формат, нет бы сделать как в принте, идеал же
Аноним 20/03/21 Суб 00:17:44 1971843247
Впервые задеплоил проект на сервер и даже с доменным именем, заинтересовало что за магия происходит, когда вводишь домен в браузере, мы бежим в днс, оттуда получаем айпи, а уже на nginxe он просто денаит все подключения, пока явно не пропишешь сервер нейм? Нгинкс ведь никак не сообщает днсу о том что у него в конфиге появилась эта строка. Кстати вопрос, я сегодня часа 1,5 ебался с gunicorn сокетом, в итоге забил и просто на локалхосте запустил, ебля с сокетом вообще нужна?
Аноним 20/03/21 Суб 00:34:25 1971851248
>>1971843
Когда ты вводишь домен в браузере, он посылает его в заголовке Host, чтобы можно было хостить дохуя доменов на одном сервере.
Аноним 20/03/21 Суб 01:00:40 1971872249
>>1971843
dns тебе по домену выдаёт ip

В заголовке http указан хост

В nginx ты прописываешь правила для хостов, там же ты можешь настроить хост по дефолту, он сможет обрабатывать левые домены.

Аноним 20/03/21 Суб 02:39:36 1971900250
>>1971851
Но по сути он тупо делает запрос к вебсерверу, точнее делает запрос на порт, а уже если ътот хост есть в роутерах нгинска, то запрос проходит, верно?
Аноним 20/03/21 Суб 02:50:05 1971902251
>>1971134
Это понятно. А сам фреймворк есть шаблон какой-то? Логин идёт через вебдрайаер пакет? Я просто в этом особо не шарю. Спасибо. Есть ли есть какая-то ссылка на репо или гайд было бы круто.
Аноним 20/03/21 Суб 03:11:26 1971906252
Как вкатиться в гуи?
Хочу простенькую галерею сделать, чтобы брать лист урлов на картинки из апи и показывать галерею этих картинок в окошке
Аноним 20/03/21 Суб 03:22:45 1971908253
>>1971900
Всё работает на tcp/ip. Трафик в интернете идёт по ip адресам, tcp соединения устанавливаются по ip адресам.

Твой компьютер устанавливает tcp соединение с сервером, с nginx. На этот момент nginx знает только твой ip адрес. Как соединение установлено, так идёт общение по http протоколу.

В заголовке http пакета, что высылается на сервер, есть поле
Host: www.some.host.net
и другие поля, потом пустая строка, и дальше какие-то данные, например POST данные.
nginx смотрит на это поле Host, и дальше смотрит свои конфиги, что делать с этим хостом.
Конфиги хранятся обычно в каталоге
/etc/nginx/site-avaible

там есть секции
server {
listen 80;
listen 443 ssl;
server_name my_server.com;
}
которые отвечают за настройки разных вебсерверов, которые обслуживает nginx. Вот там и прописывается, как обслуживать конкретный сервер.

В принципе ты можешь любой домен прописать, а у себя на локальной машине переопределить для него DNS. То есть твой nginx может обслуживать google.com, но тебе надо будет ещё сделать запись в файле hosts (есть и linux, и в windows), чтобы со своего компьютера ты по имени гугла попал на твой сервер, а не оригинальный гугловский. Правда только по http, по https не получится, потому что браузер уже электронные подписи проверяет.

Там же, в настройках одного из серверов, ты можешь прописать
listen 80 default_server;
listen [::]:80 default_server;

этот блок настроек будет отвечать за случай, когда ты заходешь напрямую по ip адресу, либо по доменному имени, которое в настройках забыл прописать.
Аноним 20/03/21 Суб 06:28:40 1971965254
Аноним 20/03/21 Суб 06:30:27 1971967255
>>1971840
Создаёшь экземпляр объекта
logger = logging.getLogger() переписываешь методы где подаёшь *args на вход. Вот и сделал. Есть же обертки logging которые и сразу окрашивают строки для StreamHandler или формат сразу в JSON.
Аноним 20/03/21 Суб 06:32:29 1971969256
Аноны, есть теоретический вопрос:
Есть веб-сайт, с base auth(на нжинксе), на сайт захожу под хттпс(соответственно по доменному имени). Первый вход норм, все работает, но затем, на 3-4 запрос к серверу(начинаю ходить по ссылкам на веб-сайте), начинается бесконечная загрузка в бровзере и в результате ошибка, что соединение разорвано. Если захожу на сайт по ИП, то все норм.
На сервере связка Nginx+certbot/flask. В какую сторону смотреть и как гуглить проблему?
Аноним 20/03/21 Суб 08:02:11 1972002257
>>1971969
Смотри network в консольке браузера, какой конкретно запрос ломается. Ещё логи сервака посмотри.
Аноним 20/03/21 Суб 09:02:43 1972033258
>>1967018 (OP)
>>1962060 (OP)
Сап аноны.
Много раз пытался вкатываться в python впрочем это мог бы быть любой другой язык и постоянно сталкиваюсь с одной и той же проблемой.

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

Аноним 20/03/21 Суб 09:38:26 1972053259
>>1972033
Ну сделай типовую хуйню посложнее, тетрис, например.
Аноним 20/03/21 Суб 10:10:38 1972071260
>>1972053
эээ..пук-среньк в этом и кроется основная проблема, я непонимаю где переход, вот от этих всех назначить переменную-кинуть экспешен-написать функцию в сделать что-нибудь полезное.
Аноним 20/03/21 Суб 10:10:48 1972072261
>>1972033
У меня мотивация поднялась, когда я веб фреймворки начал изучать. Помню как охуел, когда в браузер первый раз вывел {"status": "ok"}
Ух бля
Аноним 20/03/21 Суб 10:13:49 1972073262
>>1972071
Начни делать как получается, а там увидишь применения.
Аноним 20/03/21 Суб 10:45:42 1972096263
>>1972072
>>1972073
Возможно я что-то не то читаю. Сколько книг не открывал, в них алгоритмизация-констркции языка. Как перейти от этого к прикладным задачам решительно не понимаю. Вот я высрал условный скрипт в консоли, на этом мои полномочия всё.
Аноним 20/03/21 Суб 10:48:57 1972097264
vWAAAgP-E-A-960.jpg 81Кб, 640x640
640x640
>>1972096
> в них алгоритмизация-констркции языка
Если нужны дополнительные либы - читаешь документацию и пилишь.
Аноним 20/03/21 Суб 13:19:34 1972195265
>>1972033
У тебя экзистенциальный кризис или вкат негладко проходит? Возможно тебе просто надо уже перестать поглощать материал и ебошить практику. Только не калькуляторы, а что-нибудь посложнее. Веб-сервис, гуи приложение, сложное консольное приложение, спарсить что-нибудь, csv банковской выписки обработать. Правильно тетрис посоветовали, арканоид можешь ещё заебашить.

> причитал три книги
А, ну да, бросай читать, хватит уже, пора кодить.
Аноним 20/03/21 Суб 13:59:29 1972225266
изображение.png 289Кб, 500x283
500x283
>>1972195
Скорее первое.

>Веб-сервис, гуи приложение, сложное консольное приложение, спарсить что-нибудь, csv банковской выписки обработать.

Вот в этом то и беда, я не могу понять, как от моих манипуляций с коносолю, перейти к гуи\веб.
Аноним 20/03/21 Суб 14:24:47 1972238267
Аноним 20/03/21 Суб 14:28:12 1972242268
>>1971908
Ох, спасибо, я даже забыл о том что там соединения происходят, много чего уточнил. Вообще почему-то теории продвинутой в интернете не так много, одни объяснения для мимочелов
Аноним 20/03/21 Суб 14:31:21 1972245269
>>1971967
Так это вручную делать, еще и на каждом проекте, мое возмущение о том что в модуле эта очевидная возможность нереализована, я из-за этого раньше понять не мог почему json из ответа не логируется, оказалось нужно передавать строго строку и только одну
Аноним 20/03/21 Суб 14:38:46 1972247270
>>1972033
А я вот перешел на новый уровень как раз и только стал осознавать как часто приходится юзать базу, обычные работы со строками юзаю постоянно, преобразования типов, структуры данных, тоже думал юзлесс хуйня, а на практике все очень нужно, даже потоки оказались не бесполезными как я думал в питоне
Аноним 20/03/21 Суб 14:44:49 1972252271
>>1972096
Ты начни гуглить классику просто, типа как сделать тетрис на питоне, посмотри библиотеки, которые используются, я так полагаю проблема в том, что ты не понимаешь как пользователь может взаимодействовать с кодом, ответ: веб приложения, гуи, консоль, выбери то что хочешь, изучи условно как в консоле передавать флаги и аргументы и вот у тебя уже консольное приложение, ставь цель какую-то, типо спарсить информацию о 100500 тайтлах с какого-нибудь сайта, посмотри как это решается, почитай про асинхронность умловную и сделай парсер, а потом все эти знания на самом деле пригодяться на настоящей практике
Аноним 20/03/21 Суб 14:50:40 1972255272
>>1972225
> как перейти
Практика практика практика. У тебя сейчас ситуация как у многих айтишников, хорошо читают на английском, но говорить совсем не умеют. Вот чтобы научиться говорить, нужно начать говорить.

Насчёт полезности это сложный вопрос. Обычно тренируются на заведомо бессмысленных пет-проектах, которые сделать просто по приколу, потому что можешь. А вот дальше многие и за всю жизнь неспособны разродиться чем-то полезным собственной задумки, и просто тупо работают по найму/контрибутят в чей-то софт, так что это норм.
Аноним 20/03/21 Суб 14:56:51 1972260273
Скиньте максимально понятный гайд или конкретный пример по парсингу на питоне с комментариями
ПОЖАЛУЙСТА, УМОЛЯЮ, ХОСПАДЕ
Аноним 20/03/21 Суб 14:59:10 1972264274
Аноним 20/03/21 Суб 15:02:43 1972270275
image.png 611Кб, 800x484
800x484
Аноним 20/03/21 Суб 15:04:44 1972272276
image.png 628Кб, 640x480
640x480
>>1972270
Денег не вижу.
Отказано.
Аноним 20/03/21 Суб 15:12:11 1972285277
Аноним 20/03/21 Суб 15:23:23 1972287278
>>1972260
Умоляю, пидорасы, позвольте вкатиться
Аноним 20/03/21 Суб 15:26:18 1972289279
А.Б.Усманов.jpg 69Кб, 700x450
700x450
Аноним 20/03/21 Суб 16:44:10 1972366280
image.png 320Кб, 1920x1080
1920x1080
Кто шарит, написал бота в телеграмме с клавиатурой, сначала он отвечал на /info, выводил на экран клавиатуру в сообщении, после нажатия на ДА появлялись кнопки под полем ввода, но они уже не выводили никакой инфы, хотя должны. А при второй попытке написать боту, он вообще перестал что-либо отвечать. Вопрос: в чем ошибка-то вообще
Аноним 20/03/21 Суб 16:50:20 1972373281
Аноним 20/03/21 Суб 16:57:53 1972380282
image.png 1276Кб, 1920x1080
1920x1080
>>1972366
дополнение. После команды /get_info стал выводить кнопки, но ответ на них не даёт. Как фиксить?
Аноним 20/03/21 Суб 17:01:31 1972382283
>>1972380
>Как фиксить?
Просто и без задней мысли.
Аноним 20/03/21 Суб 17:04:27 1972383284
Аноним 20/03/21 Суб 18:40:47 1972450285
Народ... Django.. Есть модель вида - (город, адрес, номер дома, слаг). Хотелось бы получать слаг вида - /город/адрес-номер,
слагифай формирует все - город-адрес-номер. Хотелось что бы при обращение lockalhost:8000/город фильтровать адреса по городам. Подскажите как лучше и красивей это сделать, через функцию или класс контролер
Аноним 20/03/21 Суб 19:23:26 1972473286
Аноним 20/03/21 Суб 19:58:53 1972501287
>>1972225
Попгули квикстарт для aiohttp/fastapi
Аноним 20/03/21 Суб 21:13:43 1972570288
>>1967380
Некропост, но мне доставляет так:
if not {\search-items} - {\container}:
____ # все элементы из search_items найдены в container
Аноним 20/03/21 Суб 21:14:35 1972572289
>>1972570
Сраная макаба
Вместо бэкслэша звездочка офк
Аноним 20/03/21 Суб 21:19:37 1972578290
>>1972570
Можешь пожалуйста на примере расписать. Твой синтакс не читается вообще.
Аноним 20/03/21 Суб 21:24:54 1972582291
>>1972570
Если большие структуры, то хуевато.
Алсо, словарные keys и values уже умеют в сетовые операции.
Аноним 20/03/21 Суб 21:39:33 1972590292
Как в говносинке архивом-то скачать? Нельзя было на яндекс тот же залить новый набор книг?
Аноним 20/03/21 Суб 22:09:12 1972614293
Аноним 20/03/21 Суб 22:11:19 1972616294
Аноним 20/03/21 Суб 22:24:32 1972635295
>>1972614
Если б я умел такое, книги б не качал...
Аноним 20/03/21 Суб 22:25:49 1972636296
Периодически листаю разные проекты на гитхабе для самообразования. Иногда куски кода нравятся как написаны. Прямо. хочется сохранить. Пока ничего не придумал, кроме как пихать в блокнот с подписью, что это и откуда взято. Но это никак не структурировано.

Никто не сталкивался? Кто как хранит, если хранит?
Аноним 20/03/21 Суб 22:47:56 1972657297
>>1972473
>Закатывайтесь в чатик
>vk
Нет, товарищ майор, нет.
Аноним 20/03/21 Суб 23:39:58 1972678298
>>1972366

почему не пизданул сразу в ООП?
было бы проще потом пидорасить других ботов
Аноним 20/03/21 Суб 23:41:19 1972680299
>>1972636
делаю скришншоты
ведь я я ебанутый
Аноним 20/03/21 Суб 23:44:52 1972687300
>>1972680
Ну так вообще даже базово искать невозможно.
Аноним 21/03/21 Вск 00:09:44 1972708301
Пытаюсь освоить джангу, охуеваю от того, что даже ради самых базовых вещей приходится лезть в командную строку и IDE. И это 2021 год? Говно какое-то.
Аноним 21/03/21 Вск 01:09:52 1972762302
>>1972636
у меня отдельный репозиторий для такого.
А вообще вроде есть github gist, но не знаю как это работает.
Аноним 21/03/21 Вск 01:26:31 1972779303
>>1972678
не разбираюсь в этом. первый мой микро-проект. если есть, что почитать по ооп, буду признателен
Аноним 21/03/21 Вск 05:08:00 1972820304
Аноним 21/03/21 Вск 05:52:15 1972839305
problem.png 49Кб, 1466x324
1466x324
Кто-нибудь понимает, почему abs() здесь возвращает ноль?
Аноним 21/03/21 Вск 05:56:42 1972840306
>>1972839
Вернее было бы так спросить: почему abs() здесь при вызове скрипта из консоли возвращает ноль, а при тестировании того же куска кода в интерпретаторе - нужное значение? ЯННП.
Аноним 21/03/21 Вск 06:07:44 1972847307
>>1972839
>>1972840
А, всё, сори - sorted() не хватает. Долбился в глаза минут сорок.
Аноним 21/03/21 Вск 09:31:17 1972880308
>>1972708
Каких базовых, клоун?
Аноним 21/03/21 Вск 10:33:08 1972899309
>>1972708
>Надо код писать
>Надо команды выполнять
Перекатывался на Node, там голова болит от зависимостей и размера node_modules, бросай этот сраный Питон.
Аноним 21/03/21 Вск 10:49:53 1972907310
Как щас дела с веб разработкой на пистоне под винду? Докер в каком состоянии? Есть ли аналоги pyenv?
Как вкатился на работу, пересел на убунту. 3 месяца уже сижу и все никак не могу привыкнуть, хочу вернутся обратно.
Аноним 21/03/21 Вск 11:05:16 1972910311
>>1972779
а, я думал может ты на постоянной основе мутишь. что почитать это в инете есть инфа, советовать не могу.
прост с классами удобнее повторно использовать код
Аноним 21/03/21 Вск 11:55:42 1972941312
Что лучше использовать .reverse или [::-1]?
Аноним 21/03/21 Вск 12:12:29 1972955313
>>1972941
Это вообще разная хуйня. reverse модифицирует список, -1 копирует итераблю в обратном порядке. Есть ещё reversed, который итератор в обратном порядке.
Последнее лучше всего, если тебе не нужна именно копия.
Аноним 21/03/21 Вск 14:26:57 1973090314
>>1972907
Докер нативный на hyper-v, но нужна Pro версия. pipenv точно работает, но poetry в разы лучше, обязательно наверни. Чем убунту не нравится тебе я хуй знает, а частенько деплою bare metal на ubuntu LTS и соответственно на ней и сижу. Чего не хватает на линуксе? Может подскажу аналоги.
Аноним 21/03/21 Вск 17:24:05 1973281315
8fc14ae7dc83.png 185Кб, 231x333
231x333
Анон объясни, что происходит. Личинка админа в моем лице, хочет учить питон для скриптов. Начал смотреть видосы на ютубе как чел пишет скрипты, так вот там чел задает пустую переменную
files = []
И добавляет метод, который предполагает туда сбор названий файлов которые находит цикл. Далее он хочет примернить к каждому элементу записанному в files другой метод через цикл и внезапно он пишет просто конструкцию вроде
for file in files:
При этом никакой переменной file до этого не создавалось. Мне непонятно как интерпретатор сам понимает, что file это каждый отдельный элемент добавленный в files, если ранее в коде это никак не обозначено. Я раньше немного php ковырял, когда открываю код на пыхе хотя-бы понятно примерно что происходит, а код на питоне выглядит как какая-то ебучая магия.
Аноним 21/03/21 Вск 17:39:41 1973292316
>>1973281
Потому что это конструкция языка, которая работает определенным образом. На каждом витке цикла к текущему элементу цепляется алиас.
Вообще, если что-то не понятно, то идеальный вариант это смотреть документацию по синтаксису, там обьясненен именно синтаксис и все его возможные элементы, а не что тебе хуй в книжке или видяшке пожелал изложить.
Например, для фор https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
Аноним 21/03/21 Вск 20:09:10 1973499317
сашко-фокин.jpg 38Кб, 604x410
604x410
>>1973292
Там все на английском. Да я знаю, что без английского в it никак, но тяжело сцука.
Аноним 21/03/21 Вск 20:51:36 1973529318
>>1973281
это не переменная это список, сначал он в список кладет, потом изменяет.
>При этом никакой переменной file до этого не создавалось.
это локальная переменная создается в скоупе итератора на каждом проходе, существует только внутри = текущему проходу итератора по объекту, я питон тоже не знаю.
Аноним 21/03/21 Вск 21:03:36 1973540319
>>1973529
>это локальная переменная создается в скоупе итератора на каждом проходе
Ну смотри, у тебя есть files, в который записываются строки. Потом эта переменная передается в конструкцию
for file in files
files имеет вид: hui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txthui.txt
В пыхе тебе нужно с помощью регулярного выражения задать по каким критериям ты будешь вытягивать строки. Здесь же получается, каждый hui.txt сам вытягивается как file.




Аноним 21/03/21 Вск 21:24:25 1973552320
>>1973540
это скорее особенности реализации конкретного языка под капотом.
Аноним 21/03/21 Вск 21:28:18 1973557321
>>1973540
Какой ужас!

files имеет вид ['hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt','hui.txt'] (и это не строка, а список)
Кстати, не матерись
Думаю, теперь тебе понятно, откуда в file будет hui.txt
Если бы files было как ты написал, то там по букве в file клалось.
Аноним 21/03/21 Вск 21:38:36 1973574322
Аноним 21/03/21 Вск 21:42:57 1973578323
>>1973557
>Если бы files было как ты написал, то там по букве в file клалось.
если по строке то надо писать реализацию как итерировать, в зависимости от того какое представление строк в языке.
Аноним 21/03/21 Вск 21:44:58 1973581324
>>1973574
вложенный список? серьезно?
Аноним 21/03/21 Вск 21:46:13 1973583325
>>1973581
Нет, отсутствие блочных скоупов и нихуя там не создается.
Аноним 21/03/21 Вск 21:46:49 1973584326
>>1973557
>и это не строка, а список
Я тоже так думаю, просто в пыхе , насколько я понял\помню, если ты собираешь названия файлов в переменную они по умолчанию записываются как string, и у тебя выходит что-то вида 'hui.txt' . 'hui.txt' .'hui.txt' .'hui.txt'
А тут выходит какой-то список, при этом это даже не array. Ну я говорю, что мои познания в коде на уровне шимпанзе, поэтому я не понимаю как это работает.
Аноним 21/03/21 Вск 21:49:22 1973586327
>>1973583
> отсутствие блочных скоупов
воистину говно
Аноним 21/03/21 Вск 21:52:49 1973589328
>>1973586
сколько нам открытий чудных
Аноним 21/03/21 Вск 21:54:26 1973590329
>>1973589
я всегда честно думал что он там есть
Аноним 21/03/21 Вск 22:04:08 1973597330
>>1973590
Я читал, раньше и компрехеншены протекали, с какой-то версии пофиксили, лол.
Аноним 22/03/21 Пнд 01:42:27 1973750331
F0247D27-350D-4[...].jpeg 79Кб, 480x853
480x853
Аноним 22/03/21 Пнд 01:44:31 1973752332
>>1973281
for file in files: это можно написать иначе

file = None # бесполезное объявление, чтобы тебе было привычнее
files_iter = iter(files)
while True:
..try:
....file = next(files_iter)
..except StopIteration:
....break
..# тело цикла

Так понятнее? Попробуй print(vars()) в любом месте кода написать. Увидишь что переменные это банальный словарь имя-значение. Их не нужно объявлять заранее, сразу присваиваешь x = 5 и понеслось.
Аноним 22/03/21 Пнд 01:50:38 1973755333
>>1973583
>>1973586
Нахуя козе баян? Слабо написать развёрнутый rationale как в пепах?
Аноним 22/03/21 Пнд 01:55:18 1973757334
>>1973590
Они есть, class, def, компрехеншены образуют скоупы. В питоне не принято писать портянки из одной функции на 1000 строк. Единственное неудобство это загрязнение модульного скоупа предвычислениями, но это тоже решается либо функцией, либо del.
Аноним 22/03/21 Пнд 02:13:08 1973779335
>>1973757
Речь не о том. Посмотри, какие скоупы в том же си.
Аноним 22/03/21 Пнд 02:32:59 1973812336
2 дня кряхтел мозгами как реализовать функцию, а сегодня наконец сел и написал и когда все сработало я минут 5 не мог перестать расплываться от счастья. Аноны, вы тоже получаете дикий кайф от проганья? Это проходит со временем?
Аноним 22/03/21 Пнд 02:43:56 1973818337
>>1973779
Я именно об этом и говорил. В луа есть do block похожий, в js циклы и такие же блоки образуют скоуп. В питоне ещё есть with, который не совсем про скоупы, но выполняет часть семантики скоупов в других языках. Возможность написать n вне цикла, а потом внутри цикла, это же поощрение говёного кодстайла, тебе ещё выяснять придётся какой это n. Если кому-то сильно зудит что переменная не освобождается, есть del.
Аноним 22/03/21 Пнд 04:22:35 1973848338
Друзья, поделитесь гайдом, как на Дженкинсе сделать CI своих тестов на питоне на сервере?
Аноним 22/03/21 Пнд 10:43:42 1973959339
Нашел на гите такой вот роадмап по пайтону. https://github.com/GnuriaN/Python-Roadmap
Что думаете? Меня смущает, что там чел советует курсы. Насколько я слышал, курсы по программированию это что-то вроде бизнес тренингов. Я ранее код не писал, собственно вопрос, лучше по книгам учиться?
Аноним 22/03/21 Пнд 11:03:27 1973971340
Питоны, 32битная версия питона вообще используется или это уже редкость? Вы в своих проектах ее поддерживаете, пакеты под нее собираете?
Аноним 22/03/21 Пнд 11:04:36 1973973341
>>1973959
Курсы для совсем нубов. Если можешь читать и организовать себе практику то книги лучше.
Аноним 22/03/21 Пнд 11:28:15 1973993342
>>1973959
>лучше по книгам учиться?
Книги не научат тебя бест практик и не будут дрочить по pep8, да и в целом по дзену питона.
Аноним 22/03/21 Пнд 12:05:01 1974038343
>>1973993
>Книги не научат тебя бест практик и не будут дрочить по pep8, да и в целом по дзену питона.
А курсы научат? Я думаю лучший способ конечно найти ментора, но не думаю, что кто-то захочет просто так тратить на меня время.
Аноним 22/03/21 Пнд 12:20:23 1974048344
Аноним 22/03/21 Пнд 12:22:33 1974049345
>>1973993
>по дзену питона
Бесполезная хуита, которая сопротивляется удобным фишкам. Из-за гвидо съебал от этих тупых ивалидов, кто давясь слюной защищал дзен.
Сроду не следовал этому. Как удобнее/эффективнее/проще/нужно по ситуации - так и делаю
Аноним 22/03/21 Пнд 12:29:28 1974051346
>>1973959
Очень хлипкий.
У го действительно хороший роадмап, хотя и устареет скоро. А здесь расписывается несколько абзацев какуд среду разработки поставить. Еще, блять, советует сразу две идеи держать. Ну нахуя?
Актуальные веб фреймворки, брокеры очередей, орм - где всё это и это только под веб.
https://github.com/Alikhll/golang-developer-roadmap
Аноним 22/03/21 Пнд 12:42:41 1974057347
>>1974048
Хочу уговорить в проекте не поддерживать x32 версию, потому что лень. Но аргументов особых нет. А тут глянул на github action который питон устанавливает, в нем, например, уже забили болт на x32. Вот мне и интересно стало, как вообще с этим дело обстоит.
Аноним 22/03/21 Пнд 13:00:14 1974072348
>>1973971
На линухе для внутреннего скриптинга поддерживается и для десктопов. Если пилите серверную приложуху, то нахуй не нужно.
Аноним 22/03/21 Пнд 13:22:00 1974097349
>>1974057
Бери и говорил, что идет повсеместный отказ от x32 приложений и всё. Легаси трудно будет выпиливать, обновлений не будет и т.д.
Аноним 22/03/21 Пнд 15:37:26 1974232350
Захотел разбить большую функцию на несколько, возникла проблема: в каждой микро функции нужно несколько одних и тех же переменных, причем одна функция конвеером затрагивает другие и приходится одно и то же передавать, как это решать, это сильно плохо? Использовать объекты, чтобы передавать только его и его полям обращаться просто? Если передавать словарь, то кажется не очень красиво будет. Либо это значит, что я хуйню понаписал и надо переписывать все?
Аноним 22/03/21 Пнд 15:50:26 1974249351
>>1974232
Ну никто не запрещает. После рефакторинга так и вышло. 2 функции принимают один и тот же аргумент. Можно конечно консолидировать в один метод, но нахера?
Аноним 22/03/21 Пнд 16:12:26 1974272352
>>1974232
Скорее всего последнее. Покажи код.
Аноним 22/03/21 Пнд 16:12:45 1974273353
>>1974232
Замыкание или класс/словарь/контекст/etc в принципе замыкание это то же самое.

> Complex is better than complicated.

Выбирай меньшее из зол. Раньше ведь всё равно было хуже.
Аноним 22/03/21 Пнд 16:19:29 1974286354
>>1974232
>Использовать объекты, чтобы передавать только его и его полям обращаться просто?
Эти функции сделать его методами и в конце каждого метода возвращать self, тогда можно будет строить цепочки методов уровня GentlemanUdachi.ukral().vipil().v_turmu().
Аноним 22/03/21 Пнд 17:22:50 1974405355
>>1974038
>А курсы научат?
Смотря что за курсы, но у нормальных в основном акцент на этом.
Аноним 22/03/21 Пнд 17:29:21 1974422356
>>1974049
>Сроду не следовал этому. Как удобнее/эффективнее/проще/нужно по ситуации - так и делаю
Если ты что-то пилишь для себя, то вопросов ноль. Но это большая боль поддерживать чей-то код, который не следовал дзену.

Дзен - это устная договоренность между всеми кодерами работающим с эти языком. Никто конечно и в жизни не запрещает никому вести себя как мудак, но это моветон. Для этого есть другие языки.

По этому при собесах я отдам предпочтение тому, кто прошел курсы, чем тому, кто вкатился именно в питон по книгам. Код намного приятнее читать. И уж лучше такого джуна доучу, чем переучивать книжного.
Это конечно не абсолют, и там и там есть нормальные и не нормальные, но примерно 80 на 20 по моим субьективным наблюдениям.
Аноним 22/03/21 Пнд 17:44:37 1974445357
>>1974422
>По этому при собесах я отдам предпочтение тому, кто прошел курсы
Ты хоть чуть чуть эти курсы видел изнутри? Куча народу, препод даун с зп 30к рублей и абсолютно похуистичное отношение, когда нихуя непонятно.
Аноним 22/03/21 Пнд 17:45:45 1974447358
>>1967018 (OP)
Анон, правильно ли я понимаю, что "Дронов Владимир - Django Практика создания Web-сайтов на Python" это кал, а не книга и вкатываться с её помощью бессмысленно?
Аноним 22/03/21 Пнд 17:50:34 1974454359
>>1974445
Видел. Есть крутые курсы и это не гикбреинс и не скилбокс, но не буду писать, так как меня обвинят в рекламе)

И там сидят преподы не на фул зп, а чисто как подработка.
Аноним 22/03/21 Пнд 17:51:33 1974455360
>>1974454
>а чисто как подработка
И нахуя им это? Только если это при какой-то компании, где самых толковых хантят
Аноним 22/03/21 Пнд 18:02:48 1974468361
>>1974422
Может тебе еще и лямбды трудны для понимания и ты везде их выпиливаешь в короткие функции?
Аноним 22/03/21 Пнд 18:10:42 1974491362
>>1974422
In [1]: data = [1, 3, 5, 7, 9, 11, 13, 15]
In [2]: print(list(filter(lambda x: (x % 3 == 0), data)))
Тебе наверно очень трудно будет прочитать то, что выше? И ты создашь отдельный список, куда в итерации будешь пихать результат?
Аноним 22/03/21 Пнд 20:11:06 1974646363
Аноним 22/03/21 Пнд 20:35:21 1974670364
Аноны, посоветуйте альтернативу Хероку для апи и бд. Эта хуета вымораживает постоянными ошибками, не смотря на хуеву кучу тестов и абсолютное отсутствие причин для возникновения таковых. Платно, бесплатно, поебать, лишь бы не связываться с этим дерьмом.
Аноним 22/03/21 Пнд 21:12:41 1974706365
Всем привет, в чем отличие flask-security от flask-login?
Аноним 22/03/21 Пнд 21:15:03 1974712366
Анчоусы, на pytest пытаюсь сделать фикстуру, чтобы по включению одной кнопки (булин) можно было печать или не печатать.
Пример. Есть юнит тест, который возвращает в stdout что-то. Есть конфигурация теста, где есть настройка типа printout - True. Нужно в конфтест файле прописать такую ботву, что если настройка Фалс, то не печатает, а если тру, то печатает. Как такое запилить?
Аноним 22/03/21 Пнд 22:04:39 1974744367
Здравствуйте, мне нужно запускать питон скрипты через питон скрипт. Типа:

[Start run_all.py]

[Go to Dir /root/main]
[Run main.py - argument]
[Wait 80 sec]

[Go to Dir /root/test]
[Run test.py - argument]
[Wait 80 sec]

[End. ]
[Kill all process]

Только тут два скрипта, а у меня будет десять.

Как это делать? Я только Паскаль учил.

Аноним 22/03/21 Пнд 22:29:23 1974756368
>>1967018 (OP)
Есть ли книжки по созданию telegram ботов? Или только документация?
Аноним 22/03/21 Пнд 23:22:26 1974792369
>>1974744
Python run_all.py && cd /root/main && python main.py.
Ну ты понял
Аноним 22/03/21 Пнд 23:30:48 1974804370
>>1974756
читаешь апи и пишешь
Аноним 22/03/21 Пнд 23:51:19 1974815371
>>1974491
>print(list(filter(lambda x: (x % 3 == 0), data)))
Пока filter возвращал список, а не итератор, я именно так и писал, но на сегодняшний день print([x for x in data if x % 3 == 0]) и ближе к PEP8, и лаконичнее. Конструкция "x for x in data" конечно способна вызвать реакцию "ачё вообще)", но это дело привычки. Как list(filter()). Главное обсудить с коллегами, как писать, и закрыть вопрос.
Аноним 22/03/21 Пнд 23:56:20 1974818372
>>1974804
Если знаешь можешь помочь? Нужно чтобы бот каждый определенный день присылал уведомление и в то же время можно
было запрашивать у него другие функции, для этого нужна многопоточность, да? Я просто с ней еще не связывался, учусь только, поэтому не шарю
Аноним 22/03/21 Пнд 23:59:37 1974819373
>>1974818
Не нужна многопоточность
Аноним 23/03/21 Втр 00:31:48 1974838374
>>1974422
> Если ты что-то пилишь для себя, то вопросов ноль.
Ну, это, кстати, до тех пор, пока в первый раз про какой-нибудь мини-проектец позабудешь, а потом откроешь его через месяцок-полтора с отвисшей челюстью.
> print(list(filter(lambda x: (x % 3 == 0), data)))
Вот это, вот, вообще хрестоматийный пример того, как не нужно использовать пайтон.
Аноним 23/03/21 Втр 00:57:45 1974849375
>>1974838
Ну-ка напиши "по-человечески"
Аноним 23/03/21 Втр 02:04:02 1974868376
>>1974838
Функциональное программирование топ.
Аноним 23/03/21 Втр 02:07:51 1974869377
>>1974849
>Напишите функцию, выводящую список целых чисел от 1 до 100, но вместо каждого числа, кратного 3, она должна выводить «Fizz», а вместо каждого числа, кратного 5, выводить «Buzz». Вместо чисел, кратных и 3, 5, программа должна выводить «FizzBuzz»; все остальные числа должны выводиться без изменений.
[(lambda n: { 1: n, 6: "Fizz", 10: "Buzz", 0: "FizzBuzz" }[n4%15])(n+1) for n in range(100)]
Сосай)))
Аноним 23/03/21 Втр 03:11:04 1974878378
>>1974869
>>NameError: name 'n4' is not defined
Сасай))))))
Аноним 23/03/21 Втр 04:38:47 1974893379
Аноним 23/03/21 Втр 09:03:28 1974944380
Аноны, можно найти как нибудь меньшее из 3 чисел, без циклов, условий if и функций?
Аноним 23/03/21 Втр 09:37:44 1974956381
>>1974756
Есть, Д. Кнут "Искусство программирования"
Аноним 23/03/21 Втр 10:25:43 1974986382
Посоветуйте годный список вопросов на мидла
Аноним 23/03/21 Втр 11:21:11 1975058383
>>1974849
>>1974815
> [x for x in data if x % 3 == 0]

>>1974868
В специально отведённых для этого местах, вроде Haskell'а - вполне.
Аноним 23/03/21 Втр 11:29:43 1975071384
>>1974455
Любовь к делу плюс подработка)
Аноним 23/03/21 Втр 11:30:01 1975074385
Аноним 23/03/21 Втр 11:59:09 1975109386
>>1974422
ну кстати да, прикол курсов в том что там именно с самого начала заставляют учить хороший тон, чтобы не было всякого пиздеца
хотя даже курсы не помогают часто.
некоторые кодят так, словно блядь они ебашат от балды, никакой логики, структуры.
просто набор рандомного кода, который работает, но непонятно как и при этом еще может выкидывать всякие побочные эффекты ебовые, лол
Аноним 23/03/21 Втр 12:18:53 1975117387
>>1973281
file это переменная в листе files в данную итерацию, т.е. если у тебя первая итерация то file равно первой переменной из files,вторая итерация-вторая переменная и т.д., тоже самое работает со строками и т.д., с числами используется range.
Аноним 23/03/21 Втр 13:39:05 1975166388
>>1975109
>прикол курсов в том что там именно с самого начала заставляют учить хороший тон
Речь про какие-то конкретные курсы или о ситуации в целом?
Я вот вкатывался, просто изучая популярные репозитории с множеством звездочек на гитхабе, лол. Да, конечно это нихуя не гарант чистого, структурированного кода, но если у проекта много контрибуторов и он популярный, то скорее всего разрабы используют какой-то общий для всех кодстайл и пепы.
И вкатывался я сразу в веб на aiohttp/fastapi/sanic, а не с православных джанги/фласка. Вот недавно скачал курс по этой самой джанге. От otus, вроде. Ну полная хуйня на мой взгляд, сразу же не понравилось. Вроде 20 год, свежачок, а ведущие тратят часов 10-15 на устаревшие практики из древнего мира, типа фуллстека на одном фреймворке в монорепе с деплоем через ручную загрузку файлов на сервер. Никакого докера и прочих дев тулзов; хотя по идее, к этому почти сразу нужно приучать. Так вот кстати и не могу подружиться ни с джангой, ни с её рест частью - отторгает. Работу щас немного проблемно искать из-за этого.
Аноним 23/03/21 Втр 13:46:27 1975173389
>>1975166
У всяких либ зачастую код весьма говнист в угоду универсальности.
Аноним 23/03/21 Втр 13:51:24 1975180390
>>1975166
ну на кусере те курсы что я видел там сразу же поясняют за пепы и как не стоит делать и т.п.
Это те курсы где преподы с универов
Аноним 23/03/21 Втр 13:55:17 1975183391
Аноним 23/03/21 Втр 15:02:14 1975250392
>>1975180
>Это те курсы где преподы с универов
Это должно придавать значимости?
Аноним 23/03/21 Втр 15:32:40 1975265393
>>1975250
Наоборот же, преподы это хуи-теоретики, не имеющие опыта разработки.
Аноним 23/03/21 Втр 15:49:00 1975278394
>>1975250
нет, прост они дрочат академически а не ебошат отсебятину типа -я так делую ёпта, и ты так делай.
>>1975265
ну так курсы тебя не познакомят с опытом разработки.
они дают теорию и направление, а опыт разработки уже самостоятельно будешь получать.
например чел пояснил какими путями можно реализовать программу и какие есть паттерны.
и даются задания на реализацию.
оценка идет по результату работы.
То есть никто не мешает тебе конечно напердолить как хочешь, хоть в 1000 строк пиздануть вместо 100.
но это уже будет твой опыт личный.
А если не слушать что говорят и делать как сам хочешь - можно привыкнуть и хуярить горы непонятного кода на постоянной основе, такой себе опыт разработки.
к тому же, как говорят, на собесах как раз таки проверяют как ты хуяришь код, типа в конторах часто есть свои порядки как писать, и если ты ебашишь от балды то это неприемлемо.
ну это конечно мое мнение с дивана, может я неправ.
Аноним 23/03/21 Втр 16:15:11 1975300395
>>1975278
Есть курсы, где помимо наставника есть ревьюверы, которые тебе дают фидбек по твоему коду)
Аноним 23/03/21 Втр 16:36:49 1975318396
>>1975300
Ну в курсере тоже можешь обращаться в телеграм там и т.п. или на форуме спрашивать.
там кстати есть и задания которые сокурсники оценивают.
Но там обычно от балды ставят сразу зачеты, ибо им лень проверять, лол.
Аноним 23/03/21 Втр 16:47:26 1975327397
>>1975300
Плати мне, я могу ревью твоего говна под названием код проводить
Аноним 23/03/21 Втр 16:58:45 1975338398
>>1975300
Ага, по личному желанию перебрать тонны говнокода, вести лекции, слушать вопросы долбоебов вместо того, что бы в конторе код писать и все наивысшего качества
Аноним 23/03/21 Втр 17:08:26 1975351399
>>1975338
Есть такая черта как твердолобость. Друг, никого не хочу оскорблять, но попробуй посмотреть на разные вещи, во первых под разных углами, а во вторых отличной от твоей точки зрения. Тем более ты работаешь в той области, где каждый год приходится изучать что-то новое, чтобы оставаться на плаву.
Аноним 23/03/21 Втр 18:21:21 1975407400
код.png 52Кб, 1653x520
1653x520
Привет, мне тут помощь нужна, буду очень признателен, если подскажите. Есть бот на библиотеке telebot, который парсит новости с сайта с помощью bs4. Моя задумка в том, чтобы записывать url новостей, которые бот спарсил, в отдельный текстовый документ, это я сделал. Но в случае их наличия в документе он должен не выводить их, а выводить только новости, которых ещё не было. В случае же полного отсутствия новостей с новым url бот должен вывести сообщение о том, что новостей нет. Целый день голову ломаю, ничего не могу придумать. Даже какая-то новодка бы была очень полезна, только недавно начал учить язык. Вот так сейчас выглядит отрывок кода:
Аноним 23/03/21 Втр 18:26:08 1975410401
>>1975351
Хорошо, покажи мне хоть один курс с преподавателями не-долбоебами, которые не смогли вкатится и не при какой-то фирме, которая выпускников потом себе берет.
Аноним 23/03/21 Втр 18:50:16 1975428402
>>1974792
Ну, я вообще не программист. В общем я выебал мозг знакомому программисту и он мне сделал.

Там просто ос.систем и тайм.слиип
Аноним 23/03/21 Втр 18:50:30 1975429403
>>1975407
Для этого лучше годится тот же sqlite.
А для твоего варианта, делаешь comps_news словарем и ключом url.
Потом просто делаешь comps_news.keys() - news_note и получаешь сет новых, по нему итерируешь и достаешь из словаря.
Аноним 23/03/21 Втр 18:52:54 1975431404
>>1975429
Алсо, можно вообще не городить огород, а делать всё в цикле for item in items
Аноним 23/03/21 Втр 18:58:36 1975436405
Есть пара файлов file1.py и file2.py
В одном из них хочу сделать относительный импорт
from .file1 import function1

Но получаю ошибку
ImportError: attempted relative import with no known parent package

Если бы я делал
from file1 import function1
Все бы работало.

Перечитал первые ссылки в гугле и так и не понял как это работает.
Пробовал создать файл __init__.py но проблему это не решает.
Пробовал делать точку входа if __name__ == '__main__':

То ли, надо какую-то структуру проекта указать.

Объясните пожалуйста, что нужно сделать чтобы заработал относительный импорт.
Аноним 23/03/21 Втр 19:00:03 1975437406
Аноним 23/03/21 Втр 19:03:13 1975441407
Аноним 23/03/21 Втр 19:10:41 1975451408
>>1975441
Я читал это. Стена невнятного текста через гугл транслейт. Объясни как мне сделать чтобы заработало.
И как надо делать.

И я вообще решил что нужно делать такой импорт, потому что, так делают во всяких джангах. И мне также надо делать.
Аноним 23/03/21 Втр 19:43:16 1975488409
>>1975451

У тебя PyCharm? Ну делай через from проект.файл import *
Аноним 23/03/21 Втр 20:20:02 1975505410
>>1975488
Ты зачем ему хуевые практики сходу прививаешь?
Аноним 23/03/21 Втр 20:28:40 1975518411
>>1975505
>Ты зачем ему хуевые практики сходу прививаешь?

Ну по другому же он не хочет.
Аноним 23/03/21 Втр 20:36:06 1975524412
Посоветуйте книги по КРАСИВОМУ программированию на Питоне.
Аноним 23/03/21 Втр 20:36:56 1975526413
>>1972762
Есть, но он публичный.
Аноним 23/03/21 Втр 20:44:57 1975540414
>>1975524
Он и так красивый, если ты хуйней не занимаешься.
Аноним 23/03/21 Втр 20:46:17 1975544415
Снимок экрана 2[...].png 90Кб, 2176x880
2176x880
>>1975451
Первым делом делаешь виртуальное окружение.
Таким образом у тебя будет корень проекта в путях. Тогда ты сможешь делать такие импорты
Аноним 23/03/21 Втр 20:51:53 1975552416
Аноним 23/03/21 Втр 20:54:04 1975556417
>>1975540
Попробуй читать, что написано. Просьба не о красивом языке, а о красивом стиле. Говнокода от вьетнам-стайл до 8"Б"-стайл на питоне - полон гитхаб.
Аноним 23/03/21 Втр 20:56:44 1975558418
image 219Кб, 693x847
693x847
>>1975552
>pepe8


Я чуть о другом.
Аноним 23/03/21 Втр 21:07:02 1975565419
image.png 4Кб, 257x146
257x146
>>1967018 (OP)
Блять анончики я наверное совсем тупой раз не могу настроить вскод. Крч смотрите ситуацию, скачиваю вскод, скачиваю питон.exe , потом в вскоде устанавливаю питонское расширение и как бы все. потом ввожу условно код типа пика и во встроенной консоли ничего не появляется, ни запроса на введение икса ни чего то еще, то есть программа как бы запускается там виддно в терминале но какие то действия нельзя выполнить, объясните пожалуйста что я вообще не так делаю инб4: учишься кодить
Аноним 23/03/21 Втр 21:21:16 1975575420
>>1975558
>pepe
>галстук без лягушонка
Протестую.
Аноним 23/03/21 Втр 21:28:58 1975583421
>>1975565
Ладно, я дегенерат надо было вывести принт функции, но с другой стороны почему в видеоуроке который я смотрел пользуясь другим редактором не надо вводить print и он сам запрашивает число а в вскоде надо ух ебать мне времени понадобилось чтобы допереть до этой мелочи
Аноним 23/03/21 Втр 21:32:13 1975586422
>>1975583
Можно ссылку на видеоурок?
Аноним 23/03/21 Втр 21:52:49 1975605423
Аноним 23/03/21 Втр 22:00:05 1975614424
изображение2021[...].png 5Кб, 396x95
396x95
Аноним 23/03/21 Втр 22:00:38 1975617425
sq-sql1.png 23Кб, 753x435
753x435
Аноним 23/03/21 Втр 22:46:14 1975651426
>>1975617
Пусть даст сотню тысяч пар рисунок-копия с оцененным процентом, и я решу эту задачу за косарь.
Аноним 23/03/21 Втр 22:49:26 1975654427
петян, есть 50000 вызовов функции числодробилки, она вроде там местами через numpy ебашит. в среднем выполняется по 15 милисекунд за вызов. всё про всё минут 10-15 занимает. какая распараллелизация вычислений нынче в моде? cuda и всякий gpu я не могу себе позволить, так что майнить моцарта буду на cpu
Аноним 23/03/21 Втр 22:52:51 1975655428
>>1975617
>5000 руб за проект.
этих денег не хватит даже чтоб тебя хуй послать.
Аноним 24/03/21 Срд 00:03:03 1975699429
>>1975654
Да по процессу на ядро, ничего не изменилось. 15 миллисекунд на вызов, numpy "местами" - кажется, сейчас выгоднее потратить время на оптимизацию (подойдет ли numba?). Быстрый код на питоне - это такой код, который как можно реже и на как можно больше долгое время отдает управление коду не на питоне.
Аноним 24/03/21 Срд 00:13:39 1975710430
>>1975583
Потому что в видеоуроке редактор (IDLE) после запуска файла переносит тебя в режим REPL, в котором ты вводишь команду, а она сразу же исполняется. Это интерактивный режим для набросков и быстрых тестов, который например включается, когда ты запускаешь питон из командной строки.

В VSCode включается исполнение файла, где ты сам контролируешь, когда просить у пользователя ввод (функция input) и когда делать вывод (функция print). После того как программа завершается, интерпретатор выключается, процесс завершается. В интерактивном режиме такого не происходит, и выход нужно запросить отдельно (закрыть окно, нажать комбинацию клавиш, вызвать специальную функцию и т. д.)
Аноним 24/03/21 Срд 00:47:45 1975749431
>>1975428
Ну покажи код хоть.
Аноним 24/03/21 Срд 01:09:15 1975758432
>>1967018 (OP)
Знатоки, подскажите если знаете - этот https://ideone.com/f3kWZ4 код нормально выполняется на сайте, но довольно странно выполняется в убунте. В убунте получаю вот такой результат:

# echo '1' | python3 pytest1.py
STDIN=1

RES=1Z
Z

С чем это может быть связано?
Аноним 24/03/21 Срд 01:26:46 1975762433
>>1975758
echo добавляет ньюлайн
делай echo -n
Аноним 24/03/21 Срд 04:33:50 1975801434
>>1975544
А вот виртуальное окружение, это типа хорошая практика, да?
Аноним 24/03/21 Срд 04:57:09 1975804435
https://ideone.com/0k8Vqa
Есть способ захватить переменные в функцию по значению, а не по ссылке? Я не знаю как это называется в вашем языке.

Не очень приятный в использовании код получается, если вручную эту проблему решать.
Аноним 24/03/21 Срд 05:01:24 1975807436
>>1975804
Этот код с добавлением лямбд функций в список в методе класса происходит, не в глобальном пространстве, естественно.
Аноним 24/03/21 Срд 08:16:24 1975839437
Аноним 24/03/21 Срд 08:19:31 1975841438
>>1975614
>>1975617
Ты тоже можешь подать объявление на фриланс биржу и попросить сделать что-то серьёзное за три копейки. Да, таких там большинство.

Или это ты и подал?

Кстати, как тут анон поживает, который за 800 долларов проект делал? Сделал уже?
Аноним 24/03/21 Срд 09:36:09 1975866439
>>1975565
легко, у тебя скачан питон? если да зайди в настройки и выбери интерпритатор, в винде лежит в %appdata%, после перехода в аппдату переходишь в каталог выше, там либо в локал либо в другой папке папка питона,тебе нужен python.exe
Аноним 24/03/21 Срд 09:37:44 1975868440
>>1975524
Кнута и "Чистый код".
Например logging для питухона написан вопреки pep8 и здравому чмыслу
Аноним 24/03/21 Срд 09:38:53 1975870441
Забыл про сайт refactoting.guru там хорошие примеры паттернов
Аноним 24/03/21 Срд 09:46:50 1975875442
image.png 32Кб, 452x278
452x278
Ой челы, да полная хуетень все эти ваши чистые коды, паттерны хуятерны, не ебите голову этим говном, учите лучше пепы
Чем чаще я смотрю исходники популярных либ, тем больше убеждаюсь в этом
Какой нибудь SOLID ещё ок, но это достаточно интуитивная вещь
Аноним 24/03/21 Срд 11:06:48 1975929443
>>1975875
Так тут говно потому что все методы в одном классе вместо расширения, лол. Паттерны у него говно
Аноним 24/03/21 Срд 11:24:54 1975947444
Screenshot2021-[...].jpg 408Кб, 1080x2160
1080x2160
Screenshot2021-[...].jpg 400Кб, 1080x2160
1080x2160
Screenshot2021-[...].jpg 238Кб, 1080x2160
1080x2160
В чом я не прав? На третьем пике вы можете видеть что задание с первого не выполнено. Почему так?
Аноним 24/03/21 Срд 12:16:32 1976025445
Аноним 24/03/21 Срд 13:53:59 1976118446
Приветствую всех.
Меня тут жизнь зафорсила на изучение питона и мне понравилось.
Хочу для удовольствия сделать несложное приложение с интерфейсом, работающее на Windows. Через что это делается, что мне для этого нужно знать кроме базового синтаксиса питона?
Я понимаю, что этот язык обычно используется для других дел, но сейчас интересно именно с таким поебаться.
Спасибо!
Аноним 24/03/21 Срд 14:03:27 1976125447
Аноним 24/03/21 Срд 14:15:49 1976134448
>>1975410
Далее идет простыня текста человека, которому заплатили за рекламу. Можно не читать.

Яндекс выпускает годных студентов, более того, часть наставников - это действующие сотрудники. Но лишь малая часть студентов устраивается в саму компанию.

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

А в конце HR будут давать тебе фидбэк по твоим собесам, будут вылизывать твое резюме до тех пор, пока ты не устроишься.
Я не знаю откуда они вылезли, но по мне так всё идеально. Не знаю как на практике.
Аноним 24/03/21 Срд 14:17:26 1976136449
Аноним 24/03/21 Срд 14:18:00 1976137450
>>1975762
Спасибо, и впрямь добавляет.
Аноним 24/03/21 Срд 14:53:01 1976177451
Аноним 24/03/21 Срд 15:06:40 1976200452
>>1976134
А в чем беда читать книги, смотреть бесплатные курсы, а корочку получить в каком-нибудь говне типа СИНЕРГИИ?
Аноним 24/03/21 Срд 15:23:51 1976224453
>>1976200
>а корочку получить в каком-нибудь говне типа СИНЕРГИИ
Достаточно любой заочной дистанционной вышки
В синергии говорят часто кидают на последних курсах
Аноним 24/03/21 Срд 15:33:46 1976243454
>>1976224
Ну, я и подразумевал заочные дистанционные вышки, синергия просто как пример совсем уж лютой параши. Раз уж общество требует от тебя корочку, то можно её просто где-нибудь пассивно получить. Всё равно в России не существует централизованного высшего образования по направлению разработки. Чистая математика - может быть, вполне. Учитывая достижения на олимпиадах различных. Но "айти образование" в РФ - это пиздец.
Аноним 24/03/21 Срд 15:41:36 1976263455
>>1976224
>В синергии говорят часто кидают
Как эта залупа вообще до сих пор существует? Они же без гос.аккредитации.
Аноним 24/03/21 Срд 16:23:39 1976365456
>>1976263
вроде бы гос. аккредитация у них есть
Аноним 24/03/21 Срд 16:37:28 1976387457
изображение.png 40Кб, 782x402
782x402
Аноним 24/03/21 Срд 16:37:59 1976389458
>>1976200
Выше уже писалось, что питонистам важно, чтобы import this соблюдался. Быстрее научить с нуля писать читабельный, технологичный код, чем переучивать уже набившего руку спеца. В общем наверно холиварная тема, но я согласен с предыдущими сообщениями на эту тему. Те, кто сумел по книгам прийти к дзену, еще большее уважение.
Аноним 24/03/21 Срд 16:48:18 1976403459
>>1976389
>import this
Там все настолько расплывчато и со столь свободной трактовкой, что при обсуждении кода выйдет победителем самый гуманитарный среди всех разработчиков.
Аноним 24/03/21 Срд 16:54:28 1976417460
image.png 9Кб, 510x356
510x356
>>1967018 (OP)
Как на Пистоне смержить 2 отсортированных массива? (чтоб получился другой отсортированный массив). Есть дефолтное решение как на скрине, а в либах есть че-то подобное?
Аноним 24/03/21 Срд 17:19:56 1976456461
Аноним 24/03/21 Срд 17:23:45 1976460462
>>1976456
Неплохо, но неэффективно
У тебя уже 2 Array отсортированы, а ты херишь это когда вместе их склеиваешь
Аноним 24/03/21 Срд 17:27:42 1976466463
>>1976460
В твоей задаче в любом случае будут потери на дополнительную сортировку. Это самый лаконичный вариант.
Аноним 24/03/21 Срд 17:38:43 1976475464
>>1976403
В смысле расплывчато??? Ты пишешь импорт зис и получаешь список правил. Что расплывчатого?
Аноним 24/03/21 Срд 18:25:47 1976526465
>>1976475
>Явное лучше, чем неявное.
Одним этим правилом можно всю питонячью магию обосрать
Аноним 24/03/21 Срд 18:38:44 1976538466
изображение.png 20Кб, 547x474
547x474
изображение.png 28Кб, 640x534
640x534
изображение.png 7Кб, 453x300
453x300
>>1976466
На какую дополнительную?
sort сработает быстрее только потому что он на си реализован, и собственный алгоритм слияния будет тормозить из-за того, что интерпретатор питона вместо скомпилированного кода. При больших числах это сказывает и f начинает догонять g.
В первой строчке количество элементов, во второй время выполнения - код на третьем пике.

А если прикрутить нумбу, то собственный алгоритм обгоняет без каких-либо шансов твой sort, потому что sort тут не нужен от слова совсем.

На самом деле я не верю что в питоне нет функции для слияния сортированных массивов которая уже как sort скомпилирована - а я просто её не знаю.
Аноним 24/03/21 Срд 18:39:16 1976539467
Аноним 24/03/21 Срд 18:49:35 1976548468
>>1976538
Вот ещё нашёл: https://habr.com/ru/post/510970/
Получается просто из-за ограничений языка полный sort быстрее всего оказывается.
Аноним 24/03/21 Срд 19:43:50 1976596469
>>1976025
Спасибо

Скажите, на сколько достоверна эта паста:


Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты
Аноним 24/03/21 Срд 20:34:41 1976638470
>>1967018 (OP)
Поясните за setup.py
Когда он нужен? Я ведь могу просто добавить нужную мне версию либы в requirements.txt и потом установить все через pip install -r requirements.txt
Аноним 24/03/21 Срд 21:32:08 1976674471
Аноним 25/03/21 Чтв 00:22:41 1976759472
>>1976118
Начни с tkinter, если прям базово знаешь питон.Эээхх, помню свой калькулятор на ткинтере...
Аноним 25/03/21 Чтв 07:03:51 1976863473
>>1976025
Поясни тупому, почему ты цифры поставил в группу () и зачем обозначил конец строки $?
Аноним 25/03/21 Чтв 08:44:23 1976883474
>>1976863
Группы
r = match(regex, string)
r.group(2)
Выдает значение второй группы сразу. В документации написано, но всем похую. $ конец строки
Аноним 25/03/21 Чтв 10:12:01 1976915475
>>1975947
Поясни ньюфагу, что это за приложение?
Аноним 25/03/21 Чтв 10:12:33 1976916476
>>1976915
>>1975947
А всё, в заголовке скриншота увидел, что Сололёрн
Аноним 25/03/21 Чтв 10:13:01 1976917477
>>1976638
Вот чтобы ты мог "просто добавить нужную версию либы в requirements.txt и потом установить все через pip install -r requirements.txt" разработчику этой самой либы может понадобиться setup.py.

Аноним 25/03/21 Чтв 10:32:16 1976938478
>>1976243
>>1976224
Что за синергия и почему кидают?
>>1976134
У яндекса курсы прикольные, но мне не понравилась тема что на тренажере у них например ты написал код, и он блядь работает.
но проверку не проходит. Я один раз охуел не понимал как такое возможно.
потом оказалось что нужно было писать путь к файлу на чтение, как указано в задании.
при том что блядь без указания пути в коде файл читался прекрасно.
Вот это ОЧЕНЬ ХУЕВО, уровень низкий.
Аноним 25/03/21 Чтв 10:38:59 1976942479
>>1976938
>Что за синергия и почему кидают?
Вузик самого паршивого качества, где никто нихуя не делает. Кидают потому, что на последнем курсе тебе просто могут не выдать диплом/отчислить/спиздить деньги
Аноним 25/03/21 Чтв 11:46:21 1976986480
>>1976942
Пиздец, как их еще не закрыли за такую срань?
Аноним 25/03/21 Чтв 11:53:21 1976991481
>>1976986
У них просто направления не аккредитованы или как это называется, причем направление киберспорт что забавно аккредитовано, страшно подумать какие направления хуже чисто если по названию судить. А вуз частный а не государственный
Аноним 25/03/21 Чтв 12:00:16 1976994482
>>1976991
А. я такие вузы кстати помню были в начале нулевых, у нас даже был вузик, состоявший полностью из пидорнутых с подобного универа преподов, а декан был бывшим директором такого вуза.
их пидорнули как раз потому что не было у них никаких аккредитаций и лицензий.
Аноним 25/03/21 Чтв 12:07:25 1976997483
Господа, столкнулся со странной проблемой.
На одной виндовой машине использую скомпилированные pyinstaller'ом скрипты, и в какой-то момент они перестали работать.
Вылезает ошибка

PermissionError: [Errno 13] Permission denied: 'files_list.txt'

на строке открытия файла

f = open(filesList,'w')

Я как бы не полный дурак, читать умею. Все права выставлены правильно, запуск от имени администратора не помогает.
Смущает то, что при запуске .py-файла все отрабатывает хорошо. Что за ебаный нахуй?
Аноним 25/03/21 Чтв 12:09:03 1976998484
>>1976917
Видел как в проекте одну новую либу одновременно занесли в requirements.txt и заделали setup.py файл. Нахера?
Аноним 25/03/21 Чтв 12:17:16 1977003485
сап, двач
хочу написать свой интерпретатор для fim++ на питоне
в ходе размышлений понял, что мне надо как то создавать функции. Функции самые простые. можно, конечно, прибегнуть к кодогенерации в отдельном файле, но это какой-то костыль.
потом я вспомнил, что все в питоне есть объект, и начал копать в класс function, который должен быть ключом к решению моей задачи. Так вот, у меня несколько вопросов.
1) где можно посмотреть исходник этого класса
2) может быть, я снова занимаюсь хуйней, и у этого класса есть какой-то супер конструктор, в который можно передать код функции и он вернет экземпляр?
3)пока копался в этом классе, нашел конструктор этого класса, но вызывается он максимально неудобно: def test(): pass; test.__class__ . Вопрос: можно ли сделать это другим способом?


по сути, мне нужно посмотреть на исходники, дальше, наверное, я сам разберусь, но может кто-нибудь уже решал такую задачу
Аноним 25/03/21 Чтв 12:17:45 1977005486
>>1976997
А атрибут "только чтение" снят?
Аноним 25/03/21 Чтв 12:20:40 1977009487
>>1977005
Да, снят.

Вообще, только что решил проблему. Добавил экзешник в белый список ебаного Аваста и все заработало. Сука, я чуть кукухой не поехал из-за этой хуйни.
Аноним 25/03/21 Чтв 12:36:39 1977025488
>>1977003
вопрос снят, можно использовать eval и compile
Аноним 25/03/21 Чтв 12:38:55 1977027489
>>1977025
на самом деле, не снят. Compile создает файл с кодом, я хочу этого избежать
Аноним 25/03/21 Чтв 12:40:28 1977029490
>>1977003
>в ходе размышлений понял, что мне надо как то создавать функции
...
Через def функции создаются, ты о чем вообще?

>>1977025
Нет, это поднимает другие вопросы. Какой к херам eval и compile? Ты отменного говнокода что ли навернуть решил?
Функция это объекта класса у которого определены методы __call__ и __get__ - пили и модифицируй как тебе угодно
Аноним 25/03/21 Чтв 12:40:37 1977030491
фласк или джанга? Что еще есть и что чаще используется работоблядями? Надо в ближайшем будущем искать галеру, посоветуйте
Аноним 25/03/21 Чтв 12:43:30 1977033492
>>1977030
Учил джангу. Вкатился на Торнаду и аиохттп. Для себя пилю на sanic/fastapi. Скоро буду менять галеру, вообще похуй на какой фреймворк - все однохуйственно
Аноним 25/03/21 Чтв 12:48:52 1977036493
>>1977029
да я понимаю это, а еще я опечатался, не eval, а exec. я хотел создавать функции на лету, но, возможно, это плохая идея. да и через exec тоже какая-то хуета получается. наверное стоит сначала создать все функции, а потом уже исполнять программу. в проектировании компиляторов, интерпретаторов я не силен вообще, мне в унике дали таск такой, приходится что-то придумывать
Аноним 25/03/21 Чтв 13:39:17 1977060494
Аноны. что значит "душить своего питона"?
я в тот тред зашел?
еще говорят про какой то "нопитон"?
типа - держу нопитон уже три дня, полет нормальный.
Аноним 25/03/21 Чтв 13:59:02 1977072495
>>1976596
>Скажите, на сколько достоверна эта паста:
Известная паста, но очень старая. Религию из PEP8 делать не надо. Tornado/Gevent устарели, вместо gevent сейчас asyncio. Вместо Tornado другие асинхронные фреймворки.

А хайлоад и технологии это как раз всякие Apache Hadoop и другие модные слова, вот их надо изучать и понимать.

Аноним 25/03/21 Чтв 14:42:17 1977107496
>>1977030
Джанго сложнее, по этому я бы с нее начал. Потом бы пощупал фласк.
Аноним 25/03/21 Чтв 17:05:28 1977339497
mQWIORMTDvQ.jpg 162Кб, 811x608
811x608
Подскажите, парни: есть список списков. Его нужно интегрировать в словарь так чтобы вложенный список стал парой "ключ:значение" и каждый первый элемент внутри вложенного списка стал ключом. Как корректней это сделать?
Например:
есть условный список списков:
main_list [
[word1, word2],
[word3, word4],
[number1, word5]
]
нужно чтобы он стал словарём:
main_dict {
'word1': 'word2', 'word3': 'word4', number1: 'word5'
}
пик_рандом

Аноним 25/03/21 Чтв 17:07:12 1977341498
изображение.png 3Кб, 411x137
411x137
>>1977339
Примерно так, да?
Очень сложный код, да.
Аноним 25/03/21 Чтв 17:10:13 1977343499
>>1977341
Странно, у меня выдаёт такую ошибку. Первый элемент недостаточной длинны?
ValueError: dictionary update sequence element #0 has length 0; 2 is required
Аноним 25/03/21 Чтв 17:17:32 1977347500
Аноним 25/03/21 Чтв 17:21:51 1977350501
Пытаюсь разобраться и накатать парсер конфига:
import re
import json

filepathw = "/home/test.json"
filepath = "/etc/nginx/conf.d/hosting.conf"
data = []
dom = None
result = None
parser_dict = {}

with open(filepath, 'r') as conf_line:
for conf_lines in conf_line:
description = conf_lines.strip().split(None, 1)
dom = description
data.append(dom)
parser_dict = dict(data)
print(parser_dict)

with open(filepathw, 'w') as file_write:
json.dump(parser_dict, file_write, indent = 4)



Аноним 25/03/21 Чтв 17:22:37 1977351502
>>1977347
>>1977350
Ну и собственно он забирает список списка и мне нужно сделать из него словарь
Аноним 25/03/21 Чтв 17:40:33 1977367503
Screenshot 2021[...].png 18Кб, 314x396
314x396
В чем суть переноса скобок отдельно? Знаю что во всяких других языках это норма. Но выглядит нечитабельно же.
Почему многие их пишут как в нижнем варианте?
Аноним 25/03/21 Чтв 17:41:19 1977369504
изображение.png 7Кб, 883x90
883x90
>>1977343
Значит у тебя список не такой, как ты указал в прошлом посте.

>>1977350
И код твой довольно бессмысленный, если ты json файл не прикрепляешь, не говоря уже про то, что ты никак не используешь то что у тебя json файл, а не просто файл.

Если у тебя пустая строка в начале файла, то он всегда будет на ней падать. Или если там фигурная скобочка и больше ничего нет.

У меня ноль идей, почему ты не написал print(data) и не посмотрел что за кашу ты там считываешь, а вот писать список вручную в посте >>1977339 тебе не лень.
Аноним 25/03/21 Чтв 17:52:16 1977383505
>>1977367
Когда переменная обозначается больше чем 1-2 символом, то читабельно
Аноним 25/03/21 Чтв 17:57:52 1977388506
>>1977383
Нет. Последний перенос сбивает с толку.
Аноним 25/03/21 Чтв 18:45:21 1977409507
>>1975875
Недавно в радиоте этот солид обсирали, как раз за то что каждый его по-своему понимает и за то что применять его хоть как-то можно разве что в жаве. Паттерны хуйня. Можешь считать что property, classmethod, декоратор, дескриптор — это тоже паттерны. Они у каждого языка свои. В хаскеле всякие лифтинги с линзами паттерны. Те паттерны про которые все слышали по сути все из жавы или шарпа.
Аноним 25/03/21 Чтв 18:45:44 1977410508
>>1976538
Подскажи плиз где или чем ты измеряешь скорость справа на пиках?
Аноним 25/03/21 Чтв 19:15:16 1977428509
>>1977410
Код с третьей картинки же.
t1=time()
...
t2=time()
return t2-t1

Там есть модуль timeit - используй лучше его. Я просто не питонист и было впадлу вникать как тут измеряют производительность нормальные люди, или как передать в timeit не просто функцию, а ещё и аргументы к ней без строки - потому просто большие числа поставил, чтобы время выполнения было сопоставимо с точность time()
Если бы я писал что-то на питоне - я бы настроил под него kcachegrind, просто потому что мне оче нравится картинки из него.
Аноним 25/03/21 Чтв 20:56:31 1977498510
>>1977339
> чтобы вложенный список стал парой "ключ:значение" и каждый первый элемент внутри вложенного списка стал ключом
{item[0]: item[1:] for item in main_list}
Аноним 25/03/21 Чтв 21:43:48 1977545511
>>1977388
Ты еще слишком мал и не видал больших залуп
Слушай больших дядь, раз еще не подрос
Аноним 26/03/21 Птн 00:04:22 1977642512
Веду проект на DjangoCMS. Через Filezilla скачал main.css, внёс небольшие правки, загрузил обратно и теперь проект выдаёт 502 на всех страницах. Что делать?
Аноним 26/03/21 Птн 00:14:50 1977662513
2021-03-25 2303[...].png 86Кб, 1478x784
1478x784
2021-03-25 2249[...].png 8Кб, 909x128
909x128
210325225942.png 72Кб, 1131x776
1131x776
Кароч, я нуфаня, только прочитал первую книжку по питону, и решил в качестве проверки знаний выполнить CS50 лабу(https://cs50.harvard.edu/college/2021/spring/labs/6/). Все написал сам, кроме вывода (ну и формулы расчёта вероятности). И вот с выводом чёт меня заклинило.
key=lambda team: winners[team]
Что конкретно эта лямбда делает? Ну, те я понял, что она сортирует ключи по их value, вместо алфавитного порядка, но может мне кто объяснить как это работает?
Алсо, поч дебагер отказывается видеть файл? Сам по себе скрипт прекрасно отрабатывает, но вот дебагер VSCode работать отказывается.
Аноним 26/03/21 Птн 01:36:00 1977710514
>>1977428
>я бы настроил под него kcachegrind, просто потому что мне оче нравится картинки из него.
Есть пособия по этому:
https://julien.danjou.info/guide-to-python-profiling-cprofile-concrete-case-carbonara/
Но это не даст тебе построчного анализа, сколько какая строка работает. Но для какого-то анализа может быть полезно.

timeit так себе вариант, слишком синтетический для очень ограниченных случаев.
Аноним 26/03/21 Птн 09:44:07 1977847515
>>1976538
> если прикрутить нумбу
Можно, в принципе, что угодно прикрутить - вопрос целесообразности. Если речь идёт о каких-то двух несчастных массивах в пределах тысяч элементов, не вижу никакого смысла использовать что-то, кроме sorted() или ".sort". Дальше уже можно задуматься.
Аноним 26/03/21 Птн 09:51:54 1977855516
Аноним 27/03/21 Суб 09:08:12 1978707517
>>1977367
Потому что так удобнее редактировать список и меньше конфликтов в гите. Ещё после тройки надо запятую поставить и будет как надо.
Аноним 10/04/21 Суб 00:59:15 1991505518
Ребят такой вопрос, нужно сделать сайт что то на подобие R-keepera, Что нужно сделать что чтобы можно было заходить сразу под 4 пользователями, Кассир, Оффициант, Администратор, и Бармен. И все работало в режиме реального времени, например если официант сделал заказ - то заказ пришел кассиру сразу, а он пробил заказ на кассе и заказ отправился бармену на готовку например. Можно ли реализовать такое в Django и как такое делать? Через многопоточность? Есть советы что почитать по этому поводу
Настройки X
Ответить в тред X
15000
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов