Главная Юзердоски Каталог Трекер NSFW Настройки

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 409 59 164
Питон-тред №174 /python/ Аноним 08/05/25 Чтв 15:30:48 3449085 1
image 104Кб, 630x630
630x630
Тред, посвящённый языку программирования Питон, #173

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

Анон, вместо того, чтобы без разметки постить код, лучше шарь его через специальные ресурсы:
https://online-python.com/ - листинги и онлайн-запуск
https://ideone.com/ - возможность постить листинги кода и онлайн-запуска, не требует регистрации
https://dumpz.org/ - можно постить листинги, не требует регистрации
https://pastebin.com/ - для листингов, регистрация не обязательна
https://goonlinetools.com/snapshot/share/ - для листингов, без регистрации, но с капчей

#######################################
Вопросы-ответы:
— С чего начать изучать питон?
У питона намного лучше официальная документация, чем у большинства других языков. Есть там и учебное пособие для начинающих: https://docs.python.org/3/tutorial/introduction.html , неофициальный перевод на русский язык: https://digitology.tech/docs/python_3/tutorial/introduction.html (для питона версии 3.8, но разницы почти нет)
https://github.com/yakimka/python_interview_questions - интересная подборка, масса разнообразных тем и вопросов, для продолжающих, всё на русском

— Какие книги считаются лучшими?
На слуху чаще всего Лутц, но там очень много воды. Ещё на слуху Марк Саммерфильд, Эл Свейгарт "Автоматизация рутинных задач с помощью python". Эти книги рекомендуют чаще всего, но книги довольно старые, а питон развивается.

— Есть у кого на примете годный курс лекций по алгоритмам? Формат лекций мне как-то ближе, нежели просто чтение книги.
МФТИшный курс, например, https://www.youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0

— А как учить джангу? Нахожу книги по джанге 1.х, можно их использовать?
У джанги отличные доки (одни из лучших для пистоновских либ, имхо), почитай их для начала. Книгу по джанге можно читать даже для версий 1.x, т.к. принципы остаются теми же. Но лучше хотя бы с версии 2.0, слишком много мелких изменений в базе.

— Какие веб-фреймворки стоит учить в начале двадцатых?
Что бы не говорили, Джанго живее всех живых и умирать не собирается (и Django REST Framework), очень перспективный асинхронный FastAPI, асинхронный AioHTTP. Flask ещё где-то используется, но уже legacy. Прочие фреймворки или у нас экзотика, или это вымирающее легаси как Торнадо.

— В ньюфаг-треде написано, что нужно начинать с SICP, чтобы научиться программировать
Вот, пожалуйста, та же самая программа, но частично переработанная под язык Python: https://www.composingprograms.com/ (нужно знать ангельский или уметь пользоваться переводчиком)

— Что можно почитать/посмотреть по многопоточности/параллелизации в питоне, да и вообще в целом?
Ролик на американском языке про многопоточность и асинхронность, построение своего event loop с нуля, помогает понять, как устроена асинхронность внутри: https://www.youtube.com/watch?v=MCs5OvhV9S4[РАСКРЫТЬ]

— Можно ли на питоне делать мобильные приложения?
Да, смотри на фреймворк Kivy https://en.wikipedia.org/wiki/Kivy_(framework) https://kivy.readthedocs.io но народ на него жалуется

— Как можно без лишней возни ускорить программу на питоне
1) проверь сначала свой код, алгоритмы и структуры данных. Чаще проблема здесь.
2) код можно иногда феерично ускорить, используя JIT (Just-in-Time) компиляцию. Почитай обязательно про модуль numba, он ставится через pip, и альтернативный интерпретатор PyPy.

— Дайте нормальные книжки на русском! Мы, блядь, не в пин##сии живём
Брат, смотри книжки по ссылкам в шапке, там есть и русские. Но помни, без языка ангелов твоя жизнь проходит мимо и ты обречён быть на обочине знаний и технологий.

ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущая шапка: https://goonlinetools.com/snapshot/code/#z0o243n8t8byiy2zptv27
Аноним 08/05/25 Чтв 15:34:23 3449090 2
С предыдущим тредом проебался: >>3375375 (OP)
Аноним 08/05/25 Чтв 16:19:45 3449124 3
maxresdefault.jpg 130Кб, 1280x720
1280x720
Остались еще вкатуны в питон?
Не свитчеры, а именно с нуля первым языком?
Какой у вас план?
Аноним 08/05/25 Чтв 17:19:00 3449156 4
изображение.png 80Кб, 300x168
300x168
Аноним 09/05/25 Птн 02:36:51 3449332 5
>>3449124
>Какой у вас план?
Просто берешь и без задней мысли вкатываешься.
Аноним 09/05/25 Птн 05:45:33 3449354 6
>>3449124
Ну, я. Но мне питон для автотестов нужен. И то не могу сказать, что это прям ПЕРВЫЙ мой язык, 10 лет назад я знал js, правда с того момента больше им не пользовался и не программировал. Но ООП и прочую залупу я уже знаю.
Кстати, охуел как изменилось обучение за эти 10 лет, когда я вкатывался раньше, то было дай бог 2-3 курса на английском по js, и книги с кучей воды и ненужной хуйней. То есть то, что ты сейчас можешь выучить за 2-3 видоса на ютубе растягивалось на 2-3 недели потного дрочева с книгой. И всякие ии - просто пиздец как удобно, я вот раньше ждал, когда мне на дваче ответят почему моя хуйня не работает, а мне отвечали "пошел нахуй" или "ты долбаеб", а теперь нахуй все подробно можно разобрать и пофиксить проблему за 1-2 часа, а не за ебанных 2 месяца глубокого тильта, когда ты просто сидишь и не ебешь что делать вообще + чувствуешь себя говном все это время.
План писать автотесты. Ну, как бы, я за час уже первый тест написал. Мой план просто задрочить это и не ломать голову и вспоминать "а чо там была та", а просто спокойно по лайту писать эти тесты.
Аноним 09/05/25 Птн 05:52:34 3449355 7
>>3449354
Кстати пиздец обидно, ебать бы я щас охуенно жил, если б тогда js не бросил. А бросил я его знаете почему? Потому что ебаная нормисная хуйня меня задрочила до конца, то иди блядь шарагу закончи, то иди блядь вуз закончи, то блядь иди уже работать пора, то блядь ищи новую работу побыстрее, в итоге нахуй как долбаеба палкой гонят, а профита 0 нахуй. Че доебались до меня тогда все эти люди? Гореть им в аду бы, конечно.
Аноним 09/05/25 Птн 10:45:11 3449418 8
>>3449354
Рано нахваливаешь всю эту мишуру, потому что ни тогда, ни сейчас у тебя результата пока что нет.
Вот когда будет, тогда и нахваливай.
Аноним 09/05/25 Птн 11:51:17 3449449 9
>>3449355
даже не представляю, это наверное как купить биткоин и продать чуть дороже, а потом смотреть как он дорожает в разы.

Я не бросил 10 лет назад и вкатился но сейчас один хуй, что ты, что я сидим и в новую хуйню на общих основаниях вкатываемся так как в старой уже работы нет.
09/05/25 Птн 18:37:49 3449689 10
>>3449449
А что не так с работой?
Аноним 09/05/25 Птн 19:27:24 3449709 11
>>3449689
Сейчас один из немногих реальных способов найти работу на питоне это выучить React. Не шучу. Чистых бекендеров требуется очень мало, в основном разные фулстеки (бекенд + МЛ, бекенд + фронтенд).
Аноним 10/05/25 Суб 04:12:32 3449863 12
>>3449085 (OP)
Братья-питухонисты
Поясните за exec
Как правильно запускать в нем код, чтобы он выполнялся как отдельный запущенный скрипт? Пилию свою иде, я понимаю что надо как то передать ему словарь глобалсов идентичный тому какой создаётся при python -m file_name
Но просто сделать import __main__ в функции запуска и передать не канает, разбирать pydeved больно очень
Аноним 11/05/25 Вск 00:42:42 3450693 13
— Мощности бы ещё подкинуть...
— Та не, нормально, у меня всё само — память выделяется динамически, GC сработает, не парься. У меня ж Python, всё своё. О-о... О-о... Вот это рантайм! Как же всё гладко обёрнуто в декораторы! Просто zen! Так уж... О! О! О! Контекстный менеджер, ты моя хорошая, да?
— Да ничё.
— А? Ха-ха-ха! Импортируй меня полностью! О! Я даже GIL уже почувствовал. Почувствовал?
— Потоки не тормози.
— Асинхронно?
— Как тебе нравится — await или multiprocessing.
— О-о! О-о! О-о!
— Почувствуй силу duck typing'а.
— Он даже хрустит, блин, у меня! Интерпретатор прям жарит, как будто Cython прикрутил! О-о! Я давно такого сетапа не видел, чтобы и Flask, и NumPy, и скрипты, и джобы, всё в одной обвязке!
— Главное — не держать в памяти список на миллион строк.
— Ну смотри, хочешь — сбрось всё в генератор. Или пульни через итератор.
— Е-мое… полдня дебажил через pdb, чтобы скрипт крашнулся из-за None в поле?
— А-ха-ха! Конечно! Вот ты мне нравишься — как list comprehension на одной строке! А другие — по for’у пишут, и радуются. А-а! А-а! А-а!
— Столько времени оборачивал в классы, чтобы…
— О-о... да!.. нет!..
— Ещё будешь запускать?
Аноним 11/05/25 Вск 13:31:16 3451002 14
Аноним 11/05/25 Вск 18:05:05 3451277 15
image.png 53Кб, 972x219
972x219
Суп. Вопрос, наверное, простой. Мне тут понадобилось написать примитивненький http-сервис. Вооружился Фласком, запускаю, вижу пик_1. Логи и т.п., плюс примечание, что надо использовать WSGI. Окай. Интернет, поиск, добавляю
> from waitress import serve
Заменяю
> app.run
на
> serve(app, host="0.0.0.0", port=8080)
Окай, предупреждение ушло. Это хорошо. Но есть и минус: логов нет вообще, приложение выполняется молча. Это не то, чего я бы хотел. Интернет, поиск, добавляю
> from logging import getLogger, INFO, info
и перед запуском:
> logger = getLogger("waitress")
> logger.setLevel(INFO)
Теперь при запуске я получаю об этом уведомление
> INFO:waitress:Serving on http://0.0.0.0:8080
При чём я вообще не понимаю, откуда оно берётся, знаю только, что происходит оно в момент вызова
> serve(app, host="0.0.0.0", port=8080)
Но засим -- всё! Если я вручную не делаю print, я не получаю никаких уведомлений об обращениях. Ни info("123"), ни logger.info("123") ни ещё что-то, что попробовал, ничего не выводит параметры на stdout/stderr. А мне бы надо это, типичная история: запросы, откуда пришёл, какой метод, что запросил, что получил, если не 2××, то что именно не устроило и т.п. С уровнями логирования и всем таким. Вроде бы всё должно быть просто, в конце концов это же Питон!
Например, сейчас у меня вначале, даже перед объявлением методов, лежит такой код:
> config: dict[str: str] = {}
> config["brokers"] = getenv("FRANZFRONT_BROKERS", "")
> config["log_level"] = getenv("FRANZFRONT_LOG_LEVEL", "INFO")
> logger = getLogger("waitress")
> logger.setLevel(getLevelNamesMapping()[config["log_level"]])
> for key, value in config.items(): logger.info(f"{key} = {value}")
Но на stdout при этом ничего SUKA не приходит.
Аноним 11/05/25 Вск 19:40:31 3451340 16
>>3451277
можен он в лог файл пишет
Аноним 12/05/25 Пнд 10:40:25 3451767 17
>>3451340
Если я нигде в коде не указал пути и имени для логфайла, то это было бы странно, не находишь?
В общем, я тут откопал плейлист: https://rutube.ru/plst/440890?r=wd
Оказалось, что устройство модуля логгинг вообще пиздец нетривиальное и замороченное и моего беглого заглядывания в доку хватить не может. Пока решил обойтись самой-самой базой, а потом -- покурю внимательнее.

В частности:
Во-первых там создаются отдельные сущности "логер", "фильтр", "обработчик" ("хэндлер"), "форматер" и, возможно, ещё какие-то, до которых я не добрался и от настроек каждой из них зависит где-какие логи окажутся.
Во-вторых просто настроить 4 сущности может быть недостаточно! В частности они используют связи многие-ко-многим: один логер может быть связан с несколькими обработчиками, а один обработчик -- с несколькими логерами и настраивать придётся куда больше всего. Напрмер, повесить разные хендлеры, чтобы по-разному обрабатывать логрекорды с разной важностью.
А в-третьих -- саами логеры выстраиваются в иерархическую структуру и их связь сохраняется! То есть, при определённых настройках, отправленное тобой в лог сообщение может обработаться хэндлером от одного из родительских логеров.

Я допускаю, что это ОЧЕНЬ ГИБКО, и я даже ПОЧТИ оценил, но в текущей задаче у меня на разборы с логированием уйдёт больше кода и времени, чем на саму проблему!
Аноним 12/05/25 Пнд 12:20:24 3451915 18
>>3451767
>Я допускаю, что это ОЧЕНЬ ГИБКО, и я даже ПОЧТИ оценил
держи нас в курсе, неосилятор
Аноним 12/05/25 Пнд 18:13:23 3452399 19
>>3451915
На то, чтобы выплёвывать одни сообщения в stderr, а другие в stdout можно потратить 1 простейшую строку кода как у меня теперь, а можно -- 100-200+ строк злоебучего конфига со сложными связями плюс с переопределённым классом.
Короче иди нахуй, стандартный логгер реально ебанутый и оправдан только если у тебя прямо большой бэйр-метал-хостет стейтфулл и логи идут то в опенсёч, то шлются по смс прямо из приложения (а не собираются штатным функционалом кубера куда-надо в 10 раз проще, в 100 раз фичастее, а главное -- В 1000 РАЗ СТАНДАРТНЕЕ).
Аноним 13/05/25 Втр 19:15:52 3453342 20
Здравствуйте, Питонисты. Столкнулся с такой проблемой. Есть ли способ инициировать работу бота в чате телеграмма через питон без необходимости запуска через команду /start, или хотя бы чтобы тригерился по словам или как то замаскировать эту функцию?
Аноним 13/05/25 Втр 20:49:46 3453401 21
>>3453342
import telebot

bot = telebot.TeleBot(...)
bot.infinity_polling()

ну и дальше уже @bot.message_handler настраиваешь как тебе нужно.
Аноним 13/05/25 Втр 22:22:29 3453489 22
>>3453401
Шо так, шо так ничего не выходит. Сам-то себе я могу написывать, а в других чатах только через /start.
Аноним 13/05/25 Втр 22:24:12 3453495 23
>>3453401
В смысле, могу писать себе в боте без команды /start только через эхо бота, а в других чатах хуй.
Аноним 13/05/25 Втр 22:33:08 3453503 24
>>3453495
При том, что если я выдам ему права администратора в своем чате, то все работает.
Аноним 14/05/25 Срд 12:36:02 3453913 25
>>3453342
Насколько я понимаю, это сделано, чтобы нельзя было пользователей случайно подписать на бота без ведома юзера, а только чтобы он явно запускал, понимая, что далет.
Но по крайней мере ты можешь распространять ссылку прямо со стартом, тогда он будет отправляться сам, да ещё и параметр какой приклеит, например ID реферала:
> https: //t. me/nastyanovelbot? start=1854544298
Аноним 14/05/25 Срд 13:13:23 3453941 26
>>3453913
>чтобы нельзя было пользователей случайно подписать на бота без ведома юзера
Именно так. Я проверил с телефона, компа и эмуля под разными аккаунтами в разных чатах и пришел к выводу, что говной занимаюсь. Это нужно делать прямо с аккаунты через машину.
Говоря откровенно, мне вообще-то спамер нужен для рекламы. Может есть ссылки какие?
Аноним 15/05/25 Чтв 17:12:15 3455324 27
>>3452399
>Короче иди нахуй, стандартный логгер реально ебанутый и оправдан только если у тебя
А он по-умолчанию более-менее сконфигурирован, тебе нyжна всё та же одна строчка кода, конфигурировать надо, если у тебя нестандартные запросы

Зато если вдруг понадобится что-то нестандартное, тебе не придётся переделывать весь код
Аноним 15/05/25 Чтв 19:44:01 3455485 28
1747323356022089.gif 3332Кб, 718x800
718x800
Колеги, жизненно?
Аноним 15/05/25 Чтв 19:49:38 3455491 29
>>3455485
>Видитие, Канбан Канбаныч, с растом деньги будут быстрее двигаться
Аноним 15/05/25 Чтв 20:52:38 3455570 30
Аноним 15/05/25 Чтв 21:18:05 3455576 31
>>3455570
Тебе для каких целей?
Аноним 16/05/25 Птн 00:46:43 3455685 32
>>3455485
Зачем тебе делать миллиард вложенных циклов? Ты ебанутый?
Аноним 16/05/25 Птн 11:15:10 3455866 33
>>3453941
Меня арестовали. Вопрос закрыт.
Аноним 16/05/25 Птн 20:56:00 3456475 34
image.png 65Кб, 451x306
451x306
Аноним 18/05/25 Вск 00:34:23 3457342 35
>>3453342
start это дефолтная тг функция старта бота, обойти ее насколько мне известно нельзя, только можно настроить автосообщение бота перед стартом как приветствие, а туда уже кинуть хендлер клавиатуры и дальше по плану
Аноним 18/05/25 Вск 00:36:03 3457343 36
>>3455485
похуй абсолютно, пока вакансии есть похуй, тем более следим дальше за отключением мьютекса , грядет новая эра питона
Аноним 18/05/25 Вск 10:58:28 3457473 37
>>3457343
>грядет новая эра питона
Ты про что?
Аноним 19/05/25 Пнд 02:15:29 3457949 38
Делаю чат бот для работы по документации. Юзеры настолько отупели что не могут осилить 20 страниц текста.

Какой способ написать бота для тг (это без проблем) и подвязать ИИ чтоб отвечал по заранее распаршенному тексту?

Нашел

G4f, там типа можно задать вопрос ИИ, сказав , смари вот текст, отвечай по нему. Далее переключить ввод на тг-юзера.


Agno. Создаёшь агента, подгружаешь ему свой текст как knowledge base, далее переключаешь на юзера.

Это в теории. Кто реально пробовал?
Аноним 19/05/25 Пнд 19:34:42 3458270 39
16538168828740.jpg 286Кб, 810x1080
810x1080
>>3457343
>мьютекса
Что такое мьютекс.
Аноним 19/05/25 Пнд 19:37:22 3458271 40
Гиркич.mp4 998Кб, 848x432, 00:00:07
848x432
>>3457343
>грядет новая эра питона
То есть, лет через 6-9 (когда GIL удалят и из флагов, а его удалят!) приличный кусок маленьких проектов, которые авторы писали для себя, и выложили в сеть по доброте душевной, превратятся в тыкву, если тысячи людей за эти 6 лет не потратят дополнительный кусок своей жизни на переписывание проектов, которые им давно не интересны.

В то же время, мы понимаем, что если бы 15 лет назад (или когда там змея родилась?) послушали инженеров, а не маркетологов, усиленно напирающих на популярные, а не полезные фичи, то через 8 лет мы бы оказались в точке не хуже, чем та, где GIL сначала разработали, потратив кучу ресурсов, а потом удалили, потратив еще одну кучу.

Интересно, если суммировать все это время, сколько человеческих жизней, получается, убило одно недальновидное решение?
Аноним 19/05/25 Пнд 21:27:19 3458307 41
>>3458271
>лет через 6-9
Окончательно сдохнет х86говнище и один хуй придется весь код переписывать.
Аноним 19/05/25 Пнд 22:45:01 3458328 42
>>3458271
Зачем ты скопировал комент с петухабра?
Аноним 20/05/25 Втр 09:31:41 3458467 43
Ананасы, а есть тут кто работает data/DWH engineer или просто аналитиком данных? Хочу перекатиться из системной аналитики на подобное направление. Из прикладных навыков есть SQL на среднем уровне, в целом базово знаю питон.
Какую часть питона лучше вкатывать? Попсу типа pandas либо сейчас есть что-то ещё актуальное в этом направлении? Мб есть тут кто уже успешно работающий, был бы благодарен ему за совет.
Аноним 20/05/25 Втр 14:40:17 3458675 44
image.png 752Кб, 800x1020
800x1020
Аноним 20/05/25 Втр 14:49:00 3458686 45
>>3458675
А ML это до сих пор хайповая тема?
Аноним 20/05/25 Втр 14:58:13 3458700 46
CoolFemboyFacts.mp4 906Кб, 432x432, 00:00:10
432x432
>>3458686
Тут специфически. Есть типы которые используют для машинного обучения готовые инструменты и библитеки готовые в том же питоне, особо не вникая не в матанализ ни в прочую хуйню для ботанов.
А есть типы с высшим образованием которые эти инструменты разрабатывают. Там да, дохуя дефицит кадров требование к матбазе и оч большие зарплаты.
Но твое резюме даже не посмотрят если нет вышки.
Аноним 20/05/25 Втр 15:39:54 3458749 47
>>3458700
>А есть типы с высшим образованием которые эти инструменты разрабатывают. Там да, дохуя дефицит кадров требование к матбазе и оч большие зарплаты.
Вот. У меня просто есть ощущение, что ML сейчас остался во всяком крупняке, где условно занимаются раскаткой и обучением собственных ИИ-моделей и всё в таком духе.
Аноним 22/05/25 Чтв 10:57:00 3460050 48
Дайте какие-нибудь сценарии использования FastAPI, хочу пощупать, но не знаю, что с этим делать.
Аноним 22/05/25 Чтв 12:23:01 3460106 49
>>3460050
Напиши имадж борду, че ты как не как двачер? Тут постоянно начинают замену двачу писать то на луа, то на расте и незаметно уходят в закат, после того как не могут решить где хранить картинки с постами...
Аноним 25/05/25 Вск 02:19:22 3461901 50
>>3460106
>после того как не могут решить где хранить картинки с постами...
В sqlite в base64.
Аноним 25/05/25 Вск 12:11:38 3462047 51
>>3455485
Но ведь питун это высокоуровневая обертка для Си, там под капотом всё на ПРАВИЛЬНОМ языке написано. Если питонический код медленно работает, значит ты опять ни хуя не понял где горлышко бутылки.
Аноним 25/05/25 Вск 12:53:05 3462075 52
>>3462047
>под капотом всё
А толку, если рулит макака с гранатой в жопе.
Аноним 29/05/25 Чтв 14:26:24 3465104 53
>>3460106
>не могут решить где хранить картинки с постами
А чем их православный S3 не устраивает не знаешь?
Аноним 29/05/25 Чтв 14:27:15 3465106 54
>>3462075
>рулит макака с гранатой в жопе
У неё и ассемблер будет тормозить. Если хотя бы поедет, конечно.
Аноним 29/05/25 Чтв 14:53:19 3465114 55
image.png 107Кб, 1171x697
1171x697
Суп. А подскажите, как правильно написать тайпхинты в этом случае?
> Type "str | list[str]" is not assignable to type "list[str]"
У меня вэлью дикта может быть строкой, а может быть массивом строк, почему массив строк не может быть передан там, где ждут массив строк?
Скрипт работает, с логикой всё норм.
Аноним 29/05/25 Чтв 15:23:23 3465144 56
>>3465114
> , почему массив строк не может быть передан там, где ждут массив строк?
Он может. Только вот ошибка говорит про другое.
Ты в качестве аргумента, тип которого должен быть строго list[str], пытаешься подсунуть выражение, тип которого либо str, либо list[str]. Вот тебе и пишут, что если тип этого выражения внезапно окажется str, то такой вызов будет невалидным.
Аноним 29/05/25 Чтв 16:39:12 3465231 57
>>3465144
А как это правильно оформить?
Или, если это правильно, то почему Pylance ругается?
Аноним 29/05/25 Чтв 19:44:09 3465362 58
>>3465231
(fldr: str, cmnd: str | list[str]) -> list[str]:
Аноним 29/05/25 Чтв 21:45:08 3465425 59
image.png 66Кб, 1366x768
1366x768
Подскажите, кто знает, не знаю, куда написать, нужен быстрый ответ. Через месяц сдавать экзамены, нужно научиться решать задание по информатике, установил Sublime Text, а тут такая хуйня пикрелейтед, когда пытаюсь на питоне писать. Короче, куча иероглифов вместо результата. Пользуюсь Виндовс 8.1. Как исправить?
Аноним 29/05/25 Чтв 23:14:33 3465484 60
>>3465425
вскод для красивой подсветки буковок + запуск скрипта из консоли. Большего тебе не надо для огэ твоего или как его там.
Бля, а я ведь сдавал в последний год когда код ещё писали на листочке, выпуск 2020
Аноним 30/05/25 Птн 13:12:36 3465832 61
>>3465362
>cmnd: str | list[str]
Финт, конечно, понятный. Но там str впихнуть можно только через split()… Пока что так и сделал: заменил "str | list[str]" в дикте на "str" и добавил split() туда, где он используется. Но это какая-то странная хуйня.

>>3465425
Есть правильный способ, есть полу-правильный способ и есть то, что подойдёт тебе.
Правильный способ: ставь Линукс и не выёбывайся, венда не предназначена для работы от слова вообще. Ставь хоть на виртуалку, хоть на некро-пк/ноут, оставшийся от прадедушки, куда и как угодно. Если только для Питона, то бери серверные сборки без гуя, тебе кроме консоли ничего не понадобится. Бонус: у многих облачных провайдеров можно разжится бесплатной виртуалкой с линуксом (придётся платить только несколько рублей в месяц за публичный IP) и заходить на неё по ssh. Многие IDE умеют исполняться на ремоут-хостах по ssh.
Полу-правильный способ: ставь WSL и работай в нём. Это почти линукс, затянутый внутрь венды. Лучше, чем ничего.
Подойдёт тебе: запускайся не в этой консоли. Где точно — зависит от того, что из имеющегося на твоём компе нормально работает с Unicode. Можешь попробовать IDLE, CMD, сам PS в отдельном окне или поставить, например, git-bash или Б-гомерзкую MobaXterm.
Аноним 30/05/25 Птн 13:16:33 3465836 62
>>3465425
Попробуй переименовать файл во что-нибудь без пробелов и кавычек. Только английские буквы и цифры
Аноним 30/05/25 Птн 13:28:51 3465851 63
>>3465832
> Пока что так и сделал: заменил "str | list[str]" в дикте на "str"
Охуенно. Но при этом значения в дикте у тебя как были и str и list[str], так и остались? И нахуй тебе вообще эти тайпхинты, если они неверные?

> split
При чем тут split вообще? Ты фактически просто решил отдельные строки сделать списками из одной строки. В отрыве от твоего говноскрипта - это вполне себе нормальное решение, только пишется оно как [str]. Нахуя для этого split вызывать, я в душе не ебу. Ты походу вайбкодер какой-то.

> Но там str впихнуть можно только через split()
Где там?
Аноним 30/05/25 Птн 14:58:26 3465955 64
>>3465425
На Русском Питоне пиши, жертва ЕГЭ.
Аноним 31/05/25 Суб 00:51:48 3466386 65
Screenshot20250[...].jpg 174Кб, 720x1310
720x1310
Купил бумажный вариант Изучаем Python Марка Лутца 1 том на русском языке. Взял не разобравшись 5-ое издание, а на данный момент уже вышло 6-ое, но пока на английском, а я в нём нихуя хуа. Сильно проебался? 5-ое издание вроде питон 3.5 разбирает, а сейчас уже и 3.11 вышел.
Спросил дипсик, говорит похуй, учи, только некоторые темы отдельно уточняй, а так 80% одинаковые. На скрине темы, которые по мнению дипсика будут изменены в 1 томе.
Прав ли он? Стоит ли ебать себе голову или серьёзные изменения будут только со второго тома?
Мб взять что-то актуальнее, ведь как везде пишут Питон - активно обновляющийся язык
Аноним 31/05/25 Суб 02:31:25 3466405 66
>>3466386
Сначала купил, потом подумал. Хороший гой.
Аноним 31/05/25 Суб 09:31:09 3466467 67
>>3466386
Зачем это учить и читать вообще, когда у тебя есть дипсик, который в любой момент объяснит как писать правильно? Ты просто пишешь код, а в непонятный момент спрашиваешь у нейронки. Это самый эффектинвый способ обучения. Талмуды были нужны 50 лет назад, когда их заучивали, т.к. в случае чего информацию было взять неоткуда, кроме библиотеки. Сейчас у тебя все знания мира в телефоне даже без поиска.
Аноним 31/05/25 Суб 09:31:19 3466468 68
>>3466386
f строки мастхев
тайп хинты упростились
pathlib изучить отдельно не проблема
датаклассы все еще юзаются (или Pydantic, что очень похоже)
морж только на легаси
остальное отдельно погугли, в целом книга вполне хороша
Аноним 31/05/25 Суб 14:49:26 3466603 69
Аноним 31/05/25 Суб 16:19:31 3466642 70
>>3465114
Делай датакласс, неймдтюпл или тайпддикт и не еби себе мозги.
Аноним 31/05/25 Суб 16:20:03 3466645 71
>>3465425
Поставь вскод и не еби себе мозги.
Аноним 31/05/25 Суб 16:21:21 3466647 72
>>3466386
Во всем прав, а Лутц переоценен.
Аноним 31/05/25 Суб 19:15:47 3466738 73
>>3465851
> в дикте у тебя как были и str и list[str], так и остались?
Нет, там теперь str. Примерно так, в дикте было:
> "Command": ["managed-postgresql", "cluster"],
Стало:
> "Command": "managed-postgresql cluster",
А там, где используется значение (в виде не строки, а листа строк) — я делаю её сплит. Так по крайней мере заявленные хинты соответствуют реальности, а не как предлагал >>3465362, у которого выходило, что метод готов прохавать строку, хотя тогда она вызвала бы ошибку. Теперь оно готово принимать строки, самостоятельно приводя их к правильному листу.

>Ты фактически просто решил отдельные строки сделать списками из одной строки
Нет. В get_list_of_resources_in_folder ждало список строк, примерно так:
> full_command: list[str] = ["yc", "list", "--folder-name", folder, "--format=json"]
> full_command[1:1] = sub_command
а теперь ждёт строку и перед использованием приводит её к списку строк. Вот так:
> full_command: list[str] = "yc {sub_command} list --folder-name {folder} --format=json".format(sub_command=sub_command, folder=folder).split()
А после этого вызывается "subprocess.run(full_command, …)", которому первым параметром надо именно лист строк.

> Ты походу вайбкодер какой-то.
Только сейчас узнал, что это и нет, наоборот я уже несколько человек обоссал за то, что они мне подсовывали галюны нейросетей. Программирование это, конечно, не мой основной профиль, но когда я что-то делаю — я стараюсь сделать правильно, потому и прислушваюсь ко всем замечаниям линтеров и гайдлайнов, чтобы разобраться, почему именно так.
Аноним 31/05/25 Суб 19:41:56 3466742 74
>>3466386
>сейчас уже и 3.11 вышел
3.13.3 есть, а скоро выйдут новые, тебе так и так с каждой версией разбираться с изменениями и новыми возможностями. Так что можешь фундамент получить и по условно-старой книге (но не 4 издание, там было слишком много про 2.7, которое сильно отличалось, а теперь — окончательно депрекейтед), а потом просто почитаешь пепы с изменениями.

>>3466467
>Зачем это учить и читать вообще,
Правильно, делай без понимания, главное просто делай, однажды нейронка угадает, как надо.
Очень напоминает вот эту шутку:
https://sortvisualizer.com/bogosort/

>>3466647
Есть два полярных подхода, на одном из них справочники типа таких: https://goalkicker.com/ , тут только важное, минимум постороннего текста. А на другом — Лутц, в котором идея будет разжёвываться и повторяться, зато запомнить 10% прочитанного ≡ выучить справочник наизусть. Для меня Лутц это идейный наследник автора лучшего в моей жизни учебника по физике — Лансберга.
Аноним 31/05/25 Суб 19:45:18 3466743 75
>>3460106
> , после того как не могут решить где хранить картинки с постами...
Ничего подобного у меня всё просто.
C:/document and setting/Матвей_2015/изображения/двач
Аноним 31/05/25 Суб 19:56:04 3466750 76
>>3466743
Так вопрос был не где товарищу майору хранить изображения с двача, а где на сервере хранить для дваче лайк борды
Аноним 01/06/25 Вск 15:01:34 3467107 77
Вас не достало что в питоне миллиард инструментов с пересекающимися фичами, но не полность, так что нельзя выбрать один.
pyright - хорошая интеграции с lsp, поддерживает недокументированные возможноти lsp которые работают только в vscode (тормоза на ноде)
python-language-server - интеграция всего в lsp от rope до mypy (тормоза на питоне)
pylyzer автор забросил недопилив толком (работал быстро на расте)
ty (на расте, еще не рабочий, может тоже забросят)
ruff в основном линтинг и форматирование, но имеет lsp интеграцию (работает быстро на расте, но сосет у pylint по анализу проекта)
pylint гипертормоза и считает что у моделей sqlachemy слишком мало методов
isort - сортирует импорты (ruff тоже могет, но сосет у isort)
flake8, pyflake, black и пр полудохлое
01/06/25 Вск 23:36:46 3467347 78
Аноним 02/06/25 Пнд 05:40:38 3467390 79
15035163708880.png 785Кб, 658x747
658x747
Аноним 02/06/25 Пнд 11:27:10 3467502 80
Аноним 02/06/25 Пнд 11:37:23 3467511 81
>>3467502
это проприетарный vscode lsp клиент для pyright от майкрософта
Аноним 02/06/25 Пнд 11:42:21 3467515 82
>>3467511
Мошный опенсорсный python-lsp-server, но он неюзабельный из-за питонячих тормозов + еще проверка типов хуже по сравнению с pyright
Аноним 02/06/25 Пнд 21:49:14 3467938 83
>>3467511
>это проприетарный vscode lsp клиент для pyright от майкрософта
Минусы?
Аноним 03/06/25 Втр 00:14:37 3468020 84
>>3457949
Бамп. Есть тут ИИ внедряторы?
Аноним 03/06/25 Втр 06:31:13 3468083 85
Аноним 03/06/25 Втр 12:13:54 3468224 86
Пацаны, нужно изучить базу по питону (пельменные, функции, супер-базово ООП и тд) для автотестов.

Есть какой-то курс на степике хороший? Или книжка?
И как вообще вариант в дипсике написать промпт, чтобы он составил план для меня и всё пояснял по плану?
Аноним 03/06/25 Втр 12:25:57 3468232 87
>>3468224

Вот такой промпт ему составил. Буду по его плану двигаться и уточнять всё.

"Ты — гуру Python с уровнем знаний создателя языка. Ты разработаешь интенсивный, структурированный план изучения Python на 12 недель с акцентом на:

Автоматизацию тестирования (pytest, unittest, Selenium, API-тестирование).

Работу с базами данных (SQL, SQLite, PostgreSQL, ORM — SQLAlchemy, Django ORM).

Парсеры (BeautifulSoup, Scrapy, requests, aiohttp).

Чат-боты (Telegram Bot API, Discord.py, обработка асинхронности).

Основы Django (модели, views, REST с DRF).

Git, GitHub/GitLab (ветвление, CI/CD, работа в команде).

Условия:

4 часа в день (пн–пт), 6 часов в выходные.

Практико-ориентированный подход: 60% кода, 30% теории, 10% ревью/оптимизация.

Каждая неделя должна заканчиваться мини-проектом по теме.

Постепенное усложнение: от основ Python до сложных связок (например, парсер + БД + бот).

Формат плана:

Четкие темы по дням.

Рекомендуемые ресурсы (документация, книги, туториалы).

Примеры задач для закрепления.

Советы по отладке и лучшим практикам.

Начни план с базового синтаксиса (1 неделя), но сразу включай примеры из целевых областей (например, тесты для простых функций). К 6-й неделе — углубление в автоматизацию, к 10-й — интеграция всех навыков (например, бот, который парсит данные и сохраняет в БД). Последние 2 недели — работа над комплексным проектом (например, тестовый фреймворк + CI).

Дай рекомендации по IDE (PyCharm, VS Code), инструментам (Docker, Postman) и лайфхакам для запоминания. Упомяни, как избегать выгорания."
Аноним 03/06/25 Втр 13:08:10 3468257 88
>>3468232
>>3468232
>Ты — гуру Python с уровнем знаний создателя языка
>Состать мне план для полного нуба с акцентом на элементарные навыки на популярных фреймворках
Аноним 03/06/25 Втр 13:43:57 3468280 89
Аноним 03/06/25 Втр 13:59:33 3468293 90
изображение.png 150Кб, 897x783
897x783
>>3468232
Хуйню нереалистичную задумал. У тебя нет ресурса чтобы выучить и скрэпи, и селениум, и гитлаб с докером. Нейросети магическим образом тебе времени не добавят. Используй 20/80 промпт. Закрывай только важные дыры.
Аноним 03/06/25 Втр 14:19:00 3468305 91
image.png 57Кб, 692x715
692x715
image.png 41Кб, 608x599
608x599
image.png 44Кб, 636x651
636x651
>>3468293
Понял.
Но дипсик всё равно задрачивает с докером. И выдаёт просто сухой текст, типа:
>REST API-тестирование (requests)
>Многие проекты требуют проверки API.
Пока я это всё буду у него спрашивать и расспрашивать, пройдёт уйма времени. Я в целом изи схватываю всё. В ВУЗе в многопоточность мог на ++, но к 29 годам щас всё нахуй забыл и хочется с базы базовой начать. А хуйсик расписал базу как
> Базовый синтаксис, структуры данных (list, dict, set), условия, циклы, функции. Без этого невозможно писать автотесты.
Нет бы сразу все по пунктам дал.

Короче по твоему принципу буду разбираться, в общем. Спасибо тебе!
Аноним 03/06/25 Втр 14:38:21 3468309 92
>>3468083
>проприетарный
Во-первых это точно минус? Почему?
Во-вторых:
> https://github.com/microsoft/pylance-release
> CC-BY-4.0 license
Ты уверен, что правильно понимаешь смысл слова "проприетарный"? Что оно для тебя значит? Опиши, пожалуйста.
А то окажется, что приблизительно всё ПО в мире проприетарное.
Аноним 03/06/25 Втр 14:43:07 3468313 93
Аноним 03/06/25 Втр 14:45:11 3468315 94
>>3468309
>это точно минус?
Конечно. Я вскод не использую же, поэтому не могу ни использовать пиланс, ни адаптировать его под свой кейс
Аноним 03/06/25 Втр 14:48:07 3468317 95
Аноним 03/06/25 Втр 15:31:11 3468358 96
>>3468224
Придумай проект простенький да крути его с подсказками ии. Я себе тг бота сделал с напоминалками, алертами и поиском по своему хранилищу различных файлов, поскольку уже заебался руками по папкам скрипты и записи искать. Это чисто твой проект и насилуй его на сколько фантазии хватит. За месяц и ооп, и основные библиотеки и даже гит с логированием освоил.
Аноним 03/06/25 Втр 15:43:46 3468368 97
>>3468358
Тоже рассматривал этот вариант. Именно чат бота, а потом уже автотест на него.

Только вот, допустим, как я узнаю о множествах (set) в питоне при таком подходе?

Мне тупо надо питон для того, чтобы потом автотестером пойти, ручником заебало + потолок в 180-200к в основном на рынке.

Я сейчас с дипсиком всю базу пройду за пару дней (типы данных, преобразование, функции базово и т.д.). потом буду пилить чат-бота и тесты на него... план такой, в общем.
Аноним 03/06/25 Втр 16:51:05 3468422 98
изображение.png 286Кб, 1920x1080
1920x1080
как я заебался откуда он sh 2.2 подхватывает блядь
все стер нахуй
Аноним 03/06/25 Втр 19:09:45 3468525 99
Аноним 04/06/25 Срд 14:15:10 3469198 100
>>3468305
Изучи базовый синтаксис
ООП
Всякие обработки ошибок в блоках try/except
Логирование
Паттерны проектирования автотестов
Принципы программирования

По фреймворкам
Pytest - база для автотестов, изучить надо подробно его возможности, маркеры, параметризацию, фикстуры, как тесты запараллелить через xdist какой-нибудь
Selenium / playwright для UI тестов (playwright в наше время выглядит интереснее)
requests / httpx - для rest аpi (лучше httpx, т.к. на нем еще асинхронщина есть)
grpc - либа для grpc протокола
SQLAlchemy для БД (там тоже есть асинхронщина, для синхронного пг какого-нибудь psycorg2)
Allure для отчетов

докер нужен супербазово, как и ci/cd понимание (по типу набросать yaml файл для gitlab)
Все остальное, что тебе там написало выкинь нахуй, там большая часть либ для разработки, в автотестах тебе понадобятся они примерно никогда
Аноним 04/06/25 Срд 14:40:02 3469248 101
Аноним 04/06/25 Срд 18:09:19 3469443 102
>>3469198
А нахуя ему grpc в одном ряду с основами? grpc апи разве такая распространённая штука уже, что прям с начинающих тестеров требуют? Не быкую, интересуюсь просто, с остальным согласен.
Аноним 05/06/25 Чтв 10:44:34 3469948 103
>>3469443
gprc как дополнение к основному, да, ты прав анонче
Аноним 06/06/25 Птн 21:06:27 3471418 104
>>3469443
>grpc апи разве такая распространённая штука уже
Я лично вижу часто. Конечно, не так часто, как REST, но если что-то предоставляет публичное API, то там очень часто REST+gRPC. Так что лишним не будет. В конце концов, зная REST понять gRPC не так уж сложно мягко говоря.
Аноним 07/06/25 Суб 04:10:01 3471518 105
image.png 10Кб, 776x166
776x166
Как вам?
Аноним 07/06/25 Суб 07:25:20 3471537 106
Сап, у кого-нибудь есть ссылка на документацию Channels на русском? На django.fun устаревшая версия документации.
Аноним 07/06/25 Суб 10:09:16 3471568 107
image.png 92Кб, 1254x595
1254x595
Аноним 07/06/25 Суб 10:41:05 3471573 108
>>3471568
two_number это самое смешное
Аноним 07/06/25 Суб 18:55:10 3471881 109
Аноним 07/06/25 Суб 21:17:05 3471950 110
кто-нибудь встречал софт для нормального скачивания .whl файлов, а не как мудацкий pip download или pip-downloader?
чтобы я сказал ему пакет, и софт скачал этот пакет и все его зависимости в текущую папку, а не в ~/.cache/pip/хуй/пизда/джигурда/a/b/c/2/2/8/dsfdskjfhdskjfhsdhfdskhfkjdshkdshfdsfs.bin
Аноним 07/06/25 Суб 21:19:01 3471951 111
ну и чтобы оно докачку поддерживало, а не как этот гейский кусок дерьма с названием pip

Downloading torch-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl (821.0 MB)
━━━━━━━━━━━╸━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 244.6/821.0 MB 1.6 MB/s eta 0:06:02
WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (244.6 MB/821.0 MB, attempt 1)
Resuming download torch-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl (244.6 MB/821.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━╺━━━━━━━━━━━━━ 533.7/821.0 MB 1.6 MB/s eta 0:03:03
WARNING: Connection timed out while downloading.
WARNING: Attempting to resume incomplete download (533.7 MB/821.0 MB, attempt 2)
Resuming download torch-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl (533.7 MB/821.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 819.2/821.0 MB 2.1 MB/s eta 0:00:01
WARNING: Connection timed out while downloading.

мать ебал того кто придумал наговнокодить софт для скачивания без поддержки докачки
Аноним 07/06/25 Суб 22:51:49 3471970 112
>>3471951
В легасистане через мобильный тырнет работаешь?
Аноним 07/06/25 Суб 23:05:37 3471973 113
>>3471970
релоцировался в киргизию
Аноним 07/06/25 Суб 23:11:13 3471976 114
>>3471973
Иши крвартиру с нормальным тырнетом
Аноним 08/06/25 Вск 09:25:47 3472048 115
блядь какая же говна этот ваш пидон
https://github.com/pypa/pip/issues/4796
> [Improvement] Pip could resume download package at halfway the connection is poor
> ichard26 closed this as completedin #12991 on Apr 12, 2025
смотрю #12991
> https://github.com/pypa/pip/pull/12991
они добавили опцию --resume-retries ахах))00)0 тип если на последней секунде загрузка обрывается
>>3471951
> Resuming download torch-2.7.1-cp313-cp313-manylinux_2_28_x86_64.whl (533.7 MB/821.0 MB)
> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ 819.2/821.0 MB 2.1 MB/s eta 0:00:01
> WARNING: Connection timed out while downloading.
то пип выкачивает файл заново)0)) сука мать ебал этих питонистов
Аноним 08/06/25 Вск 09:50:38 3472055 116
>>3472048
Чел. Какой пидон тебе. Ты с твоим мобильным легасистанским интернетом не сможешь гитом пользоватся. Ты просто не сможешь большую репу склонировать. В гите просто не может быть докачки при клонировании..

Попробуй https://github.com/astral-sh/uv
Аноним 08/06/25 Вск 10:01:23 3472060 117
>>3472055
потому что гит такие же чулочники писали, как и пидон.
любой нормальный софт умеет в докачку
Аноним 08/06/25 Вск 10:16:31 3472063 118
>>3472055
> Попробуй https://github.com/astral-sh/uv

работает кривовато, но намного лучше, чем дефолтный pip, спасибо!
случайно не знаешь, как заставить его качать архивы .whl вместо отдельных уже распакованных файлов?
> $ uv --cache-dir ./tmp pip download bitsandbytes
> error: unrecognized subcommand 'download'
если сделать uw pip sync requirements.txt, то какие-то пакеты он качает в виде .whl, а какие-то уже распакованные папки, мне хотелось бы все пакеты в виде .whl
Аноним 08/06/25 Вск 10:26:45 3472066 119
>>3472063
В КР все нейронки доступны чел. Хоть какая-то польза
Аноним 08/06/25 Вск 11:11:06 3472070 120
1749370265828.jpg 132Кб, 588x604
588x604
Как думаете, ML это пиздец сложная ветка развития? При условии движения внутри компании.
Аноним 08/06/25 Вск 12:59:36 3472114 121
Питон говно, уже 2 года свалил на c#, ЗП увелечил в полтора раза.

Всем спасибо
Аноним 09/06/25 Пнд 11:21:05 3472683 122
Аноним 09/06/25 Пнд 11:29:31 3472688 123
>>3472070
Всю СЛОЖНУЮ часть за тебя уже сделали. Тебе осталось научиться пользоваться инструментами.
Аноним 09/06/25 Пнд 11:36:02 3472693 124
>>3472688
Сычев, всю сложную работу за тебя уже сделали, тебе осталось только сделать хттп ручку для скоринга клиентов Азино666.
Аноним 09/06/25 Пнд 12:29:48 3472731 125
>>3472693
Но ведь это реально так и есть. По сравнению с той математикой, что уже придумана, скоринг это уже прост как калькулятор.
А учиться так и так нужно. Даже есть пойдёшь бухгалтером, тебе надо освоить предметную область хоть немного и научиться в 1с, зато все действия в эске в итоге делаются двумя педалями.
Аноним 09/06/25 Пнд 21:01:29 3473118 126
Аноним 10/06/25 Втр 10:26:46 3473326 127
>>3473118
Конечно, пидор, иначе бы писал на жабе.
Или на свифте, если гей.
Аноним 10/06/25 Втр 11:56:24 3473408 128
я внезапно осознал всю мудрость дидов с их Version Control System в виде разных папочек
version_1.0
version_1.1
version_1.1_fix
version_1.2
version_2.0
version_2.0_fix
version_2.0_fix2
Новая папка
Новая папка (1)
пориджи с их venv просто переизобрели разные папочки лол
Аноним 10/06/25 Втр 12:14:56 3473419 129
>>3473408
Как тебя папочка спасет от замусоривания site-packages разными версиями зависимостей? При том pip сам по себе не умеет удалять зависимости зависимостей.

Venv это именно окружение, а не контроль файлов твоего проекта
Аноним 10/06/25 Втр 12:16:17 3473423 130
>>3473419
так venv это и есть локальный site-packages в текущей папке ./ вместо дефолтного ~/.cache/pip/site-packages/
Аноним 10/06/25 Втр 12:17:12 3473425 131
или... так падажжи ёбана, то есть пориджи чулочники даже до мудрости дидов с разными папочками не дошли?
ебать ор
Аноним 10/06/25 Втр 12:19:53 3473428 132
>>3473408
>>3473408
>Version Control System в виде разных папочек
Ну такое. Пока я не узнал о существовании гита это было норм, сука, нам даже в универе на первом курсе (в 2003м) предодша по программированию советовала сохранять разные версии кода в отдельных папочках!
>venv
Но ведь виэнв нужен для другого. А именно только для дебага, к рабочему продукту он отношения не имеет потому, что Docker.
И вообще по дефолту виэнв прописывает фул-пас и его уже нельзя просто так скопировать.
Аноним 10/06/25 Втр 12:22:46 3473431 133
>>3473423
1) Ну о том и речь. Если ты будешь
Новая папка
Новая папка (1)
ты так же можешь все зависимости срать в одну кучу куда нибудь ~/.cache/pip/site-packages/
2) venv похуй где у тебя сайт пакеджес. Оно не обязательно у тебя в папке с кодом. Всякие pipenv например автоматически создают для тебя твои venv в отдельной .virtualenvs/ директории, когда ты делаешь pipenv install numpy
Аноним 10/06/25 Втр 23:47:10 3473863 134
Аноним 10/06/25 Втр 23:52:09 3473864 135
Ребят, кто начинает изучать питон? Мне одному скучно
Аноним 11/06/25 Срд 03:28:23 3473912 136
Аноним 11/06/25 Срд 13:05:01 3474102 137
>>3473425
реально не дошли, анон >>3473431 прав, пидорский чулочный пидон всё равно срёт в ~/.cache/pip/site-packages вместо локальной папки внутри venv
какое же дерьмо этот пидон я хуею
Аноним 11/06/25 Срд 13:14:57 3474121 138
>>3474102
source .venv/bin/activate
.venv замени на свою папку созданнию модулем venv
Аноним 11/06/25 Срд 13:24:17 3474137 139
>>3474121
pip качает всё в локальную папку, а потом распаковывает внутрь venv, а мне не нужны десятки гигабайт говна в ~/.cache
Аноним 11/06/25 Срд 13:47:24 3474162 140
>>3474137
> мне не нужны десятки гигабайт говна в ~/.cache
Но ведь ~/.cache буквально предназначен для десятков гигабайтов говна. Если бы оно вместо этого сохранялось в /tmp было бы ровно тоже самое, только перекачивать, возможно, пришлось бы чуть чаще, если ребутаешься регулярно.
Аноним 13/06/25 Птн 04:08:35 3475340 141
> ПОЧЕМУ В ДИРЕКТОРИИ КЭШ СОДЕРЖАТСЯ КЭШИРОВАННЫЕ ДАННЫЕ??????? ТУПОЙ ПИТОН!
Самый смешной тред на этой доске.
Аноним 13/06/25 Птн 11:43:07 3475413 142
>>3475340
пчел я хочу чтобы при создании "виртуального окружения" всё питонье говно складировалось именно внутри этой конкретной папки, а не срало мне в ~/, в /tmp, в небо, в аллаха.
Аноним 13/06/25 Птн 14:04:24 3475468 143
>>3475413
Проверил у себя.
ОКАЗЫВАЕТСЯ, МНЕ В ~/.cache/ НАСРАЛИ:
Абсолютно все браузеры (больше всех). Абсолютно все редакторы (видео, фото, текстовые), PIP, несколько эмуляторов терминала, игры, видеоплееры, скриншотилки и ещё, наверное, сотня программ из категории "разное". Пиздец! Как они все посмели хранить кэш в папке для кэша?
Маня, ты обосралась, просто признай это. Разрешаю умолкнуть без извинений.
Аноним 13/06/25 Птн 14:17:03 3475470 144
>>3475413
И да, для совсем уже дегенератов:
> ~ ➤ pip --help | grep cache 0
> cache Inspect and manage pip's wheel cache.
> --cache-dir <dir> Store the cache data in <dir>.
> --no-cache-dir Disable the cache.
Аноним 13/06/25 Птн 15:14:35 3475496 145
Аноним 13/06/25 Птн 20:27:09 3475652 146
1749835629156.mp4 1132Кб, 576x1024, 00:00:10
576x1024
Какие у вас зарплаты? Чем занимаетесь?

Заметил, что многие к питону довольно предвзято относятся, дескать из-за простоты в освоении он потерял очки престижа. Хотя по факту вакансий на питон в разы больше. Но вопрос в другом, какое направление вы выбрали для дальнейшего развития и на чем выбор основывался?
Аноним 13/06/25 Птн 22:28:36 3475722 147
>>3475652
>из-за простоты в освоении

когда что-нибудь асинхронное многопоточное напишешь и оно не будет зависать тогда и приходи
Аноним 14/06/25 Суб 00:06:38 3475738 148
>>3475413
Ты ебанутый? Где ты видел, чтобы кэш хранился в том же месте, где и то, что мы кэшируем? В чем тогда смысл кэша?
Аноним 14/06/25 Суб 13:22:30 3475909 149
Анонс, подскажите что можно почитать человеку, которому питон нужен не для вката, а для работы. Задача такая: имеется набор данных, нужно построить линейные уравнения регрессии. Короче говоря, нужно на огромном наборе данных найти уравнение, которые позволить прогнозировать конечные свойства.
Аноним 14/06/25 Суб 13:24:30 3475910 150
>>3475909
Я бы уточнил, с чего вообще начать.
Аноним 14/06/25 Суб 14:25:02 3475937 151
>>3475722
а зачем писать многопоточку на петухе?
асинхронщина вообще по мнению многих крутанов в питоне считается чуть ли ни раком
Аноним 14/06/25 Суб 17:30:36 3476009 152
Аноним 14/06/25 Суб 17:32:36 3476010 153
Аноним 14/06/25 Суб 20:26:19 3476102 154
Аноним 16/06/25 Пнд 12:10:04 3476984 155
>>3475738
>В чем тогда смысл кэша?
Ты путаешь кэш и бэк. Суть кэша только в том, чтобы не проводить заново некую операцию, временно сохранив её результаты.

>>3475937
"Асинхронщина" это хлеб и кровь и плоть и вообще единственный смысл который в 25 году остался в питоне. Если для тебя это новость, значит ты какая-то залетуха с курсов.

Пиздец, пол года в тред не заходил а тут одни нуфани и скриптокиди остались.
Аноним 17/06/25 Втр 19:12:53 3477969 156
1750176767809.jpg 1055Кб, 1800x2880
1800x2880
1750176767843.jpg 1355Кб, 1800x2880
1800x2880
насколько пикрил хорош для углублённого изучения после пикрил 2?

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

мне немного надо, я как хобби после работы изучаю. вкатываться не планирую, нейросети и университетчики явно умнее меня.
Аноним 17/06/25 Втр 20:02:36 3478002 157
>>3477969
>насколько пикрил хорош для углублённого изучения после пикрил 2?
Ты рассчитываешь что тут найдётся кто-то понимающий и читавший две конкретные книги и он будет способен адекватно сравнить и вынести вердикт?..
Удачи.
А если серьёзно -- спроси на канале "Диджитализируй!" Чувак очень много читает и ведёт книжный клуб.
Аноним 20/06/25 Птн 14:07:44 3480282 158
>>3476984
>Если для тебя это новость, значит ты какая-то залетуха с курсов.

почему сразу "залетуха"? может он джангист, где, конечно, имеются декораторы sync_to_async и async_to_sync, но что-то похожее асинхронщину завезли, если не ошибаюсь, в django 4.
сам эту лабуду не использовал, проще все писать на каком-нибудь fastAPI/aiohttp
Аноним 23/06/25 Пнд 00:20:30 3482035 159
image 13Кб, 447x357
447x357
>>3449085 (OP)
Друзья, в процессе вката нахожусь, параллельно пробую разные инструменты.
Можно ли как-то в юпитерлабе вот этот столбец с номером шага расширить? Пробовал снижать ширину jp-Cell, но он только на правой стороне становится короче. Вызвано, скорее всего, размером шрифта.
Аноним 24/06/25 Втр 12:25:47 3483157 160
Суп. Пытаюсь в многопоточность. Как узнать из какого потока 't1'
Сделал 2 потока t1 и t2, запускаю из них функцию. Как узнать из какого потока пришел конкретный результат?
Аноним 24/06/25 Втр 21:06:48 3483458 161
>>3483157
Чтобы определить, из какого потока пришел результат, можно внутри вызываемой функции получить имя текущего потока через threading.current_thread().name.

import threading
import time

def worker():
thread_name = threading.current_thread().name
print(f"Результат из потока: {thread_name}")
return thread_name

# Создаем потоки
t1 = threading.Thread(target=worker, name="Thread-1")
t2 = threading.Thread(target=worker, name="Thread-2")

# Запускаем потоки
t1.start()
t2.start()

# Ждем завершения
t1.join()
t2.join()

Если ты хочешь получить результат из каждого потока (например, собрать их), нужно использовать более продвинутый способ, например, через concurrent.futures.ThreadPoolExecutor, где можно легко сопоставить результат и поток:

from concurrent.futures import ThreadPoolExecutor
import threading

def worker():
return f"Результат из: {threading.current_thread().name}"

with ThreadPoolExecutor(max_workers=2) as executor:
futures = [executor.submit(worker) for _ in range(2)]
for future in futures:
print(future.result())

Если ты используешь threading.Thread, и хочешь вернуть результат из потока, то это можно сделать через передачу queue.Queue или оборачивание потока в класс:

import threading
import queue

def worker(result_queue: queue.Queue):
thread_name = threading.current_thread().name
result_queue.put((thread_name, f"Результат из потока: {thread_name}"))

result_queue = queue.Queue()

t1 = threading.Thread(target=worker, args=(result_queue,), name="Thread-1")
t2 = threading.Thread(target=worker, args=(result_queue,), name="Thread-2")

t1.start()
t2.start()

t1.join()
t2.join()

while not result_queue.empty():
thread_name, result = result_queue.get()
print(f"{thread_name} => {result}")
Аноним 25/06/25 Срд 06:53:31 3483644 162
Аноним 30/06/25 Пнд 20:16:27 3488036 163
помогите с выбором фреймворка для новичка:
Асинхронное программирование не знаю, но в одном месте пишут с джанги начать, в другом фастапи. Хз что первым пощупать
Аноним 01/07/25 Втр 18:55:12 3488728 164
>>3488036
А тебе для чего? inb4 для новичка
В фастапи вкат проще, если ты прям ничего не щупал, то лучше его.
Аноним 02/07/25 Срд 05:32:02 3488898 165
>>3488728
Фастапи только для апи?
Аноним 02/07/25 Срд 11:34:17 3489034 166
>>3488898
Нет, но ты заебешься костыли вокруг того, что есть в зачаточном состоянии, писать. Проще готовый фреймворк использовать aka django. Тот чел тебе напиздел, что фастапи проще для новичков. Для новичков проще использовать готовое, чем писать например обработку ошибок кастомную, csrf токены настраивать и прочую мелкохуйню, что в жанге уже за тебя все сделано. Если возмешь фастапи то с большой вероятностью напишешь дырявое говно, без знания что и где нужно реализовать.
Аноним 02/07/25 Срд 13:33:39 3489155 167
>>3489034
Я тут выше писал, что лучше для веб морды устройства?
Аноним 02/07/25 Срд 13:34:56 3489158 168
>>3489034
Тут еще такая проблема что если ты используешь для этого сторонние модули, то лет через 5 они могут загнуться. А джангу просто обновил и вперед.
Аноним 02/07/25 Срд 18:18:08 3489421 169
image.png 53Кб, 626x308
626x308
Суп. Есть пик. ПайЛинт явно считает, что `succ` это константа, хотя казалось бы оно в одном месте объявляется, потом в цикле может переписываться, значит АППЕР_КЕЙС тут явно неуместен. Или я чего-то недопонимаю? Разъясните, пожалуйста.
Аноним 02/07/25 Срд 18:35:56 3489438 170
image.png 43Кб, 526x224
526x224
И ещё похожий вопрос.
Вот есть такой код. ПайЛинт говорит "Catching too general exception Exception". Предлагается прочитать:
https://pylint.readthedocs.io/en/latest/user_guide/messages/warning/broad-exception-caught.html
https://stackoverflow.com/questions/14797375/should-i-always-specify-an-exception-type-in-except-statements/14797508
Я прочитал, но всё ещё не очень понимаю, как быть.
В моём понимании при попытке внести данные в файл может случиться примерно дохуялиард всяких разных вещей (RO-ФС, кончилось место на диске, диск побился на лету и так далее), которые помешают записи и по-моему вот тут вот уместно сделать "Что-то стряслось, нишмог, вот тебе ошибка, возись с ней дальше сам!", но, кажется, линтер хочет, чтобы я в таких случаях перечислял абсолютно все райзы, которые гипотетически могут прилететь в этом куске кода? Как тут идеологически правильнее поступить?
Аноним 02/07/25 Срд 18:53:05 3489449 171
>>3489421
PyLint относится почти ко всем переменным, объявленным не внутри функции, как к константам. Менять они это вроде не планируют, так что можешь просто это в игнор прописать. Если загуглишь саму ошибку, найдёшь много открытых вопросов на эту тему у них в гитхабе.
>>3489438
Из PEP-8:
>When catching exceptions, mention specific exceptions whenever possible instead of using a bare except: clause:
>A good rule of thumb is to limit use of bare ‘except’ clauses to two cases:
>1. If the exception handler will be printing out or logging the traceback; at least the user will be aware that an error has occurred.
>2. If the code needs to do some cleanup work, but then lets the exception propagate upwards with raise. try...finally can be a better way to handle this case.
Тоже можно заигнорить, но вообще да, как правило, эксепшены указываются явно.
Аноним 03/07/25 Чтв 03:24:05 3489632 172
>>3489421
Чел, незачем прописывать типы при инициализации. Это лишняя работа.
Аноним 04/07/25 Птн 09:32:21 3490574 173
image.png 39Кб, 473x271
473x271
image.png 41Кб, 399x523
399x523
image.png 41Кб, 441x519
441x519
>>3489449
>Менять они это вроде не планируют, так что можешь просто это в игнор прописать.
Мерси!
>>3489449
В целом я понимаю и согласен. Но тут может произойти очень много чего и я не знаю, что именно. Бредогенератор, например, говорит о 8 видах исключений (правда, сколько он не заметил и сколько нагалюционаровал -- отдельный вопрос), но предлагает обойтись двумя явными и остальное ловить просто так (пик 1). КМК, обрабатывать все 8, чтобы выдать одинаковые сообщения -- что-то на грани между ОКР и идиотизмом, но не обрабатывать вовсе и вываливать трейс в случае чего тоже не очень хочется.
>>3489632
Мне не сложно, а лишняя она не всегда, например, пустые set и dict имеют одинаковые литералы и именно на них будет смотреть IDE, LSP и LLM, а остальным -- для унификации. А вообще (сорри за оффтоп): эта привычка у меня с тех пор, как я начинал учиться программированию на Паскале, там в начале функций, процедур и программы была секция "var", в которой нужно было перечислить все переменные и их типы. Если вдуматься, то, не смотря на многословность (по факту именно она, похоже, стала причиной, по которой паскаль проиграл войну с сями), это замечательная практика, она позволяла учесть все переменные и при этом быть абсолютно точно уверенным, что вот эта переменная будет внутренней, а вот та -- придёт из более общего контекста и так далее. На 2 и 3 пиках бессмысленные и беспощадные, но рабочие примеры уровня Lab1.
Аноним 04/07/25 Птн 10:02:30 3490582 174
>>3490574
> пустые set и dict имеют одинаковые литералы
Литерала пустого set нету...

Ну так избавляйся от лишних привычек. А то еще ни дай бог начнешь си писать на питоне.
Аноним 04/07/25 Птн 13:36:49 3490787 175
>>3490582
>Ну так избавляйся от лишних привычек.
Зачем, если они делают код более организованным и явным?
Explicit is better than implicit.
Аноним 04/07/25 Птн 13:50:40 3490794 176
>>3490787
Чел, даже в статических языках давно есть вывод типов.
Аноним 04/07/25 Птн 14:54:43 3490892 177
>>3477969
> насколько пикрил хорош для углублённого изучения после пикрил 2?
Мне кажется, неплохи книжки про асинк и Fluent Python.
Аноним 05/07/25 Суб 17:13:34 3491986 178
ML сложная тема без знаний математики?
Аноним 07/07/25 Пнд 10:53:10 3493076 179
Аноним 07/07/25 Пнд 12:05:07 3493192 180
Аноним 07/07/25 Пнд 12:10:21 3493206 181
Аноним 07/07/25 Пнд 19:46:16 3493700 182
image.png 146Кб, 1187x557
1187x557
внимание вопрос

откуда в i 0 взялся наху???7777
Аноним 07/07/25 Пнд 20:08:05 3493706 183
>>3493700
так range(len(s)) с 0 начинается
а массив s ты кикаешь тут
for s in
вместо исходного массива s у тебя пробегает значения от 0 до len(s) в цикле
Аноним 07/07/25 Пнд 20:12:51 3493708 184
надо писать
for value in s:
и делать append(value) а не append (s)
Аноним 07/07/25 Пнд 20:19:17 3493710 185
Вопрос по asyncio. Как я понял await как бы приостанавливает текущее выполнение и может переключить исполнение на другие вычисления. И как я понимаю, написанные друг за другом await будут выполнятся все равно друг за другом (ну и может что то между ними еще из других мест), а чтобы реально начать вычислять что то полезное, нужно не просто asyncio.run с 1 функцией запустить, а как то указать там несколько задач, иначе получится, что оно все равно будто последовательно все функции вызывает, разве нет? Или как оно работает?
Аноним 07/07/25 Пнд 20:23:57 3493712 186
Но тогда я не понимаю, почему я кучу раз видел код где писали только asyncio.run с 1 функцией? Может потому что там дергали либу которая как то внутри сама несколько тасок делала?
Аноним 07/07/25 Пнд 22:06:46 3493759 187
>>3493710
создаешь несколько тасок и потом делаешь их asyncio.gather
Аноним 07/07/25 Пнд 22:42:27 3493772 188
>>3493710
Школота, я тебя сейчас по-простому обясню. Слушай сюды. Асинхронность нужна не для того чтобы паралельно что-то делать, а для того чтобы паралельно нихуя не делать. Чтобы не было блокирующего нихуя не делания. Усек? У тебя две задачи, обе могут нихуя не делать продолжитеьное время. Что лучше: обе одновременно нихуя не делают или сначале нихуя не делает одна задача, а потом нихуя не делает другая задача? Разницу усек?
Аноним 08/07/25 Втр 00:22:51 3493825 189
Аноним 08/07/25 Втр 12:59:45 3494130 190
>>3493706
> так range(len(s)) с 0 начинается
почему, если n=1 и в s все начинается как раз с единицы?
Аноним 08/07/25 Втр 13:00:59 3494134 191
>>3493706
> вместо исходного массива s у тебя пробегает значения от 0 до len(s) в цикле
а понял
Аноним 08/07/25 Втр 17:30:35 3494418 192
Что по вайбкодингу, посоны? Не так давно обновил пучарм и охуел с того, насколько точно он умеет предлагать автодополнение строки. Но это не вполне полноценный вайбкодинг, как я понимаю. Есть какие-то годные плугины?
Аноним 08/07/25 Втр 17:38:25 3494427 193
>>3494418
Что такое вайбкодинг?
Аноним 08/07/25 Втр 18:50:42 3494519 194
>>3494427
> Что такое вайбкодинг?
это когда арч программист надевает носочки, наливает банановый смузи в стакан и наваливает hello world под крутую какирскую музыку
Аноним 08/07/25 Втр 19:12:24 3494537 195
Аноним 09/07/25 Срд 21:48:02 3495282 196
1752086882981.jpg 91Кб, 800x712
800x712
Аноним 12/07/25 Суб 16:36:07 3497236 197
пидорасище.jpg 52Кб, 600x550
600x550
Аноним 17/07/25 Чтв 22:34:17 3500431 198
image 107Кб, 690x961
690x961
Собираюсь вкатываться в аналитика данных, посему надо учить питон. Составил вот такой роадмап, подскажите может упустил чего?
Аноним 17/07/25 Чтв 22:48:18 3500440 199
>>3500431
Что это за зверушка - анальник?
Аноним 17/07/25 Чтв 22:49:45 3500441 200
>>3500431
Да норм, все ключевые слова есть.
Но не могу не спросить, как ты планируешь конкурировать с десятками тысяч других вкатунов с базовым знанием python и sql? Ты молод и у тебя есть хорошее образование? Или по блату найдешь работу?
Аноним 17/07/25 Чтв 23:37:56 3500479 201
>>3500441
Я не собираюсь останавливаться только на sql и python. По мере возможности буду прокачиваться дальше и пытаться откликнуться на любую джуниор вакансию
Аноним 18/07/25 Птн 09:57:29 3500638 202
>>3500479
>По мере возможности буду прокачиваться дальше и пытаться откликнуться на любую джуниор вакансию
Как и тысячи выпускников с курсов...
Аноним 18/07/25 Птн 11:58:30 3500737 203
>>3500638
И что теперь, ничего не делать?
мимо
Аноним 18/07/25 Птн 13:05:04 3500797 204
>>3500737
Ящитаю, что не надо идти как баран напролом туда, где уже места нет, других баранов ты не растолкаешь один.
Лучше осмотреться и выбрать другой путь, где есть место, пусть до этого пути и надо будет больше шагов сделать.
Аноним 18/07/25 Птн 14:47:55 3500882 205
>>3500797
И где есть место сейчас?
Аноним 18/07/25 Птн 18:56:57 3501047 206
>>3493700
Ой, как плохо... Прямо по коду понятно, что у тебя нет понимания происходящего.
Аноним 18/07/25 Птн 19:11:26 3501058 207
>>3494427
Это когда вместо того, чтобы писать код "кодер" пишет промт ЛЛМ-ке, который описывает, что код должен делать. Правда на практике есть куча нюансов. Ищи "Курсор".
Недавно я пробовал более казуальный вариант: я подключил себе одну из бесплатных ЛЛМок и написал скрипт на 650 строк, она нагенерировала за меня ~80% кода и 100% документации, я просто сэкономил время на ручном набивании блоков кода, типа написал несколько букв, получил 3-5 строк функционал которых угадан по названию функции и окружающему коду. Это не чистый вайб-кодинг, но меня устраивает: я предпочитаю лучший контроль над результатом.
Аноним 18/07/25 Птн 19:18:49 3501063 208
>>3501058
> Ищи "Курсор".
Это жизнеспособно для человека который и сам писать может?

> Недавно я пробовал более казуальный вариант: я подключил себе одну из бесплатных ЛЛМок и написал скрипт на 650 строк, она нагенерировала за меня ~80% кода и 100% документации,
Как сделал?
Аноним 18/07/25 Птн 19:23:40 3501066 209
>>3500882
Он в целом прав, но есть нюанс: на вопрос
>И где есть место сейчас?
нельзя ответить. Потому что если этот ответ становится известен всем анонам на дваче, значит туда уже ломятся толпы с курсов.
Другое дело, что у того, кто освоит сам обычно дела обстоят лучше. 98% вкатышков с курсов считают, что им дали достаточно и сами не особо развиваются сверх этого, поэтому и сосут с причмокиванаием. С другой стороны те 2%, которые продолжают развиваться ещё и получили перед этим хорошую порцию структурированных знаний и пинок в нужном направлении.

Ладно, пару вещей я подскажу:
DevOps -- тут есть дефицит мидлов, так что ещё можно пытаться.
QA -- хороших спецов даже уровня джунов мало. Другое дело, что и спрос не слишком большой.
Sec -- тут ВЕЧНЫЙ голод. Но тематических курсов нет. Угадаешь почему? Потому что это охуеть как сложно и за 2-4 месяца этому научить невозможно, это нужно с 12 лет было читать журнал "Хакер", а с 14 -- сидеть на тематических форумах, постепенно погружаясь в пучины даркнета. Тогда к 20 есть хороший шанс найти или уютное место для вайтхэта или неуютные нары.
Аноним 18/07/25 Птн 19:23:54 3501068 210
>>3501063
>Это жизнеспособно для человека который и сам писать может?
Только для таких и жизнеспособно, потому что только такие могут проверить, что им там негенерировала ЛЛМ.
Аноним 18/07/25 Птн 19:27:01 3501071 211
>>3500882
Как анон выше написал, я за тебя не могу ответить на этот вопрос. Ты САМ должен поднять голову и осмотреться. Иначе будет очередное бодание не в ту дверь.
Аноним 18/07/25 Птн 19:28:00 3501072 212
>>3501063
>Это жизнеспособно для человека который и сам писать может?
Да, но есть ненулевая вероятность, что ты будешь час бодбирать реализацию метода, который сам бы написал за 20 минут.
Вообще категорически советую воспринимать ЛЛМ как множитель для скила.
>Как сделал?
Ладно, накидаю в общих чертах.
Аноним 18/07/25 Птн 19:52:08 3501091 213
>>3501068
Я знаю питон, но часто не знаю либ с которыми работаю. Вообще для меня это не профессия, поэтому работаю то с тем, то с сем.
Аноним 18/07/25 Птн 21:13:30 3501135 214
Почаны, вкатываюсь в питон. Скажите, есть ли способ чтобы вызывать Константу из общего файта констант, тип Си Const.h со всеми константами..
Аноним 18/07/25 Птн 21:15:24 3501140 215
>>3501091
>Вообще для меня это не профессия
А сам как, не тошнит, норм?
Аноним 18/07/25 Птн 21:16:32 3501143 216
>>3501140
От чего? От отступов, блядь? Как вы дегенераты заебали.
Проблемы есть, но другие. Алсо предложи альтернативу.
Аноним 18/07/25 Птн 21:24:49 3501158 217
>>3501143
Нет, не пойми не правильно. Я про само самочувствие, если не тошнит, то может, стоит самого себя тащить дальше? Новое изучить в рамках ЯП.
Аноним 18/07/25 Птн 21:26:53 3501162 218
>>3501158
Что мне надо изучить и зачем?
Аноним 18/07/25 Птн 21:33:43 3501166 219
>>3501162
Успокаина прими. Ты дёрганный
Аноним 18/07/25 Птн 21:34:12 3501168 220
>>3501135
Да, но.
В питоне нет констант которые чисто константы, есть переменные, записанные КАПСом, которые договорились считать константами. Ты можешь вынести их во внешний модуль и импортировать, например:
module.py:
> KONSTANTA = 1
main.py:
> import module
> print(module.KONSTANTA)
или
> from module import KONSTANTA
> print(KONSTANTA)
Аноним 18/07/25 Птн 21:44:24 3501175 221
>>3501166
Мысль сформулируй.
Аноним 18/07/25 Птн 21:45:21 3501176 222
Как в ебаном питоне гарантированно импортировать модуль из локального каталога или из системы?
Аноним 18/07/25 Птн 21:54:27 3501187 223
Аноним 18/07/25 Птн 22:56:52 3501252 224
image.png 6Кб, 396x79
396x79
image.png 46Кб, 646x308
646x308
image.png 12Кб, 464x87
464x87
image.png 52Кб, 907x283
907x283
>>3501072
>Ладно, накидаю в общих чертах.
Даже не в общих, а на настоящем примере.
Итак, задача: инвентаризация и аудит облака. СУГУБО ПРИКЛАДНАЯ (из категории "мне было лень лазить по папочками руками"), это даже скорее скриптинг, чем программирование, но код есть код, а в этом случае код безопасный, ничего особого не спалить (все секреты сильно снаружи), а код не сможет накосячить (тем более, что я понимаю значение каждой запятой). Идеально для тестирования LLM.
Есть облако с пользователем с некими правами, пользователь может выполнять консольные вызовы через специальную утилиту для манипуляции ресурсами в облаке. В облаке есть фолдеры под отдельные проекты, в фолдерах есть сервисы (например, ALB (Application Load Balancer) или managed PSQL)
Структура: класс Cloud при ините получает список папок и создаёт по объекту класса Folder, сохраняет в список.
При ините класса Folder создаётся list[dict[str, BasicService]], где BasicService это базовый класс для сервисов (есть ещё несколько классов, сервисов которые наследуются от него, но имеют отличные в чём-либо обработчики, например, для разных ресурсов может различаться Naming Convention). В классе BasicService при ините выбираются и запоминаются все ресурсы определённого типа, сохраняются в list[dict], полученном из JSON-выхлопа той самой консольной тулзы.
Я хочу добавить проверку расположения ресурса (что он находится в той зоне доступности, где ему положено). Я добавляю в класс BasicService метод и мне сразу подсказывают что за метод я могу написать: __str__ (пик 1). Ну мне нужен другой, потому я ввожу имя и возвращаемый тип сам, жму Enter и мне сразу предлагает готовый код (пик 2)! И из этого кода (даже не смотря на опечатку в имени метода) 80% уже пойдёт в бой, нужно только поправить проверку потому что он решил, что я хочу проверить, находится ли ресурс в правильной папке, а мне надо проверять, находится ли он в правильной зоне доступности.
Осталось документировать новый метод, иду к определению класса и тыкаю там в "doc" (пик 3), ещё пара кликов и метод готов к использованию (пик 4). На 5 строк рабочего кода я ввёл 2 слова, остальное подставила моделька.

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

НО надо твёрдо понимать, что нельзя рассчитывать, что он выдаст идеальный код, что за ним надо проверять, что LLM вообще склонны к галлюцинациям и так далее. Чем более общий вопрос им задаёшь, тем качественнее и валиднее будет ответ.
Аноним 18/07/25 Птн 23:09:11 3501264 225
>>3501187
Откуда он будет импортирован?
Аноним 18/07/25 Птн 23:11:23 3501270 226
>>3501252
В чем ты это делал-то? Что мне твои скрины?
Аноним 18/07/25 Птн 23:11:45 3501271 227
>>3501168
Вот этому анонче два чая.
Аноним 18/07/25 Птн 23:36:56 3501296 228
1609626807248.png 3Кб, 283x255
283x255
1670411009140.png 9Кб, 479x87
479x87
Котаны, помогите.

Не получается записать сумму ряда. Использую функцию nsum из scipy.
Если в лямбду добавить условное выражение, то выкидывает ошибку, но если применять другие операции (степень, корень и т.д.), то всё работает как и должно.

Пикрилы
Аноним 18/07/25 Птн 23:48:34 3501309 229
>>3501296
>то выкидывает ошибку
кокую?
Аноним 18/07/25 Птн 23:54:20 3501314 230
Аноним 19/07/25 Суб 02:04:23 3501352 231
>>3501296
так тебе написали всё, нельзя к логическому типу его преобразовать таким образом.
Аноним 19/07/25 Суб 02:32:14 3501355 232
>>3501066
И ты хочешь сказать что в аналитика данных ебать как сложно вкатиться? Прям джуны нахуй не нужны да?
Аноним 19/07/25 Суб 02:41:23 3501361 233
>>3501270
Какая разница? Вообще-то можно в чём угодно, лишь бы была интеграция с LLM. А с учётом того, что они уже умеют в LSP -- можно хоть в виме.
А пошёл по пути наименьшего сопротивления и поставил гигакодовский плагин на VSC.
Курсивом выделены предложения LLM, если что.
Аноним 19/07/25 Суб 02:52:08 3501364 234
>>3501361
Чел, я не знаю наизусть все иде и плагины.
Что такое LSP и гигакод?


Как вообще можно с питоном юзать vs code? Он же нихуя не умеет!
Аноним 19/07/25 Суб 02:52:35 3501366 235
image.png 7Кб, 474x159
474x159
>>3501314
Просто скопировал оттуда код, получил пик. У тебя что-то сильно не так. Вангую вендопроблемы.
Аноним 19/07/25 Суб 02:54:36 3501367 236
>>3501364
Судя по всему, тебе уже ничего не поможет. Программирование это просто не твоё.
Уймись и иди на завод или грузчиком в пятёрочку.
Аноним 19/07/25 Суб 03:03:40 3501368 237
>>3501367
Че такая попаболь? Опять что-то свалилось?
Аноним 19/07/25 Суб 03:04:24 3501370 238
>>3501367
Ебло свиное, я уже программирую.
Аноним 19/07/25 Суб 04:46:19 3501380 239
Каким хуем пучарм ухитрился сожрать 2,5 гб??
Аноним 19/07/25 Суб 05:07:08 3501381 240
>>3501366
он в nsum лямбду вызывает
Аноним 19/07/25 Суб 09:11:50 3501424 241
>>3501355
Сложно, потому что туда лезут десятки тысяч людей с курсов и просто перекатчиков. Я резюме у нас помогаю иногда фильтровать, и там абсолютный мрак, продавцы машин, футболисты, социологи и т.д. Быть замеченным в этом потоке грязи сложно.
Про джунов - они не нужны, потому что как только ты их научишь, то они тут же свалят от тебя. Поэтому дешевле брать студентов и платить им мало. Делать задачи по инструкциям они умеют, на зарплату не жалуются, и когда уходят их не жалко.
Аноним 19/07/25 Суб 09:12:11 3501426 242
>>3501380
Индексация проекта скорее всего.
Аноним 19/07/25 Суб 09:17:44 3501429 243
>>3501176
Если тебе гарантированно из какой-то жопы нужно вытянуть, то вот так

>import importlib.util
>import sys
>spec = importlib.util.spec_from_file_location("my_module", "/home/anonchik/moduli/ebanye/my_module.py")
>my_module = importlib.util.module_from_spec(spec)
>sys.modules["my_module"] = my_module
>spec.loader.exec_module(my_module)

Но вообще все нужные модули должны лежать у тебя в проекте и импортироваться через
>from moduli.ebanye import my_module
Аноним 19/07/25 Суб 10:09:50 3501463 244
>>3501381
И это может приводить к сбою?..
Лень было пип расчехлять для теста.
Аноним 19/07/25 Суб 12:20:59 3501531 245
>>3501463
там не сбой, в лямбду массив пихать нельзя
Аноним 19/07/25 Суб 13:01:54 3501552 246
>>3501531
> в лямбду массив пихать нельзя
Всё что нужно знать о местных экспертах
Аноним 19/07/25 Суб 13:48:46 3501571 247
>>3501352
>>3501463
В этом собственно и вопрос. Как переписать, чтобы заработало?
Аноним 19/07/25 Суб 14:28:58 3501581 248
>>3501429
Из какой жопы? Я разве не понятно вопрос задал?
Как гарантированно испортировать модуль из системы или из проекта при конфликте имен?

>>3501426
"Проект" из 1 файла.
Аноним 19/07/25 Суб 19:43:30 3501729 249
>>3501370
Блядь. Дело же не в том, что ты чего-то не знаешь. Дело в том, что вместо того, чтобы спрашивать тут -- ты мог бы выделить слова, ткнуть правой кнопкой и поискуать в сети, но если ты оказался неспособен на это, значит тебе доступен только вайбкодинг, когда ты умоляешь курсор выдать тебе рабочее решение, не применяя мозга.
Аноним 19/07/25 Суб 19:53:46 3501731 250
>>3501729
Почему я должен подбирать с пола? Тебе сука лень нормально написать названия софта??? Схуя ты взял что я обязан угадывать про что ты говоришь?
Аноним 19/07/25 Суб 20:03:37 3501737 251
Чуваки, а как нынче работенку ищут? Что то я на хх все заполнил, по приколу даде некоторые навыки тестами поподтверждал, куда ни откликнусь - везде тишина. Одна охотница сама на меня вышла с предложением продать меня в хуяндекс, я конечно поржал с обязательного прохождения алгоритмической секции для вакансии, в которой надо круд шлёпать под фастапи и естественно отказался, и всё. Может быть я не в курсе каких то новых тенденций в поиске работы?
Аноним 19/07/25 Суб 20:06:26 3501738 252
>>3501424
>туда лезут
Если знаешь sql до оконных функций включительно - аналитические двери в любую контору открыты. Хуй знает, кого вы там делите на джуна и не джуна в sql. Есть сайт старый, его все знают. Как только на нем прорешал оконные функции - тебе везде рады.
Аноним 19/07/25 Суб 20:10:58 3501740 253
>>3501737
Что ты хочешь? Волшебных рецептов "как наебать систему и устроиться с первого раза"? Их нет. Мы не управляем рынком и сделать "специально для типя конкуренцию ниже))))" не можем. Именно так и ищут! Ебутся по 6-12 месяцев, откликаются на сотни вакансий. И где-то там на 162-ой попытке их моооожет быть возьмут на работу.
Аноним 19/07/25 Суб 20:13:23 3501741 254
>>3500431
Чувак, это никому нахуй не надо. Читай мой пост выше про оконные функции. И да, питон аналитику тоже не нужен, онли sql, но глубоко.
Аноним 19/07/25 Суб 20:15:40 3501742 255
>>3501740
Не не. Я просто спрашиваю, нормально ли это на сегодняшний день. Просто лет 10 назад я быстро находил и по собесам гонял. Но с тех пор какой хуйни только не произошло, вот и интересуюсь, правильно ли я всё делаю. Просто неделю в ленивом поиске провел и прям вообще ноль выхлопа.
Аноним 19/07/25 Суб 20:19:01 3501744 256
>>3493700
Скажи мне пожалуйста, что ты студент. Не могу придумать ситуации, где бы понадобился такой велосипед изобретать.
Аноним 19/07/25 Суб 20:21:24 3501745 257
>>3451277
Зачем ебать мозги себе и остальным, если есть loguru
Аноним 19/07/25 Суб 20:23:31 3501747 258
>>3453342
Так можно только если твой бот админ в твоей группе. Всё остальное через команду старт, такие правила в телеге.
Аноним 19/07/25 Суб 20:39:23 3501754 259
>>3460050
0. купи дешманский впс, подними на нем алпайн + докер
1. подними контейнер torserver (там есть свой апи), но отключи гуй и закрой в файрволле вообще всё, кроме пост-запроса с добавлением кина и гет-запроса с получением потока кина.
2. подними контейнер с постгрес
3. ВОТ ТУТ поднимай свой фастапи в отдельном контейнере, он должен осуществлять базовый круд в твой постгрес + всё, что душе угодно
4. напиши парсер торрентов и подними с ним контейнер, этот парсер будет работать с твоим фастапи по добавлению фильмов (+ добавление в торсервер) по schedule
5. напиши бота на аиограм, который через твой фастапи будет удалять кинцо, что бы удалять говно-кинцо из базы прям с дивана, не включая компа
6. напиши красивую веб-морду.... ну это я уже погнал, никто не обязан учить джаваскрипт
Аноним 19/07/25 Суб 21:13:52 3501768 260
image.png 365Кб, 539x413
539x413
>>3475937
Многопоточку (ясен хуй псевдо) на питуховене встречал только в pyside (это если ты вдруг решил упороться в написание ебала под десктоп на питоне).
А вот с асинхронщиной ты хамишь, паря.
Аноним 19/07/25 Суб 21:16:12 3501770 261
>>3475937
> асинхронщина вообще по мнению многих крутанов в питоне считается чуть ли ни раком
Наверно зависит от применения.
Аноним 19/07/25 Суб 21:59:15 3501796 262
>>3501296
Нахуя тут какой то nsum когда если все пишется в 2 строки буквально?
def f(x):
... return sum([x+1 if n < 5 else x+0.5 for n in range(0,11)])
Аноним 19/07/25 Суб 22:43:03 3501817 263
image.png 122Кб, 780x1026
780x1026
>>3501731
Пишу всё в саблайме с темной темой. Там подсветка синтаксиса искаропки. Запускаю код в cmd. Никаких автодописываний и автододумываний, только хардкор. Если где то затупил, стараюсь подгугливать по старинке, без всяких дикпиков. Мозг так устроен, что на третий раз подгугливания начинает шевелиться и вспоминать сам, ибо заёбывается лезть в гугл и вот тут происходит запись инфы на подкорку. А отсутствие автокомплита тренирует мышечную память. Всякие там контекстные менеджеры и прочие шаблонные конструкции пальцы сами пишут.
Вся эта ваша залупа с ии оказывает вам медвежью услугу.
другой мимокрок
Аноним 19/07/25 Суб 22:44:16 3501819 264
>>3501817
Кстати, регулярку за одно подтянул на тестовых данных именно в саблайме
Аноним 19/07/25 Суб 22:48:30 3501826 265
>>3501817
Подсветка и в нпп изкоробки. Что с дополнением? С генерацией (не ии)?

> Запускаю код в cmd. Никаких автодописываний и автододумываний, только хардкор.
Попробуй pycharm. Не бойся, он бесплатный. Мож поумнеешь.
Аноним 19/07/25 Суб 23:06:33 3501840 266
>>3501741
А можешь конкретнее расписать что нужно?
Аноним 19/07/25 Суб 23:38:15 3501867 267
>>3501826
>pycharm
>бесплатный
Хехмда...
Аноним 19/07/25 Суб 23:51:41 3501876 268
Аноним 20/07/25 Вск 00:00:36 3501881 269
image.png 888Кб, 1080x782
1080x782
>>3501817
>отсутствие автокомплита тренирует мышечную память
Бля! Серьёзно?
Мышечную память тренируешь. Набивая втупую последовательность символов, которые можно не набивать, но ты тратишь время на пустую бессмысленную работу вместо того, чтобы абстрагироваться от рутины и решать задачу. Думаешь кто-то будет тебе платить за мышечную память? Да она нахуй никому не упёрлась! Нужны решённые задачи!
Аноним 20/07/25 Вск 00:03:50 3501883 270
>>3501819
>именно в саблайме
Какой сюр. Со времён IDE от борланда (вот они, кстати, были охуитительны!) абсолютно похуй, кто в чём пишет. Для нормального разработчика разница между VIm и PyCharm исчезающе мала. Какие же тут нюфани сидят. И ведь верят, что "занимаются программированием", клепая микроскриптики.
Аноним 20/07/25 Вск 04:00:23 3501902 271
>>3501883
Клоун с двача, ебло оффни.
Аноним 20/07/25 Вск 10:30:51 3501945 272
>>3501883
>абсолютно похуй, кто в чём пишет
ты нахуя залез не вникая в чужую беседу, быдло? Я отвечал анону, который спрашивал:
>Тебе сука лень нормально написать названия софта???
Аноним 20/07/25 Вск 10:32:55 3501947 273
>>3501881
>Да она нахуй никому не упёрлась! Нужны решённые задачи!
Типичный додик. Ты еще скажи, что нужен рабочий код и похуй, как он там будет работать, главное работать конкретно сейчас.
Аноним 20/07/25 Вск 10:34:30 3501949 274
>>3501826
>Попробуй pycharm
Нахуй надо, это говно пожирает ресурсы, словно его писали двачеры этого раздела. Я бы тогда уж в вскоде писал, если бы хотел что то такое.
Аноним 20/07/25 Вск 11:59:01 3501979 275
>>3501883
>клепая микроскриптики
О, а вот и долбоёб, который вкручивает ООП везде, где надо и не надо и считает всё, что не ООП скриптами.
Аноним 20/07/25 Вск 13:09:18 3502021 276
>>3501840
https://sql-ex.ru
На этом сайте-решебнике зарегайся и решай задачки, как прорешаешь оконные функции - по крайней мере в один банк, где мой кореш работает старшим аналитиком тебя точно оторвут с руками. Во многие конторы тебя возьмут гораздо раньше оконных функций.
Аноним 20/07/25 Вск 13:12:15 3502024 277
>>3502021
И да, естественно решай сам, не скачи по задачам с ИИ за ручку, как козёл, это тебе нихуя не даст. Как упёрся во что то, пошел читать тему соответствующую. Только так.
Лично я в процессе решения понял, что работа аналитиком не моё, слишком скучная хуйня.
Аноним 20/07/25 Вск 13:28:25 3502033 278
>>3501947
>Ты еще скажи, что нужен рабочий код и похуй, как он там будет работать
Если бы ты был способен на программирование (а не на кодинг скриптов под себя), то однажды, попробовав заработать на этом умении, ты узнал бы, что для тех, кто платит за человекочасы, проведённые за IDE не существует такой сущности как КОД. Для них есть продукт, который либо помогает сэкономить, либо приносит доход, либо его можно продать и получить деньги. Для этого ПРОДУКТ должен решать некую ЗАДАЧУ. Если он с этой задачей справляется, то заказчику это нравится. Если не справляется, то заказчик недоволен. Всё. Остальное в 99% случаев неважно: ни язык, ни технологии, ни по большому счёту, даже производительность, если она не мешает бизнесу. Даже возможность расширения, доработок и всего такого тоже важны далеко не всегда, более того слишком редко можно понять, потребуется ли расширяемость в будущем (и если что, это будут отдельные задачи).
Аноним 20/07/25 Вск 13:29:04 3502034 279
>>3501949
У тебя некрокомп безssd? Но все остальное просто говно нерабочее для тех кто не видел иде в жизни.
Аноним 20/07/25 Вск 14:06:07 3502052 280
>>3501796
> Нахуя тут какой то nsum
А теперь добавь-ка сюда два тройных интеграла.
Если бы стандартная функция подходила, то и в тред писать не пришлось бы
Аноним 20/07/25 Вск 14:29:55 3502062 281
Аноним 20/07/25 Вск 18:46:39 3502219 282
>>3502034
Жопабрейнпетуч, тот анон прав.
Аноним 20/07/25 Вск 18:49:56 3502221 283
Аноним 20/07/25 Вск 20:13:51 3502275 284
Аноним 21/07/25 Пнд 10:38:38 3502604 285
Питонобояре, сколько нынче не стыдно зарабатывать синьору с овер 5 годами опыта на пайтон? Поддерживаю два важных сервиса, менторю, пишу архитектуры и документацию, немного менеджерю.
Аноним 21/07/25 Пнд 12:11:05 3502644 286
Аноним 21/07/25 Пнд 13:31:21 3502688 287
>>3502604
Возьми меня в подмастерья, сэнсэй.
Аноним 21/07/25 Пнд 13:32:44 3502690 288
>>3501742
Вакансий стало в разы меньше, в оставшихся вакансиях появились ебанутые требования типа "3 года в AI и Ed-tech стартапах, чтобы писать нашу хуйню на джанго, только офис в Киргизии". Вакансии на ХХ такое чувство, что 99% фейк, чтобы рыночек мониторить, сколько не откликался - ноль реакции, авто-отписки везде. У меня 8 лет опыта, 6 из них - бигтех. Сократили в петушковом стартапе, второй месяц работу ищу, даже на тех собесы перестали звать. 3-5 лет назад совсем другой рынок был. Еще учитывай сезонный фактор, щас все о отпусках, ближе к осени активнее будут вакансии появляться, но тоже на многое надеяться не стоит
Аноним 21/07/25 Пнд 13:39:43 3502693 289
>>3501737
Так не нанимает никто в 2025 году. Вот яндекс один из немногих, где вакансии какие-то открытые висят и туда даже нанимают кого-то. Когда рынок восстановится хз, наверное не раньше чем гойда закончится, то есть примерно никогда.
Ну и еще такой фактор, что на питоне перестали писать бекенд. Где надо было, там на го переезжают, где похуй, просто замораживают проект и оставляют на его поддержку пару человек.
Аноним 21/07/25 Пнд 14:39:17 3502724 290
>>3501737
Крупные компании в телеге завели давно каналы и постят туда вакансии с контактами рекрутёров/HRов. Плюс есть отдельные каналы по разным стекам, которые рекрутёры тоже мониторят и перекидывают туда вакансии. От хх постепенно отказываются, поэтому если ты сейчас только через него ищешь, то ты уже проиграл.
Аноним 21/07/25 Пнд 16:54:29 3502830 291
В питоне массивы реализованы в виде объектов типа список. Но ведь списки слишком медленные, там ведь по идее указатели на следующий и предыдущий элементы. А как тогда быстрый доступ по индексу в питоновском массиве реализован? Какие оптимизации для этого используются в интерпретаторе?
Аноним 21/07/25 Пнд 16:55:59 3502831 292
>>3502830
Массивы и списки (кортежи) - это разные структуры, дебич. И в питоне они реализованы по-разному.
Аноним 21/07/25 Пнд 17:43:36 3502852 293
>>3502830
Список в питоне - это не связный список, это обертка над массивом, как и везде.
Аноним 21/07/25 Пнд 18:07:35 3502869 294
>>3502852
>Список в питоне - это не связный список, это обертка над массивом

Ха! Питоновский массив реализован в виде обертки над массивом. А где про это в общих чертах почитать подробнее? Чтобы не лезть сразу в исходники жирнючего интерпретатора.
Аноним 21/07/25 Пнд 18:21:55 3502880 295
>>3501744
> Скажи мне пожалуйста, что ты студент.
я самоучка, мне по кайфу циферки и переменные писать

>Не могу придумать ситуации, где бы понадобился такой велосипед изобретать.
ну и что ты как опытный сделал бы, чтобы получился тот же самый результат и при этом корректный?
Аноним 21/07/25 Пнд 19:38:01 3502916 296
>>3502869
Зачем тебе это надо? Добавление в конец за о(1), в середину за о(n). За деталями да, в исходники.

>>3502830
Прочел еще раз - у тебя тут хуйня. В питоне нет массивов.
Аноним 21/07/25 Пнд 22:00:29 3502987 297
>>3502690
>>3502693
>>3502724
Пиздец, очко какое то. Думаю уже в сервисные инженеры любых аппаратов пойти (вендинг, кофе, весы...) там и бабла больше и мозгоебли меньше. Опыт есть.
>>3502880
>ну и что ты как опытный сделал бы, чтобы получился тот же самый результат и при этом корректный?
Ну во-первых такое я бы писал на сях. Питон как минимум на уровень выше этого. Если это алгоритмы сортировки или поиска, то встроенные питонячьи методы уже максимально быстрее всего того, что ты сейчас сидишь и пердишь, при чем написано оно на сях. Почему я и сделал вывод для себя, ты решил окунуться в алгоритмы на питоне.
Аноним 21/07/25 Пнд 22:22:06 3503000 298
>>3502830
[1,2,3] - массив
(1,2,3) - список
Аноним 21/07/25 Пнд 23:35:01 3503080 299
>>3503000
Наркоман штоле? list это список по английски
1) list список
2) tuple кортеж
Аноним 22/07/25 Втр 07:13:59 3503146 300
Ору с долбоёбов, которые не могут различить массив и список.
Хотя пихон долбоёбы именовали - там на уровне структур данных list это на самом деле массив, а tuple - это список. Хотя, впрочем, погремистов на пуфоне эти детали ебать не должны.
Аноним 22/07/25 Втр 07:40:45 3503151 301
>>3503080
Может, он на перле пишет.
Аноним 22/07/25 Втр 08:13:54 3503155 302
>>3503146
Чел, в ПНД и объясняй там, что ты знаешь правильное значение слов
Аноним 22/07/25 Втр 08:21:11 3503160 303
>>3503155
Я тут заглянул в репозиторий CPython и узнал, что я сам обосрался с определением, кортеж это не список, это тоже массив, но фиксированной длины. Если б кортеж был настоящим связным списком, то к элементам кортежа было бы нельзя обратиться по индексу.
Аноним 22/07/25 Втр 08:27:03 3503163 304
>>3503160
Почему ты решил что tuple это список если
1) Это неизменяемый тип данных
2) Имеет фиксированный тип. Например (1, 2, 3) имеет тип tuple[int, int, int]
Аноним 22/07/25 Втр 08:31:25 3503168 305
>>3503163
>Имеет фиксированный тип
Точнее тип с фиксированным количеством элементов
Аноним 22/07/25 Втр 09:24:46 3503191 306
>>3503163
Потому что на самом деле я тупица, просто я выучил горсть умных слов, научился делать серьёзное ебало и мне каким-то чудом повезло стать сеньором разработчиком.
Аноним 22/07/25 Втр 09:55:12 3503198 307
Сукааа я ненавижу этот язык. По работе пришлось учить эту хуйню и в итоге приходится искать кучу ошибок даже в простом коде из-за ебаного синтаксиса с отступами. Раньше писал на Delphi, сейчас использую C, rust , vhdl и никаких проблем не было, а здесь из-за нбучего синтаксиса даже простое условие написать без синтаксических ошибок не просто.
Аноним 22/07/25 Втр 10:29:49 3503214 308
>>3503198
Пиздец ты неосилятор.
Аноним 22/07/25 Втр 12:39:05 3503276 309
>>3503214
А нахуй придумывать язык , который так зависит от синтаксиса ? Вместо того, чтобы думать над логикой программы я должен много времени тратить на поиск тупых ошибок . В Delphi к примеру с этим вообще никаких проблем не было - пиши как хочешь хоть в один столбец только не забывай ; в конце инструкций .
Аноним 22/07/25 Втр 12:54:47 3503288 310
>>3503276
Утёнок, спок. В сях-дельфях ваших ебаных если пропустил ";" - то всё, пиздец, ищи-свищи где ты этот кал забыл. Нахуй он нужон? Непонятно.
Аноним 22/07/25 Втр 13:02:35 3503295 311
>>3503288
Если в сишке пропустить ; то оно не скомпилится. Оно там лишнее, посему лучшая (с точки зрения синтаксиса) сишка - голенг
Аноним 22/07/25 Втр 13:26:01 3503310 312
>>3503276
>>3503288
Не похуй ли, какие там отступы и точки запятые? Пишу время от времени код и на питоне, и на си, и на го - один хуй разницы. У питона просто синтаксис самый компактный. Текстовые редакторы, компиляторы и интерпретаторы в 2025 подсвечивают, где ты скобку или точку с запятой забыл, не надо ничего искать
Аноним 22/07/25 Втр 14:09:41 3503332 313
Аноним 22/07/25 Втр 14:20:48 3503337 314
>>3503332
А я почему? В голенге же нет неоднозначного синтаксиса.
Аноним 22/07/25 Втр 14:37:53 3503346 315
>>3503337
Там есть богомерзкий :=
Аноним 22/07/25 Втр 14:57:48 3503378 316
Аноним 22/07/25 Втр 15:13:38 3503393 317
>>3503346
В пятоне тожи есть, а ты и не знал, пятонист...
Аноним 22/07/25 Втр 15:17:15 3503397 318
>>3503346
Как же ты обосрался, ух бля!
Аноним 22/07/25 Втр 16:37:47 3503485 319
главное чтобы 8=З не было
Аноним 22/07/25 Втр 16:42:45 3503490 320
Аноним 22/07/25 Втр 18:55:34 3503642 321
>>3503151
На джаве тоже наоборот.
Аноним 22/07/25 Втр 18:59:11 3503646 322
>>3503198
На самом деле я тоже сначала пригорал, когда из джавы пришел. Особенно из-за отсутствия четкой типизации, странного фора. Но потом вдруг как понял, что это самый кайфовый и дружелюбный язык, что в сишное даже возвращаться не хочется.
Аноним 23/07/25 Срд 08:07:41 3503964 323
>>3503276
>В Delphi к примеру
пипец ты дед, ещё бы фортран вспомнил или кобол
Аноним 23/07/25 Срд 08:16:37 3503966 324
>>3503964
Те, кто помнят кобол - лутают сотни тысяч долларов.
Аноним 23/07/25 Срд 10:09:27 3504024 325
>>3503964
Делфи ещё апдейты получает, кстати. Ну так, к слову.
Аноним 23/07/25 Срд 22:12:07 3504444 326
За счет чего питон медленный? Почему функция с отключением GIL не дала прироста скорости в общих задачах?
Аноним 24/07/25 Чтв 00:05:04 3504481 327
>>3504444
> Почему функция с отключением GIL не дала прироста скорости в общих задачах?
Классический "слышал звон". GIL актуален для многопоточных приложений, каковых немного. На однопоточные он не сказывается. Причём в режиме без GIL даже медленнее может работать.

В теории что может ускорять, как это JIT. Сейчас его тоже пытаются встроить в интерпретатор, в версиях 3.13 (действующая, но нужно компилировать специально для этого, по-умолчанию нет) и в 3.14 (в разработке, пока релиз осенью), но там он слабый, приличный JIT есть в альтернативном проекте PyPy. Он реально может на каких-то задачах разгоняться, но там версия 3.11 сейчас, и не со всеми пакетами совместимость есть.

Почему тормозной? Про это книги можно писать. Из-за архитектуры, где даже обычные целые числа это объекты, из-за того, что нужно поддерживать специфичный функционал, из-за чего там сложно оптимизировать, не ломая обратную совместимость.
Аноним 24/07/25 Чтв 00:14:59 3504483 328
>>3504481
короче из-за архитектуры местами сомнительной начинаются тормоза.
Вот если у тебя функция, в ней примитивный цикл
def func():
ssum = 0
____for x in range(1_000_000):
________ssum += x
____return ssum

этот код будет работать очень медленно, не смотря на то, что вроде тут ничего сложного. Но в питоне ты тут работаешь с итератором, там довольно много операций происходит на каждую итерацию цикла, ssum это не переменная в смысле как в Си и других языках, это ссылка на иммутабельный объект. На каждую итерацию цикла создаётся новый объект, а это требует какого-то времени. Один новый объект для x, и ещё новый объект для ssum. Соответственно обновляется словарь внутренних переменных функции.

То есть реально тут адский оверхед, с которым сложно что-то сделать.
Аноним 24/07/25 Чтв 05:04:56 3504511 329
>>3504444
> За счет чего питон медленный?
Интроспекция.
Аноним 24/07/25 Чтв 07:57:20 3504530 330
>>3504444
Медленный для чего, нахуй? Для скриптов, для веб-приложений (где 99% времени это ожидание данных), для инженерных расчетов - он ебать какой быстрый.
Аноним 24/07/25 Чтв 09:26:23 3504550 331
>>3504530
>для инженерных расчетов - он ебать какой быстрый
Нет. Юля и матлаб быстрее.
Аноним 24/07/25 Чтв 12:50:52 3504689 332
>>3504530
В сетевых задачах он тоже крайне медленных, вообще всё медленно, что не работает на внешних модулях. Если сетевой код переписать на другой язык, обычно производительность будет выше. Не то, что на Го, даже на Node.js

Просто в реальности производительность обычно не нужна, а тормоза чаще не из-за питона, а из-за БД или ещё чего-нибудь.
Аноним 24/07/25 Чтв 16:03:41 3504882 333
>>3501066
> DevOps -- тут есть дефицит мидлов, так что ещё можно пытаться.
Это все хорошо, но как попасть на джуна без опыта?
> QA -- хороших спецов даже уровня джунов мало. Всего по 1,5к человек на одну вакансию, даже не из кого выбрать.
Аноним 24/07/25 Чтв 22:42:47 3505122 334
>>3501066
> это нужно с 12 лет было читать журнал "Хакер", а с 14 -- сидеть на тематических форумах, постепенно погружаясь в пучины даркнета. Тогда к 20 есть хороший шанс найти или уютное место для вайтхэта или неуютные нары.
Ну я лет 10-15 назад увлекался айтисеком. Как ты думаешь, сколько % моих знаний сегодня кому-то нужны? Я думаю что ты про айтисек по телеку слышал.
Аноним 26/07/25 Суб 20:36:53 3506371 335
Чьи гитхабы читаете, аноны?
Аноним 26/07/25 Суб 23:19:28 3506470 336
Аноним 27/07/25 Вск 15:48:05 3506820 337
Аноним 27/07/25 Вск 20:01:37 3507006 338
img1.png 2Кб, 300x100
300x100
img2.png 1Кб, 50x43
50x43
image.png 124Кб, 2269x529
2269x529
Есть 2 картинки. Какой самый лучший метод определить, есть ли сходство одной картинки с частью картинки в другой?
cv2.matchTemplate даёт очень много ложноположительных и ложно отрицательных мэтчей. Эта хуйня работает только из исходного изображения кропнуть часть, тогда он детектит идеально.

рандомпики
Аноним 27/07/25 Вск 20:01:44 3507007 339
Аноним 27/07/25 Вск 20:26:30 3507017 340
>>3507006
Делал много лет назад похожую хуйню по работе. В основном темплейты использовал и на крайняк каскады, ничего лучше на тот момент ещё не придумали. Сейчас наверняка есть куча готовых решений на базе нейронок.
>cv2.matchTemplate даёт очень много ложноположительных и ложно отрицательных мэтчей
Вроде оно возвращает качество мэтча.
Аноним 27/07/25 Вск 21:35:28 3507050 341
>>3507006
Капчу ебошишь? Линии и фигуры одного цвета?
Аноним 27/07/25 Вск 23:42:10 3507152 342
>>3507050
Да, всегда одного цвета.
Аноним 28/07/25 Пнд 00:14:21 3507164 343
>>3507152
Картинка монохромная?
Аноним 28/07/25 Пнд 00:15:14 3507165 344
>>3507017
Нейронками капча разгадывалась еще лет 10 назад.
Аноним 29/07/25 Втр 19:54:11 3508577 345
Аноним 29/07/25 Втр 23:22:09 3508756 346
image.png 162Кб, 1256x866
1256x866
>>3508577
Бля, да это же классика, хз, это жирные тролли составляли или реальные вчерашние вкатуны так выделываются. Ещё минута чтению и буду читать срачи в комментах
Аноним 29/07/25 Втр 23:47:35 3508795 347
>>3508756
Классический двач интернет, люди, которые нихуя не знают, учат других.
Аноним 29/07/25 Втр 23:49:40 3508797 348
>>3508756
Лол, так это не на проггера, а на QA? Рус ня совсем ожирела?
Аноним 30/07/25 Срд 00:46:18 3508807 349
Аноним 30/07/25 Срд 01:38:57 3508814 350
>>3508807
Кто читает хабр и зачем? Кто туда пишет и зачем?
Аноним 30/07/25 Срд 02:38:39 3508820 351
>>3508814
>Кто туда пишет
Школьники
Аноним 30/07/25 Срд 04:00:19 3508827 352
>>3508820
Да разве? Туда от фирм копирайтеры серут. Сейчас там 0 коментов под большинством постов. Боты пишут для ботов?
Аноним 30/07/25 Срд 04:12:40 3508828 353
>>3508827
А почему ты у меня спрашиваешь? Хабрапараша днищем всегда было, я за этим говном не слежу.
Аноним 30/07/25 Срд 07:14:46 3508853 354
>>3508756
Я с множественного наследования угарнул. Кто его в 2к25 юзает?
Аноним 30/07/25 Срд 15:32:11 3509235 355
Аноним 30/07/25 Срд 15:59:50 3509263 356
Аноним 30/07/25 Срд 16:00:42 3509265 357
Аноним 30/07/25 Срд 18:35:14 3509417 358
>>3509265
Пошел на хуй, петух
Аноним 30/07/25 Срд 18:47:26 3509434 359
Почему JIT-компиляция не дает такого прироста скорости работы приложения, чтобы его можно было сравнить с аналогом, написанным на изначально компилируемом языке?
Аноним 30/07/25 Срд 19:05:15 3509452 360
надо построить елочку .Я тупой , помогите . В чем тут ошибка ?
n = int(input())
for i in range(1, n + 1):
for j in range(1, i + 1):
print(j, end= ' ')
print()
Аноним 30/07/25 Срд 19:28:35 3509469 361
>>3509452
хочу чтобы решение было элегантное без дополнительных переменных и условий. Только на циклах,но как это сделать я понять не могу
Аноним 30/07/25 Срд 20:12:40 3509499 362
1753895559804.mp4 1378Кб, 640x1136, 00:00:05
640x1136
Аноним 30/07/25 Срд 20:50:48 3509519 363
>>3509452
print(" " * (n - i), end = ' ')
Я бы такое поставил перед вторым циклом
Аноним 31/07/25 Чтв 00:46:35 3509618 364
>>3502916
>В питоне нет массивов.
Вообще-то есть array.array.
Аноним 31/07/25 Чтв 02:19:15 3509634 365
>>3508577
В статье все по делу, такие простые вопросы не требуют подготовки или глубоких знаний, они максимально простые, но позволяют легко фильтрануть челиксов, не написавших ничего сложнее хеллоу ворлда. Просто первичный фильтр, чтобы сразу послать нахуй ебаклаков.
Аноним 31/07/25 Чтв 03:08:24 3509638 366
>>3509634
В комментах всё по делу, надо код простой и понятный писать, а не изъебываться с тем, как твой обфусцированный говнокод поведёт себя, если ты намешаешь невероятный кейс из кучи крайних случаев, описанных в редакции R34Hui1488 питона версии 3.12
Аноним 31/07/25 Чтв 03:54:33 3509644 367
>>3508853
Разработчики джанги.

>>3509638
Там нет каких-то заумных или нестандартных штук. Компрехеншены пишут все, цепочечные сравнения тоже. Понимать, как они работают - это нормально.

Или ты хочешь сказать, что писать компрехеншены плохо? Если мидл реально думает, что (x for x in array) это тюпл, а не генератор, то это какой-то очень хуевый мидл.
Аноним 31/07/25 Чтв 03:58:10 3509645 368
Ну и пример со списком в качестве дефолта это классика любого техсобеса.
Если не знать, как это работает в питоне, очень легко обосраться и не заметить эту ошибку. Поэтому знать такие вещи это реально база, и любой человек, который реально пишет коммерческий код на питоне, с такими вещами так или иначе знаком.
Аноним 31/07/25 Чтв 04:19:47 3509648 369
>>3509618
Который нахуй никому не нужен.
Аноним 31/07/25 Чтв 08:03:53 3509677 370
>>3509645
>Ну и пример со списком в качестве дефолта это классика любого техсобеса
Это единственный действительно адекватный пример вопроса, питонист обязан это знать и помнить всегда

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

Множественное наследование где-то используется, в виде миксинов, но такие вещи сложно помнить. Хотя если ходишь по собесам, то это та тема, которую точно стоит освежить
Аноним 31/07/25 Чтв 08:07:26 3509679 371
>>3509634
>В статье все по делу, такие простые вопросы не требуют подготовки или глубоких знаний, они максимально простые, но позволяют легко фильтрануть челиксов, не написавших ничего сложнее хеллоу ворлда
Это тест для поиска людей, что НЕДАВНО начали изучать питон, обычно это показатель, что авторы тоже недавно его начали изучать, бывают же все эти 22-летние сеньёры
Аноним 31/07/25 Чтв 08:10:14 3509680 372
>>3509434
>Почему JIT-компиляция не дает такого прироста скорости работы приложения, чтобы его можно было сравнить с аналогом, написанным на изначально компилируемом языке?
Она иногда может работать быстрее, то есть питоновский pypy код может работать быстрее кода на C++ с высокой оптимизацией
Аноним 31/07/25 Чтв 08:44:08 3509684 373
>>3509644
бугурт это вызывает потому, что вопросы придумывали те, кто сам вчера только что-то изучил, и поэтому считают, что другие вопросы-ловушки должен легко уметь отвечать

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

Я не представляю, что это за код должен быть, где встречается
> 55 == True is True

С генераторами, в реальном коде можно встретиться с
g = (x for x in array)
хотя это больше гипотетически, не уверен, что прямо встречался. Используются генераторы списков-словарей-множеств, но в чистом виде генераторы редко

когда же вопрос формулируется как
print([x for x in array])
print((x for x in array))
print({x for x in array})

то это уже не вопрос на знание, а чисто вопрос-ловушка на невнимательность, на стресс на собесе и т.п. Отношение соответствующее.
Аноним 31/07/25 Чтв 08:51:15 3509686 374
image.png 8Кб, 341x292
341x292
>>3509469
В питоне есть особая фишка для форматирования строк, модификатор "крышечка", что центрирует данные

Возможно это не то, что ты хочешь, тебе нужно именно учебный пример с двумя циклами, но так зато можно сделать элегантно
Аноним 31/07/25 Чтв 09:12:28 3509687 375
>>3509634
Автор статейки, ты? Давай за множественное наследование поясни, схуяли человек, не пишущий на питуне ооп код, должен знать порядок наследования.
Аноним 31/07/25 Чтв 09:13:24 3509688 376
>>3509644
>Разработчики джанги
Для чего? Есть примеры?
Аноним 31/07/25 Чтв 09:39:28 3509702 377
image.png 42Кб, 395x685
395x685
image.png 65Кб, 1234x396
1234x396
>>3509687
Смотри, пример там сам простой, а вот пояснение показывает, что у автора судя по всему проблемы с головой серьёзные

Реально же всё проще, тебе эти слова "линеарилизация С3" знать не нужно. Класс D наследуется от B, C, в обеих классах определён метод hello(), поэтому на класс A можно не смотреть вообще. Соответственно вопрос, чьи методы в приоритете, первого класса или второго. Здесь B будет

Вопрос куда менее очевидный, если бы в B не был определён метод hello. Здесь уже надо знать специфику питона. По одной логике можно ожидать ответ A (как если бы мы класс B запустили, очень ожидаемое поведение), по другой C, что будет правильным ответом).

Вот на это уже совсем не так просто ответить на холодную, а можно вещь ещё сложнее придумать, сделав глубже наследование.

Наследование, в том числе множественное, всё-таки довольно часто используется, стандартный паттерн "mixin", на холодную на такие вопросы может быть сложно отвечать, но если ты ходишь по собесам, то эта та тема, которую стоит освежить. Само по себе наследование и минимальное ООП в любом проекте есть, без этого никуда.

Настоящее ООП это в любом случае не про питон.

Конечно, это не тест на мидла-сеньёра, то есть человек с опытом отвечать будет не лучше вкатуна на такие вопросы.
Аноним 31/07/25 Чтв 14:11:37 3509907 378
>>3503198
>кучу ошибок даже в простом коде из-за ебаного синтаксиса с отступами
Имнно из-за него я абсолютно убеждён, что КАЖДЫЙ кодер в мире должен в обязательном порядке проходить курс по Питону. КАЖДЫЙ. Потому что блядь заебало, когда так наплевательски относятся к отступам и чуть что -- сиди и за очередным долбоёбом табы расставляй, чтобы понять, что он сказать-то хотел!
Аноним 31/07/25 Чтв 14:46:17 3509923 379
>>3503964
>пипец ты дед
Зря ты так. Язык хороший, годный. У него две проблемы: нет прям свободного компилятора (inb4: Lazarus, но это не совсем тоже самое, там затык в относительно проприетарных VCL) и он очень многословен. Зато как и у питона у него есть фича: почти невозможно случайно выстрелить себе в ногу, так что идеологически языки очень близки.
Да, в Питоне до появления нотаций типов по ногам стрелять было проще, но чем дальше, тем меньше таких проблем.
Аноним 31/07/25 Чтв 15:53:37 3509959 380
>>3509702
>ООП параша
Абсолютно бесполезная хуйня, просто трата времени и когнитивного ресурса.
>>3509907
>кодер
Кодомакака не человек.
>>3509923
>Да, в Питоне до появления нотаций типов по ногам стрелять было проще, но чем дальше, тем меньше таких проблем.
Они опциональны, дядь.
Аноним 31/07/25 Чтв 16:10:53 3509972 381
>>3509907
чел, давно автоформаттеры придумали
Аноним 31/07/25 Чтв 18:13:51 3510042 382
>>3509677
Покажи хоть одного вменяемого питониста, который не знает как использовать компрехеншены или цепочечные сравнения.

>>3509684
>хотя это больше гипотетически, не уверен, что прямо встречался. Используются генераторы списков-словарей-множеств, но в чистом виде генераторы редко
Плохо, что не используешь. Да и скорее всего используешь, просто даже не знаешь, что это генераторное выражение.
' '.join(a for a in x) - это передача генераторного выражения в качестве аргумента например.

Алсо, "генератор списков" и "генератор" - это абсолютно разные вещи, он только на русском по какой-то причине называется генератором, на английском это list comprehension.

>>3509687
>не пишущий на питуне ооп код
ООП это промышленный стандарт разработки. Если ты пишешь коммерческий код и не используешь ООП - сочувствую тому, кто будет твое говно потом разгребать.

>>3509688
Посмотри код джанги, оно там буквально везде.

>>3509702
>Настоящее ООП это в любом случае не про питон
А про что? Про ДЖАВУ?

>>3509907
База
Аноним 31/07/25 Чтв 19:26:53 3510067 383
>>3510042
>' '.join(a for a in x) - это передача генераторного выражения в качестве аргумента например.
У тебя реально такой код бывает?
Аноним 31/07/25 Чтв 19:31:43 3510070 384
>>3510042
>А про что? Про ДЖАВУ?
Да, про джаву в первую очередь, и про совсем старый C++, новый давно в другую парадигму перешёл

Я надеюсь тебе не нужно объяснять, чем в контексте ООП общего у питона и джавы мало
Аноним 31/07/25 Чтв 19:40:29 3510078 385
>>3510042
>ООП это промышленный стандарт разработки. Если ты пишешь коммерческий код и не используешь ООП - сочувствую тому, кто будет твое говно потом разгребать.
На самом деле это херня, если именно ООП, а не использование классов.

Не использовать классы в разработке не получится, куча библиотек на этом построена, в том числе некоторые стандартные модули, но использовать классы это ещё не значит "использовать ООП".

В основном мультипарадигмовые подходы, что-то, реально похожее на ООП, лишь в части проекта.
Аноним 31/07/25 Чтв 20:04:11 3510097 386
>>3510070
>Джава
>правильный ООП
Понял, вопросов больше не имею
Аноним 31/07/25 Чтв 21:33:18 3510151 387
>>3510070
>и про совсем старый C++
>ООП
>C++
Мань, ты серишь, вообще не понимаешь что пишешь, водочки ебни и успокойся.
Аноним 31/07/25 Чтв 21:51:51 3510175 388
>>3509972
>чел, давно автоформаттеры придумали
В тепличных условиях, когда один язык и 100% контролируемая среда разработки -- да. Но чуть ты оказываешься в условиях ограничений -- появляется серьёзный шанс СОСНУТЬ.
А в реальном мире, вне твоей теплицы, этих шансов полно.
>>3509959
>Кодомакака не человек.
Что поделать? Последний программист ушёл на пенсию лет 10 назад, а остались только кодеры, крудошлёпы, рисователи кнопочек на цсс и прочая нечисть.
Аноним 31/07/25 Чтв 21:56:49 3510185 389
>>3509959
>Они опциональны, дядь.
Ну и что? Зато во встроенной либе и большинстве модулей они прописаны и IDE может понять, как пользоваться переменной.
То время, когда питон был настолько гибок, что из рук выскальзывал с его вообще-хер-пойми-какой-тут-окажется-тип в прошлом.
Аноним 31/07/25 Чтв 22:23:41 3510211 390
>>3510042
> ' '.join(a for a in x)
Чем отличается от
> ' '.join(x)
?
Аноним 31/07/25 Чтв 23:04:58 3510252 391
>>3510211
Конкретно тут ничем, я просто абстрактный пример привел.
Аноним 01/08/25 Птн 00:03:04 3510298 392
>>3510151
Это ты ничего не понимаешь, только баззвордов нахватался и думаешь, что умный. Старый C++ это настоящая классика ООП, прямо вершина из массовых языков, лучше джавы. Но позже его засрали STL и практика кодирования на нём сменилась

>Конкретно тут ничем, я просто абстрактный пример привел
Вот именно что абстрактный пример, потому что в реальном коде такого не будет
Аноним 01/08/25 Птн 00:35:37 3510308 393
>>3510298
C++ это антипаттерн ооп языка
Аноним 01/08/25 Птн 05:46:54 3510356 394
>>3509679
Статья про мидлов или сеньоров, но QA. А из всего этого выблева реальный пример только параметр по умолчанию.

>>3510175
> В тепличных условиях, когда один язык и 100% контролируемая среда разработки -- да. Но чуть ты оказываешься в условиях ограничений -- появляется серьёзный шанс СОСНУТЬ.
> А в реальном мире, вне твоей теплицы, этих шансов полно.
Штоблядь? В любом вменяемом проекте есть правила оформления.
Аноним 01/08/25 Птн 05:51:52 3510357 395
>>3509686
> модификатор "крышечка", что центрирует данные
Хуясе. Это из дотнета портанули?

>>3510211
Это просто пример. В реале будет (a.attr for a in x)
Аноним 01/08/25 Птн 09:50:15 3510434 396
>>3510042
>ООП это промышленный стандарт разработки
Дык автор статейки и не разработчик. И питун используется не только в разработке. Поэтому нет, ООП это давно не стандарт.

>Посмотри код джанги
Куда смотреть? Открыл гитхаб джанги, открыл core, посмотрел, нашёл только ThreadedWSGIServer который от двух классов наследуется. Куда смотреть, чтобы было "буквально везде"?
Аноним 01/08/25 Птн 11:24:22 3510520 397
>>3510175
>А в реальном мире, вне твоей теплицы,
валидаторы разметки придумали еще в прошлом веке. в нормальном проекте ты даже коммит сделать не сможешь если у тебя код стайл-гайдам не соответствует. во всех иде автоформат включен перед коммитом.
Аноним 01/08/25 Птн 14:35:33 3510740 398
image.png 23Кб, 361x385
361x385
>>3510434
>Дык автор статейки и не разработчик.
Это многое объясняет, в том числе такое странное видения разработки и скиллов разработчиков

>Куда смотреть?
На питоне убогая ООП модель и поддержка ООП, поэтому в чистом виде ООП никто не пытается делать. Вообще ООП была в моде 20 лет назад и раньше, с тех пор ушли от этого.

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

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

Вот скрин с действительно неочевидным примером, скорее всего 90% ответят неправильно, как будут работать эти два класса, потому что в адекватную логику это поведение не вписывается

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

Нелогичной магии много, поэтому лучше этого просто избегать
Аноним 01/08/25 Птн 15:03:42 3510771 399
>>3509634
>В статье все по делу
Тащемта спорно.
Вот смотри:
> 55 == True is True
работает как
> (55 == True) and (True is True)
Круто. Но зачем мне это? Я знаю, что в цепочке
> Condition_1 or Condition_2 or Condition_3
я получу первое истинное утверждение или самое последнее, а в
> Condition_1 and Condition_2 and Condition_3
первое ложное или самое последнее. Это практически полезно потому, что ты можешь сделать что-то типа (пример из реального кода):
> ....def _enter_parameter(self, param: str, default: str = "") -> str:
> ........default = default or self.defaults[param]
Тут если значение по-умолчанию не пришло (оно определено для всех, но для кого-то оно переопределяется снаружи), то возьмётся значение из словаря.
Это - полезно и нужно от цепочек сравнения, а тот код это чисто лабораторная история, так что я не готов сразу сказать, в каком порядке он выполнится, я знаю, что bool(55) == True, но при этом True == 1 и True != 55, но приведённый код у меня в проекте никогда не появится в таком виде потому, что он нахуй не нужон.
Мне не нравится то, что интуитивно мне показалось, что это отработает как
> (55 == True) is True
которое будет ложным, но если его модифицировать до
> (55 == True) is False
то оно становится истиным.

Или вот:
{("a", [1, 2]): "value"}
Я как-то курил, так что я скорее всего правильно ответил бы. В процессе своих экспериментов я доходил до того, что делал ключом словаря кортеж функций. Но что важно, так это то, что по итогам я пришёл к мысли "ух, оказывается, как можно... Только НАХУЯ?" Эталонный троллейбус из буханки. А поскольку в реальном коде такого никогда не появится даже за 10+ лет практики, то этого нормально не знать.

Это я к тому, что критикуемый аффтаром ответ "у меня такого не было" НА САМОМ ДЕЛЕ единственно верный. Более того если у кого-то в коде ПОЯВИТСЯ такая конструкция, то я всерьёз спрошу с её втора, НАХУЯ. Потому что они почти все имеют неявное поведение, а в дзене питона сказано:
> Explicit is better than implicit.
При чём в самом начале, на второй строке. А использование такого мозгоёбства этот принцип нарушает.
Аноним 01/08/25 Птн 15:27:44 3510787 400
>>3510740
>множественное наследование крайне редкая штука, но иногда встречается
Дык в том и дело, что и тут, и на петухабре утверждают, что оно повсеместно встречается. Джанго два раза упомянули. Я открыл репу и не нашёл "повсеместного" использования. Вот у меня и конфуз. Может в сферах, отличных от разработки и обработки данных, это реально какая-то сверх-тактика, до которых ещё не дошли веяния из остального мира, где к наследованию уже пару десятков лет прохладно относятся, а уж к множественному тем более (независимо от языка)?
Аноним 01/08/25 Птн 17:51:02 3510906 401
image.png 66Кб, 840x337
840x337
>>3510787
На проекте, где я работаю, используется, но это MixIn

Смысл в том, что есть классы, описывающие объекты-модели Sqlalchemy через declarative_base, скрит из документации, и помимо Base добавляются ещё некоторые классы

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

В подобном варианте не только в алхимии используется, довольно часто, но всё-таки это не совсем множественное наследование. Здесь, например, предполагается обычно, что методы не конфликтуют друг с другом
Аноним 01/08/25 Птн 17:53:44 3510908 402
image.png 85Кб, 810x503
810x503
>>3510906
Чуть не то отскринил, вот пример из документации алхимии, как это выглядит
Аноним 01/08/25 Птн 18:16:20 3510915 403
>>3510771
>> 55 == True is True
>>работает как
>> (55 == True) and (True is True)
>Круто. Но зачем мне это? Я знаю, что в цепочке
Что забавно, что вот написанное пояснение автором это ещё в добавок полный бред
Потому что работает это так
(55 == True) is True
нет никого and
При этом True это сравнение по id, то есть
A is B
по смыслу эквивалентно
id(A) == id(B)
оператор is нужен только для того, чтобы сравнивать, что два класса это строго два одинаковых класса
В 99 процентах случаев нужен для
some_var is None

Автор не только спрашивает бесполезную херню, пытается ловить на невнимательности, но и сам не понимают в тех вещах, которые спрашивает
Аноним 01/08/25 Птн 18:34:50 3510921 404
>>3510915
>Что забавно, что вот написанное пояснение автором это ещё в добавок полный бред
Хотя нет, не бред в данном случае, а именно магия не очевидная совсем

У питона есть фишка, известная, что можно делать
a < b < c
и это исполняется как (a < b) and (b < c)
это очень полезная возможность, это бытовое интуитивное восприятие этого выражения

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

Не представляю в принципе код, где что-то такое может быть разумно
Аноним 01/08/25 Птн 19:02:04 3510947 405
image.png 25Кб, 587x573
587x573
>>3510915
>>3510921
Там чел сразу приложил пик в комментах. Но не автор статейки, что показательно.
Аноним 01/08/25 Птн 21:20:32 3511046 406
Тут выше был срач, что в питоне ненастоящее ООП. Я понимаю, что в данном случае тут течет жир, но вообще я не единожды встречал такой базар.
Что вообще под этим имеется в виду? Почему так говорят? Типа в питоне нельзя создать объект с некоторыми свойстваим или че?
Аноним 01/08/25 Птн 23:47:12 3511116 407
>>3511046
Настоящее ООП есть только в единственном языке Smalltalk
Аноним 02/08/25 Суб 03:06:17 3511145 408
image.png 45Кб, 368x142
368x142
>>3510915
>Что забавно, что вот написанное пояснение автором это ещё в добавок полный бред
>Потому что работает это так
Нет, это не так, автор тут прав.
Аноним 02/08/25 Суб 03:09:11 3511146 409
image.png 141Кб, 411x834
411x834
>>3511046
Это адепты единственно правильного и лучшего ООП языка в мире.
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов