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

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

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 602 82 163
Питон тред №163 /python/ Аноним 30/06/23 Птн 01:58:15 2748706 1
image.png 333Кб, 1118x628
1118x628
Тред, посвящённый языку программирования Питон, #163

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

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

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

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

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

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

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

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

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

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

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

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

старая версия шапки, треды 90-148 и ранее: https://dumpz.org/bASGKD8cCFDf
ps: анон, если ты вносишь изменения в шапку, оставляй ссылку на код с обновлённым исходником.
текущий исходник: https://goonlinetools.com/snapshot/code/#8gd2g1snu3l8i26k0bc6k9
Аноним 30/06/23 Птн 09:53:28 2748770 2
Кстати, напоминаю, что Питон - ненастоящий язык, который годится только для небольших скриптов и математических научных дрочилен.
Питон используют опытные погромисты как вспомогательный язык, поэтому если вы думаете, что можете вкатиться в айти, зная питон - вы глубоко ошибаетесь.
Аноним 30/06/23 Птн 10:43:20 2748795 3
>>2748770
Наверно, в циане, тиньке и яндексе он просто так используется?
Аноним 30/06/23 Птн 10:45:58 2748798 4
>>2748795
Это просто вкатун в СЕРЬЕЗНЫЙ ЯЗЫК сбрасывает фрустрацию.
Аноним 30/06/23 Птн 10:46:04 2748799 5
Groovy — как Python, но на JVM и не завязан на отступы синтаксически.
Аноним 30/06/23 Птн 10:51:04 2748808 6
>>2748795
>куд-кудах, а ищу твитор на питуне сделон
Тебе же русским по белому написали, что питухон вспомогательный. Это максимилизированная версия поговорки - "изи ту лерн хард ту мастер" Ты можешь выучить питухон и идти с ним на хуй, потому что что применение у него есть, только если ты нормальный погромист и используешь питухон для подсосных скриптовых задач.
Аноним 30/06/23 Птн 11:01:57 2748821 7
>>2748798
Да не, просто тролль совсем оскуфел, лениво перекатился в новый трет и лениво толсто набросил
Аноним 30/06/23 Птн 11:05:05 2748827 8
>>2748769 →
Спасибо что ответил, я действительно ценю ваш фидбэк и если какую херню пишу или думаю говорите.
1) Я собираюсь в дальнейшем восстанавливать математику отдельно для того чтобы закрыть вышку, а большинство курсов по Data Science дают, на мой неопытный взгляд, меньше питона и программирования, а стоят они на 70 к больше чем тот же курс по питону. Data science скорее долгосрочная цель потому что мне сложно представить что за 2 месяца (курс 5, считай 3 питон 2 математика) вообще можно их математики запомнить. По крайней мере мне всегда код (C++, Wolfram Alpha тогда учили) на порядок легче давался чем теоремы из мат анализа. Может нах не нужны в Data Science эти теоремы но даже если мы просто берём применение их правил я затрудняюсь представить сколько я за пару месяцев смогу запомнить и как я буду в этом соревноваться с кем то кто только что из вуза с мат специальностью туда идёт.

2) Hexlet и Skypro приглянулись но у них нет интенсивов/буткемпов. Если можешь поподробней описать чем Практикум лучше скиллфактори рад буду услышать. Стоит удовольствие на 70 к больше и длится на 2 месяца дольше, впрочем с меньшей нагрузкой в чём есть свои плюсы. Дело в том что мне в принципе курсы нужны не только, и не столько для того чтобы выучить питон, а для того чтобы получить хорошую базу,т.е. понимать что сегодня вообще хотят от кодеров, что такое фреймворки с чем их едят и т. д., и т. п., начать портфолио потому что как я писал в прошлом треде мне сложно самому себе задачи придумывать ибо в инете почти всегда есть способы это решить вопрос проще, быстрее и более организовано, чем самому писать. Может для опытного кодера это иначе но мой опыт пока такой и проще на курсах решать задачи из индустрии. У меня есть идея для пет проекта, может к тому времени как выучу питон еще что придумаю но хочется себя обезопасить.

3) Я уже начал вчера, эксперимента ради, Поколение Python, подошёл к 1му экзамену, пока немного скучно потому что в основном восстановление и переиначивание всяких принтов с слишком большим количеством на мой вкус закрепления материала, но в целом мне нравится. Чтобы выучить питон сам по себе я думаю меня самого хватит, но по моему в разы быстрее получится пойти на курсы чем разбираться самому какие еще связанные скилы нужны, как к ним подойти, как их связывать и как их лучше учить.
Аноним 30/06/23 Птн 11:06:56 2748830 9
Аноним 30/06/23 Птн 11:10:01 2748835 10
>>2748821
Рилли, гайс, шо за боринг шит... Сириосли, никому не нужны бар лэнгвиджи, ни питон, ни джава, ни другие. Стек технолоджисов нужен, в зависимости от филда. И компетеншн по программинку вообще.

И что значить "выучить питон"? Сюда модули socket, threading, asyncio входят?
Аноним 30/06/23 Птн 11:15:38 2748841 11
>>2748799
Все производные JVM не от оракла медленно но верно подыхают, причем груви с кложой уже трепыхаются в предсмертной агонии, а скала просто медленно умирает обосравшись с 3-й версией.
Аноним 30/06/23 Птн 11:16:29 2748842 12
>>2748808
>Тебе же русским по белому написали, что питухон вспомогательный.
И зачем в компаниях выше висят вакансии на программистов у которых основной язык питон?
Аноним 30/06/23 Птн 11:24:31 2748849 13
>>2748808
Как гласит народная мудрость, начни обсуждать любой язык програмирования, как сразу появится джаваеб, который расскажет, что ваш язык говно без задач
Аноним 30/06/23 Птн 11:25:10 2748850 14
Аноним 30/06/23 Птн 11:26:04 2748851 15
>>2748850
У вас имеется некий гештальт, не находите?
Аноним 30/06/23 Птн 11:43:06 2748870 16
>>2748835
Сразу видно вкатуна. Нужны тебе сокеты, смотришь доки на сокет.
Аноним 30/06/23 Птн 12:16:22 2748905 17
>>2748870
>Нужны тебе сокеты, смотришь доки на сокет.
пока ты не понимаешь, как сети работают, смотреть доки примерно бесполезно. Ну или ты будешь очень долго смотреть.
Аноним 30/06/23 Птн 12:32:38 2748920 18
>>2748905
Так и документацию бесполезно зубрить.
Аноним 30/06/23 Птн 13:32:20 2749008 19
image.png 5Кб, 264x217
264x217
Нужно 5 раз исполнить функцию, которая иногда выдает ошибку (из-за внешних факторов). Чекните пикрелейтед, это так делается? Почему-то кажется что что-то не то.
Аноним 30/06/23 Птн 13:57:51 2749052 20
>>2749008
Примерно так и решается. Можно чуток упростить. while i < 5 и инкрементируй при успехе.
Аноним 30/06/23 Птн 14:11:34 2749068 21
Аноним 30/06/23 Птн 14:22:53 2749082 22
>>2749068
Чтобы пытался исполнить, пока не получится.
>>2749052
Логично, спасибо.
Аноним 30/06/23 Птн 15:25:33 2749162 23
>>2749008
Неправильно же. in 5 не имеет смысла. Нужен range(5).
Аноним 30/06/23 Птн 16:26:39 2749209 24
>>2748706 (OP)
https://pastebin.com/Pg6SnyfL
Братаны, пытаюсь отменить назойливую таску в asyncio, которая иногда может зависать. Очевидно чт ов asyncio можно использовать wait_for с указанием таймаута, я так и делаю, но все что он делает это просто бросает эксепшн при истечении таймаута, таска в бекграунде в другом треде или процессе продолжает исполняться. Как ее кильнуть? Вроде все делаю как надо а эта мразь все равно крутится и не умирает (я поставил sleep на 10 секунд просто для простоты, мой условный sleep длится минут 10 и он блокирующий)
Аноним 30/06/23 Птн 16:29:47 2749212 25
>>2749209
Думал попытаться вручную отправить kill сигнал этому процесу (а это процесс т.к. ProcessPoolExecutor), но как его pid узнать?
Аноним 30/06/23 Птн 17:38:59 2749361 26
>>2749212
>>2749209
Почему ты не делаешь это через asycnio.subprocess?
https://docs.python.org/3/library/asyncio-subprocess.html
там поддержка всего есть, сейчас слёту код не приведу, но есть, делал такое

poolExecuter для другого, то когда тебе надо много задач считать
Аноним 30/06/23 Птн 19:32:26 2749498 27
>>2749361
Не проще таску заспавнить и потом прибить?
Аноним 30/06/23 Птн 20:24:03 2749585 28
>>2748850
Сочи хуй, быдло, есть только один настоящий язык - ассемблера и ближайший к нему С. И твоя джава рядом не стоит.
30/06/23 Птн 20:27:46 2749592 29
>>2749585
Славик спокуха, ты ещё курсовую за второй курс не закрыл.
Аноним 30/06/23 Птн 21:47:36 2749747 30
>>2748770
Питон -- топовый язык для экспериментирования, прототипирования и моделирования, за счет ебейшей интерактивности (не на уровне лиспа конечно, но близко) отладка и ходьба по граблям выходит на совершенно новый уровень. Потом можно уже разработанный алгоритм перевести на "серьезный" язык, если это необходимо.
Аноним 30/06/23 Птн 21:52:20 2749758 31
>>2749592
Но джава реально хуйня для макак.
В нулевые ее воспринимали хуже, чем сейчас питон. Над теми, кто писал на джаве, насмехались, был даже стереотип, что типичный джава-разработчик это максимально тупой индус, который не способен писать на более сложных языках. И в принципе стереотип был недалек от истины, до сих пор значительная часть легаси на джаве была разработана теми самыми тупыми индусами.
Аноним 30/06/23 Птн 23:23:28 2749871 32
>>2749758
>был даже стереотип, что типичный джава-разработчик это максимально тупой индус
жирно аж течёт
никогда такого не было, жава всегда была пафосной, сложной, с высоким порогом входа, типа если ты пишешь на ней, то ты крут. А вот скриптовые языки, все, всегда имели имидж языков для начинающих.

Сейчас, конечно, всё поменялось, но всё равно, порог входа в питон ниже, меньше понимать надо и учиться, чтобы хоть чего-то учебное суметь написать.
Аноним 30/06/23 Птн 23:32:30 2749884 33
>>2749361
poolExecuter нужен в первую очередь чтобы мейн луп не блокировать интенсивными задачами
Аноним 01/07/23 Суб 00:14:24 2749921 34
>>2749871
>сложной
Мантра придуманая индусами-джавистами.
Статическая типизация - это ведь сложно! x = "string" это хуйня которую напишет даже собака, не то что str x = "string", а потом еще и ide сама скажет, если ты к x будешь обращатсья как не положено, вот где хардкор!
Аноним 01/07/23 Суб 01:55:55 2749956 35
>>2749871
>никогда такого не было
Чел, ну кому ты пиздишь? Джава все девяностые и нулевые продвигалась как простой и понятный язык, который поймет даже полный дебил, и постоянно противопоставлялась "сложному и запутанному" С++.
Идея джавы - сделать простой язык с максимальной защитой от идиота, чтобы программист не смог выстрелить себе в ногу даже если бы он очень этого захотел.
Аноним 01/07/23 Суб 08:06:02 2750030 36
Аноним 01/07/23 Суб 09:49:22 2750044 37
>>2750030
ProcessPoolExecutor клал хуй на GIL
Аноним 01/07/23 Суб 15:52:10 2750245 38
image.png 3Кб, 248x80
248x80
Анончики, а как у вас в команде к пикрилу относятся? Имхо, отличная вещь, в своих хуитках я её всегда прикручиваю и конфигурирую на максимальную строгость, но вот на работе ситуация послежнее: в проекте вроде как есть mypy в зависимостях, но 1) со скручеными настройками строгости 2) все ложили болт на это дело - в CI тайпчекинга нет, половина комманды про mypy просто не знает, а для "типизации" иногда использует имена переменных с её типом в начале или в конце а-ля "users_list", "cached_data_map" сссука, пишет код обмазанный с ног до головы конструкциями типа "if hasattr(var, 'field')...", "getattr(var, 'field', None)" с аргумениацией в пользу этого по типу "ну бля а вдруг там нет этого поля, тогда эесепшен поднимется, а так всё хорошо будет ыыы" ссссука х2, при этом подшучивают над теми кто пишет на JS без тайпскрипта - ведь о Боже там же если интеджер со строкой сложить то какая-то хуйня получится и поэтому нужно весь фронтенд типами обмазывать а то там бля кнопка не в тот цвет покрасится!!!11!!! а на бэке тем временем даже аннотаций типов в функциях не ставят даже в простейших случаях где аргументы типа int, str, None и т.д.
Аноним 01/07/23 Суб 17:21:04 2750365 39
>>2749082
>Чтобы пытался исполнить, пока не получится
Анус поставишь, что не заблочишь прогу каким-нибудь говном?
Аноним 01/07/23 Суб 17:24:52 2750372 40
>>2750245
>Анончики, а как у вас в команде к пикрилу относятся?
Обязательно нахуй, вместе с pydantic или датаклассами. Уже был опыт пожирания говна при переписывании чужого сервиса который мешал 6-уровневые джсонины без каких либо подсказок что где приходит. Считай это обязательной частью документации и какой-никакой валидацией.
Аноним 01/07/23 Суб 18:55:57 2750458 41
господа я хочу установить
https://pypi.org/project/PyContracts3/
пишу pip install PyContracts3
в pip list отображается.

PyContracts 1.8.12
PyContracts3 3.0.2
python-contracts 0.1.4

запускаю проект состоящий из одной строки
import contracts

Получаю.
ImportError: cannot import name 'operatorPrecedence' from 'pyparsing' (/home/..../.pyenv/versions/3.9.7/lib/python3.9/site-packages/pyparsing/__init__.py)

Обновил пайпарсинг - опять такая-же ошибка. Начал откатывать пайпарсинги, откатил аж до 2.4.6 (c 3.1.0).
Начал ругаться AttributeError: module 'numpy' has no attribute 'int'.

Как мне подружиться с pycontracts?
Аноним 01/07/23 Суб 20:51:24 2750570 42
Безымянныйfdsag[...].png 36Кб, 889x342
889x342
Безымянныйfdsag[...].png 17Кб, 851x252
851x252
Подскажите как сделать чтоб вместе то что на скрине 1 заработало. Код на скрине 2 работает.
Так вот как их вместе подружить чтоб yt-dlp.exe запускался по ф4 и паузы на ф2 работали.
Пробовал и асинхронно и трединг, и так и так получается хрень. Для меня это новая тема и хочу понять как это всё правильно запускать вместе.
Суть в том что по ф4 запускается скачивание видосов, а нажимая ф2 приостанавливаешь процесс yt-dlp.exe или отжимаешь паузу, в зависимости от состояния.

import psutil, datetime, keyboard, subprocess, time
# Получаем список всех процессов с заданным именем
processes = [p for p in psutil.process_iter(['name', 'status']) if p.info['name'] == "yt-dlp.exe"]
def YTD_proc():
for process in processes:
if process.status() == "running":process.suspend()
elif process.status() == "stopped":process.resume()
print(f'YT-DLP.exe is {processes[0].status()} TIME {str(datetime.datetime.now()).split(".")[0]}')
def YTD_run():
subprocess.run('c:\\python\\yt-dlp\\yt-dlp.exe --continue --merge-output-format mp4 --format "137+140" -a c:\\python\\yt-dlp\\links.txt')
keyboard.add_hotkey('F4', YTD_run)
keyboard.add_hotkey('F2', YTD_proc)
while True:pass
Аноним 01/07/23 Суб 20:53:17 2750573 43
>>2750245
Я свой код валидирую периодически, чужой заебешься переписывать. Только майпай медленный сука.
Аноним 01/07/23 Суб 20:59:05 2750581 44
>>2750458
>Как
Начать использовать нормальный пакетный менеджер вроде poetry + контейнеризацию?
Аноним 01/07/23 Суб 21:51:59 2750633 45
>>2749498
Сюрприз: прибитая таска вовсе не означает прибитый процесс. Таска-то прибивается, а то что в фоне крутится отдельный тред или процесс, жрущий ресурсы, ивент лупу похеру
Аноним 01/07/23 Суб 22:25:25 2750662 46
>>2750365
Это не прога, а скрипт, если что я его просто вырублю.
Аноним 02/07/23 Вск 00:01:24 2750724 47
image.png 67Кб, 747x275
747x275
>>2749361
И как в эту херню передавать коллбеки?
сука, в очередной раз убеждаюсь что динамическая типизация - ебаный кал, как вы блять в этом дерьме разбираетесь? вот что эта сигнатура значит? что блять метод принимает?
Аноним 02/07/23 Вск 00:58:52 2750740 48
>>2750245
Тайп-чекинг в петухоне одобряю. Единственное, я считаю, что строгий тайп-чекинг нужен для либ, а для декларативного слоя можно вообще не юзать или юзать по минимому. У своих шкетов требую тайп аннотации, как часть документации.
Сижу и веду проекты на Pyright, плюс он в питоновский экстеншон VScode вшит, что тоже круто. mypy использую для малых проектов, либо без проектов с какой-то поддержкой, чтобы спустя время понимать, что происходит, но сейчас думаю вообще все на Pyright перевести.
Год назад разбирал подкапотье майпай и некоторые моменты там очень кривые.

Самый большой недостаток от введения тайп-чекинга на проектах - васяны начинают считать, что если функция проаннотирована, то она может быть калом. В итоге часто вижу кривое разбиение более сложных процессов на функции, которые возвращают сложный объект с аннотацией на 3 строки. Но решилось написание плагина на флейк.
Аноним 02/07/23 Вск 01:14:09 2750749 49
>>2750724
Імя параметра program табе пра што кажа?
Аноним 02/07/23 Вск 08:33:34 2750820 50
>>2750749
Пра гразнайе гавняная ачько старага педираста из Техникума Трасянки, каторый тут ищет малодиньких хуйцов.
Аноним 02/07/23 Вск 09:33:29 2750844 51
>>2750724
Рискну предположить что program это функция которая запуситися в отдельном процессе

>>2750820
Проиграл
Аноним 02/07/23 Вск 09:48:14 2750848 52
>>2750844
>Рискну предположить
Мимо. Ваше очко уходит в зрительный зал.
Аноним 02/07/23 Вск 10:11:32 2750855 53
image.png 40Кб, 864x374
864x374
Аноним 03/07/23 Пнд 07:51:58 2751780 54
>>2750458
может быть проще перестать использовать старое говно, которое никто не поддерживает, а поискать другое говно?
Аноним 03/07/23 Пнд 10:33:04 2751850 55
Стикер 585Кб, 250x250
250x250
Что в питоне самое тяжелое и сложное в обучении как думаете?
Аноним 03/07/23 Пнд 10:36:10 2751853 56
>>2751850
Ничего.
Easy to learn hard to master.
Аноним 03/07/23 Пнд 10:38:04 2751855 57
>>2751850
научиться программировать и понять как работают компьютеры
Аноним 03/07/23 Пнд 10:50:00 2751863 58
>>2750724
Никак, subrpocess это отдельный процесс который может быть вообще не на питоне, какие нахрен калбеки.
Аноним 03/07/23 Пнд 18:31:17 2752433 59
>>2751850
Дык, ООП и ФП, как обычно. Мозгов нет — хуй осилишь. Или тебе именно из особенностей конкретного языка? В Питоне сложно, что типизация динамическая. Заёбывает иногда ошибки искать. Ну и шиза и выебоны лично Опоссума, которого благополучно послали нахуй недавно, слава богу. То case-switch ему не нравится, то тернарный оператор весь как гавно собачье, то ++ нихатюнибуду. Блядь сапогом бы по еблу.
Аноним 03/07/23 Пнд 19:21:03 2752498 60
>>2752433
>то ++ нихатюнибуду
Так реально ненужная хуита
Аноним 03/07/23 Пнд 21:54:20 2752609 61
>>2752498
...сказал твой папка про гандоны. А зря...
Аноним 03/07/23 Пнд 23:29:29 2752749 62
Аноним 03/07/23 Пнд 23:44:18 2752767 63
>>2752749
Потому что оно в конце нубских книжек, до которого большинство не доходит?
Аноним 04/07/23 Втр 00:59:46 2752806 64
>>2752767
А я ни одной книжки по Питону в своей жизни не открыл. Единственное, что я изучал по книжке, это наверное Джаву, и то потому что маленький и глупый был
Самое сложное для меня лично это мультитрединг (сделан он как то странно, возможно из-за GIL), FFI и костылики вроде Numba.
Аноним 04/07/23 Втр 03:16:37 2752853 65
<сделай что-то с х> для каждого х из набора_х

Какой уебан это придумал?
Почему бы просто не писать:
Для х из набора_х:
....делай херню с х.
Аноним 04/07/23 Втр 05:05:53 2752856 66
16579500522761.jpg 111Кб, 960x639
960x639
че за Tishka сидит на каждом канале в телеге по питону и отвечает на все вопросы 24/7?
че за пиздец?
Аноним 04/07/23 Втр 08:24:58 2752923 67
Аноним 04/07/23 Втр 09:10:50 2752937 68
>>2752853
В чём проблема с компрехеншенсами, вкатутося?
Аноним 04/07/23 Втр 11:09:09 2753001 69
>>2752853
Ну так и пиши так, кто тебе запрещает? Насмотрелся "эффективных" решения во всяких кодворсах, где все пытаются запихнуть все решение в одну строку? Так то говноеды
Аноним 04/07/23 Втр 13:13:16 2753111 70
>>2752856
Чел без личной жизни, унылое говно по жизни, у которого есть один питон и больше нихуя.
Аноним 04/07/23 Втр 14:05:44 2753192 71
>>2753111
Помню, на реддите был тип с тремя питонами, бывает же.
Аноним 04/07/23 Втр 14:32:36 2753226 72
>>2753111
Это тот шизойд, что картинки с приглашением в свою секту форсит?
Аноним 04/07/23 Втр 16:28:20 2753386 73
>>2752433
>++ нихатюнибуду
i += 1 блестяще решает эту задачу, прекрасно считываясь и не оставляя пространства для выстрела в ногу.
Аноним 04/07/23 Втр 17:19:32 2753477 74
>>2753386
Знал бы ты настоящие языки программирования, то догадывался бы, что ++ можно использовать в выражении, причём, как до переменной, так и после. Что не только изящно, но и довольно интересно расширяет применение. Но увы, твоя планка — скрипты.
Аноним 04/07/23 Втр 17:33:14 2753517 75
>>2753477
>думать что есть настоящие\сложные\трушные языки программирования
Ваш iq - вафелька. Не сопротивляйтесь.
Аноним 04/07/23 Втр 18:20:13 2753590 76
>>2753517
Не попробовал в анус
> настоящие\сложные\трушные
хуи - не мужик.
Аноним 05/07/23 Срд 13:58:22 2754568 77
image.png 11Кб, 511x168
511x168
Суп. Пытаюсь понять: это нормальный кейс?
Или хуйня из-под коня и в функции нормально использовать только то, что ей явно передаётся.
Аноним 05/07/23 Срд 14:07:21 2754575 78
image.png 11Кб, 511x168
511x168
>>2754568
Просто с одной стороны неочевидно, где на самом деле задаётся значение и где его искать, а с другой...
У меня есть функция, которой нужно было бы передавать значение через весь стек на глубину в 5-6 вызовов, в каждой из промежуточных функций добавляя ещё один аргумент.
И таких функций - несколько, так что всего мне по хардкору понадобится добавить десятки передач, чтобы где-то там внутри параметр явно пришёл как параметр...
Всё, разумеется, происходит в пределах одного модуля.
Аноним 05/07/23 Срд 14:10:08 2754578 79
>>2754575
Можешь вверх вынести значения-константы.
Эта хуитка с нейм делается, чтобы не было левого выполнения при импорте. Присвоение значений в целом похуй, тем более, если оно будет использоваться в импортирумых функциях.
Аноним 05/07/23 Срд 15:11:40 2754656 80
>>2754575
>Просто с одной стороны неочевидно
Все очевидно, просто ты учишь питон по васянским книгам\гайдам.
В питоне (как и в любом языке программирования) есть области видимости, в случае питона у тебя их 4
https://data-flair.training/blogs/python-variable-scope/
Первая ссылка из инета, не читал, насколько хорошо подан материал

А то, что тебе надо передавать что то на глубину в 5-6 вызовов, это проблема дизайна твоего кода, очевидно, эту хуйню надо переписать, у нас же не джава что бы закапываться в 40 коллбеков что бы написать хелоу ворлд и потом смотреть всех как на говно
Аноним 05/07/23 Срд 16:33:55 2754773 81
>>2754568
>. Пытаюсь понять: это нормальный кейс?
Нет, совсем нет.
Глобальные переменные принципиальное зло. В крайнем случае, хотя не надо так делать, заведи какой-нибудь словать glob и в нём храни данные. Но не надо так делать,

Скорее тебе нужно смотреть на классы и объекты, скорее всего, если тебе надо проносить данные на несколько уровней вглубь, у тебя реально твои функции работают с одними данными и их следует оформить как методы, а переменные хранить как атрибуты класса

В реальной жизни твой кейс почти никогда не встречается. Бывает клиника, но тебе туда не надо
Аноним 05/07/23 Срд 16:37:48 2754777 82
братья, я тут себе попробовал 3.12.

Почему ОНО работает тормознее не только по сравнению с 3.11, но и часто 3.10?

Я ожидал, что ещё ускорят. Но не ждал, что продолбают перворманс
Аноним 05/07/23 Срд 16:38:18 2754778 83
>>2754777
Скидывай свои тесты
Аноним 05/07/23 Срд 17:49:48 2754912 84
Аноны, может кто видел на гитхабе репозиторий с софтом для простановки тагов картинкам (+ другим файлам) и их просмотра в этом же софте.
Приздец просто, такая прикладная задача же - поставлять тэги и фильтровать файлы на основе этих тэгов, а нормального софта для этого нет в 2023 году. Хоть сам садись писать. Я бы и написал, но время нет и не будет.

Уже десяток софтин перепробовал и везде какое-то говно не эргономичное. Самое близкое к идеалу TagSpaces, но в нем тоже много косяков, таких как например то, что программа ужасно медленная и всю инфу о тагах хранит в виде отдельных файлов а не в базе данных.
Аноним 05/07/23 Срд 17:56:38 2754925 85
>>2754912
Насиделся на бурах?
Оно кажется привлекательным на первый взгляд, но ты быстро забьешь и станет бесполезным. Вот с коммьюнити работает норм, потому что достаточное количество тегозадротов есть.
Аноним 06/07/23 Чтв 18:15:53 2756449 86
Ознакамливаюсь тут с вашим питоном, одна математика. Все ЯП такие? Он для чего то подходит кроме создания калькуляторов и разных статистических расчётов?
Аноним 06/07/23 Чтв 18:28:54 2756480 87
>>2756449
Питон сейчас язык номер 1 для всякой разной автоматизации
Аноним 06/07/23 Чтв 19:06:00 2756532 88
>>2756449
Грузить джейсоны можно ещё
Аноним 06/07/23 Чтв 19:20:46 2756551 89
В данный момент я пишу на PHP, но конкретный язык здесь большого значения не имеет, я вообще задумался над этим, когда пилил проект на Python, так что позволю себе спросить в нескольких тредах. Что рекомендуете почитать на тему обработки исключений? А именно, меня интересует два аспекта:

1. Как понять, в каких случаях стоит бросать исключения, а в каких нет? Например, есть у меня класс, который производит определённые манипуляции над файлами. Поскольку проект может быть запущен в несколько процессов, файлы я блокирую при работе, и блокировщик используется самописный, потому что так нужно. Блокировщик имеет два метода - заблокировать/разблокировать файл, над которым производятся манипуляции. Возникает вопрос - что делать, если выполняется метод unlock над файлом, который и так не заблокирован? Стоит ли в этом случае бросать исключение, которое говорит - атятя, ты пытаешься разблокировать файл, который не заблокирован? Или вести себя так, как будто файл был разблокирован? По сути ведь, результат такой же, как и при разблокировке. Разница лишь в том, что в данном случае файл изначально не был заблокирован.
С одной стороны, если бросать исключение, то это как-то более подробно что ли. Ведь по логике не должно быть ситуации, в которой я пытаюсь разблокировать незаблокированный файл. Если такая ситуация возникла, то это как бы не страшно вообще, но и не то, чего я ожидал. Брошенное исключение будет явно заметно и я что-то изменю в алгоритме. А если так и надо, то сделаю что-то типа `try { $lck->unlock("file.bin") } catch (FileDontLockedException $e) { ... }`.
С другой стороны... несколько противоречит KISS, не? В сущности, результатов работы у метода `unlock` может быть два: либо файл разблокирован и свободен для манипуляций, либо нет и лови исключение. Ситуации "файл был успешно разблокирован" и "файл изначально не был заблокирован" по своему результату идентичны.
Вот и как решить?

2. Есть две крайности. Одна - всякий раз кидать \Exception. Вторая - для каждой ситуации, в которой может быть брошено исключение, создавать собственный класс. Ну, может, в совсем уж одинаковых ситуациях использовать уже имеющийся класс исключения. Вопрос - как найти в этом золотую середину? Если на первый вопрос ответить "кидать исключение", то достойна ли ситуация "файл изначально не был заблокирован" отдельного класса исключения? А ситуация "ты пытаешься разблокировать файл, который был заблокирован другим процессом, и поскольку флаг forced не был передан - соси бибу"? А ещё какая-нибудь?
Аноним 06/07/23 Чтв 20:01:59 2756606 90
>>2756551
>сли выполняется метод unlock над файлом, который и так не заблокирован?
Исключения нужно бросать туда, где они могут возникнуть. То что ты описываешь это баг, баги надо фиксить, а не ловить в рантайме и обрабатывать
Аноним 06/07/23 Чтв 22:19:25 2756800 91
>>2756551
Есть мнение, что исключений лучше вообще избегать, т.к. они запутывают логику и стэк вызовов.
Аноним 06/07/23 Чтв 22:42:23 2756838 92
>>2754578
>Можешь вверх вынести значения-константы.
Оно получает значение посреди кода, в реальной задаче это не константа.
Константы - да, вытащены наверх и помечены UPPER_CASE'ом.
>Эта хуитка с нейм делается, чтобы не было левого выполнения при импорте.
Это я тоже в курсе, я не первый день пишу код а второй.

Вопрос в легитимности использования в обычной функции типа-глобальной переменной (abc), получающей значение где-то ещё (или не получающей). Эксперимент показывает, что переменная видится и доступна.
Мне с первого взгляда не понравились оба варианта. И 100500+ передач и использование в функции переменной, которая ХЗ, где получает значение.

>>2754656
>В питоне (как и в любом языке программирования) есть области видимости
Это азы, спасибо.
>в случае питона у тебя их 4
А вот это интересно. Особенно потому, что VS-Code показывает ДВА слоя (пик). Видимо, это потому, что в питоне есть только функции `globals()` и `locals()` (ну, ещё `vars()`, но это детали).
То что переменная недоступна за пределами места, где она объявлена это просто и понятно. А вот такой случай... Был не очень понятен.
В целом по этому материалу стали лучше понятны некоторые детали. В частности делать так, как на пиках в целом - норма.

>А то, что тебе надо передавать что то на глубину в 5-6 вызовов, это проблема дизайна твоего кода, очевидно, эту хуйню надо переписать
А вот тут ты хуйню спизднул, конечно. Причём полную.
Расщепление кода на отдельные методы несёт две цели:
1. Дедупликапция и переиспользование кода. В частности чтобы не было кучи мест, в которых при случае нужно вносить исправления:
лучше ошибиться один раз и потом тысчу раз обратиться к этой ошибке, чем ошибиться в тысяче мест;
и, если надо обновить логику, доработать функционал и т.п., то не надо искать все вхождения такого кода.
2. Дробление методов, чтобы каждый из них был достаточно компактным и проще отлаживался.

То есть если у тебя есть кусок, который всплывает неоднократно, есть смысл выделить его в отдельный метод.
Если твой метод разросся, то его надо дробить, иначе его правка превратится в кромешный ад. Обычная рекомендация: метод должен помещаться на один экран, чтобы его можно было охватить взглядом, хотя при современных размерах экранов это может быть много, PyLInt со своей стороны, например, рекомендует обойтись по-умолчанию 50 инструкциями и 12 ветками на метод, весьма разумное ограничение на мой взгляд.

Так что появление такого стека (максимум по коду 7 уровней, включая уровень модуля, т.е. 6 ретурнов до модуля) это уже результат оптимизации и рефакторинга. И это в модуле на 900+ LoC, то есть далеко не хэлоуворлд.

Собственно говоря, вопрос возник как раз в процессе рефакторинга, в частности сейчас я избавляюсь от глобальных переменных (оставляю только глобальные константы), избавился от присваивания им значение в функциях через `global`, возвращаю их в модуль ретурнами, обнаружил, что оно продолжило работать без проброса. Посмотрев примеры, прихожу к выводу, что так - норм (лишь бы имена не пересекались, вот это реально ПЛОХО).
Аноним 06/07/23 Чтв 22:44:08 2756841 93
image.png 2Кб, 124x99
124x99
Аноним 07/07/23 Птн 00:02:59 2756950 94
>>2754773
>Нет, совсем нет.
Я жопой чую, что что-то не так, но как математически выразить...
Ну и нашёл в сети немало примеров, которые используют подобный подход. Так что скорее "не совсем", нежели "совсем нет".
>Глобальные переменные принципиальное зло.
Аще не спорю.
>заведи какой-нибудь словать glob и в нём храни данные
А чем это вообще отличается от словаря globals(), если уж на то пошло?
>Скорее тебе нужно смотреть на классы и объекты
Не тот случай, пожалуй. На самом деле это довольно изолированный, пусть и большой скрипт, выполняющий одну конкретную понятную и нетрудную работу по валидации и сортировке данных. Он из категории "шоб работало" и из другого места его вызов просто не предусмотрен.
То есть обернуть всё в класс - вопрос небольшого времени и вообще совет понятен, я даже думал об этом, но решил, что нахуй-нахуй: я от этого не получу ВООБЩЕ ничего, кроме означенного места хранения некоторых переменных. Ни наследования, ни полиморфизма, ни инкапсуляции. Даже двух объектов этого класса никогда не появится просто по дизайну.
Аноним 07/07/23 Птн 00:57:01 2756986 95
>>2756551
Сложно вообще понять чего ты пытаешься достичь.
Похоже на то, что у тебя так программа и работает, что вызываются методы объекта, которые ничего с ним не делают, это твое "снятие блокировки". Это не исключение, это изъян в логике программы либо просто рядовое условие, называй как хочешь. if super_blokirovka: pook else srenk.
Аноним 07/07/23 Птн 08:30:56 2757076 96
>>2756986
Э, нет. В начале работы проверяется, заблокирован ли файл (технически - есть ли файл data.bin.locked, который является признаком того, что data.bin заблокирован).
Если он заблокирован, то N раз ждём и проверяем заблокированность ещё раз, спустя какое-то время пукаем и обмякаем, заявив, что файл заблокирован и разблокироваться не собирается, видимо.
Если он не заблокирован, то блокируем (создаём data.bin.locked) и начинаем работу. В конце работы обратно разблокируем (удаляем data.bin.locked).
Аноним 07/07/23 Птн 10:23:57 2757128 97
>>2756449
>Ознакамливаюсь тут с вашим питоном, одна математика.
Потому что у тебя одни математические задачи, очевидно же
Аноним 07/07/23 Птн 12:06:39 2757215 98
>>2756800
>Есть мнение, что исключений лучше вообще избегать, т.к. они запутывают логику и стэк вызовов
Нет такого мнения. Ты тредом ошибся, уходи отсюда вот сюда: >>2740805 (OP)
Аноним 07/07/23 Птн 12:10:41 2757221 99
>>2756950
>А чем это вообще отличается от словаря globals(), если уж на то пошло?
Документированностью, возможностью контроля. Всё-таки globals() это одна общая куча без возможности контроля.

Когда ты делаешь свой glob, ты уже видишь, где это используется, при желании ты можешь дополнительные инструменты реализовать, вместо обычного словаря чтобы это был объект, с возможностью контролировать, кто в него пишет и т.п.
Аноним 07/07/23 Птн 12:16:31 2757230 100
>>2756838
>Расщепление кода на отдельные методы несёт две цели:
Путаешь теплое с мягким
Аноним 07/07/23 Птн 13:26:12 2757333 101
изображение.png 374Кб, 1917x880
1917x880
изображение.png 31Кб, 542x460
542x460
Скачал ворованый курс по питону, там какой-то чвякающий хуесос. Пытался по нему заниматься, но вот просто невероятно противно гундосит в микрофон, плюс ошибки в слайдах, плюс шизофреническая непоследовательность в темах. А ведь люди за это деньги платят.
Открыл книжку и сразу пошло-поехало нормально. Только чет сегодня охуел с упражнения. Оказывается для того, чтобы его сделать надо следующую главу прочитать было, но все равно насколько же книга превосходит какие-то слитые курсы.
Аноним 07/07/23 Птн 13:28:13 2757336 102
>>2757221
>Документированностью, возможностью контроля.
Хм-м. Какой-то смысл в этом есть, НО. Всё-равно получается что у тебя глобальная переменная, при чём особый смак, что опять же ты ГДЕ-ТО пишешь в глобальную переменую. Вроде и более понятно, что это именно она, но её заполнение всё-равно будет где-то реализовано и, если ты успешно избавился от "redefining name from outer scope", то разницы считай нет, это ровно такая же запись в глобальную переменную. Только ещё вычурнее потому что для изменения в функции глобальной переменной со строкой тебе нужно в функции явно сделать global. А добавлять в dict новые записи можно без него и теперь вместо "а где у меня появляется эта переменная?" нужно думать "а где у меня в этот дикт добавляется такое поле?" и не факт, что это удобнее. Тогда уж лучше бессмысленные классы.

>>2757230
Чувак. Вот представь. У тебя есть портянка. Если весь код вытянуть в линию, то это будут тысячи строк. Ты берешь и чикаешь его и у тебя 50 000 строк превращаются в 7000 строк с функциями и глубиной в 2 уровня. А потом берёшь и чикаешь ещё, в итоге у тебя три уровня и 2 500 строк и 3 уровня, потом повторяешь ещё, видишь, что тебе сложно охватить целый метод и преврящаешь метод на 200 строк в три метода на 50 строк плюс россыпь вспомогательных, совсем уже по 3-10 строк (и ОПА, у тебя уже 5 уровней). Зато в другом месте ты делаешь универсальный метод и вместо 4 одинаковых методов ты получаешь один даже чуть-чуть поменьше и четыре чекера, передаваемых аргументами. А где-то на самом конце стека будет вообще двухстрочная фитюлина, хитро склеивающая строки с джойном и форматом, но вызываемая постоянно из самых разных мест. В итоге ты получаешь стек длинной до десятка ретурнов на ровном месте, зато поддержка кода не требует вообще никаких усилий потому что всегда можно легко и быстро понять, какой маленький кусочек кода что делает и поменять именно его. При этом сам код модуля у меня, например, 40 строк с комментариями.
Разделение кода на несколько функций приводит к тому, что у тебя увеличивается количество вызовов этих функций из разных мест. Неизбежно.

Даже большие системы теперь делают по схожему модульному принципу: компактные контейнеры плюс кубер, который ими погоняет и организует связи.
Аноним 07/07/23 Птн 13:46:08 2757350 103
>>2757336
Классы лучше

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

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

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

Что ещё возможно: ты можешь при необходимости свой словарь подменять на какой-нибудь другой объект, без переписывания кода. Этот объект может геттеры-сеттеры реализовывать, мы можешь отследить, кто какую переменную меняет (и откуда), настроить логирование и т.п. Конечно это больше гипотетически, вряд ли кто так часто делает.
Аноним 07/07/23 Птн 13:50:23 2757360 104
>>2757333
Добавлю еще ложку говна в курсы. Проявляется вообще очень важная проблема характерная для плохих преподавателей. Преподаватель ассоциирует ученика с собой. Он реально считает, что раз он (преподаватель) что-то знает, то знает и ученик и объясняет исходя из этого. А в книге исходят из того, что ты ничего не знаешь, ты вообще инопланетянин с планеты жопа, тебе сразу говорят, что ты конечно ничего не понимаешь, но тебя можно научить и учат.
Аноним 07/07/23 Птн 13:59:36 2757370 105
>>2757333
>какой-то чвякающий хуесос
Хуёво.
Но вообще курсы курсам рознь. И самое главное в них - не видосики, а поддержка: есть, к кому обратиться за пояснением, если нихуя не понял.
Так-то и без этого есть на ютапчике куча приличных плейлистов. Я, например, по одному такому джангу изучал, годно вышло.
Книги, кстати, тоже бывают разные.
По коду:
в целом неплохо и соответствует ТЗ, насколько я могу судить, не запуская, а это главное (мне, правда, показалось, что там должен быть int(), а не float(), но это толком не оговорено, а значит так можно). Но кое-что стоит поправить.
1. Нейминг. У меня от "chisla" глаза закровоточили. Даже "числа" смотрится лучше, но они оба хуже, чем "numbers".
2. Объявление переменной через вызов list()... Вроде, и норм, но как-то больше принято использовать литералы. Я сам предпочитаю typig + literal, то есть я бы сделал "numbers: list = []"
3. "if inp == 'done': break" лучше всё-таки разделить на две строки. Это не очень критично, но всё-таки улучшит читаемость.
4. Принты лучше сгруппировать после всех расчётов, чтобы ты сначала считал, потом выводил.
4.1. Я бы обошёлся одним принтом.
4.2. Добавить пробел внутри кавычек - стронгли рекомендед!
5. Пожалуй, самое главное: у тебя два вызова "sum(chisla)", то есть ты дважды проходишь по списку чисел и делаешь математику, хотя сумму ты сохранил и можешь использовать её ещё раз. Просто представь, что пользователь ввёл миллиард чисел, в этом случае ты сначала считаешь сумму миллиарда чисел, а потом... ещё раз её считаешь, чтобы разделить её на миллиард. МОжно же обойтись.
6. Добро пожаловать в 2023-й год, в наше благословенное время в питоне есть f-строки, категорически рекомендую применять именно их потому что так быстрее. Пруфы: https://habr.com/ru/articles/462179/ , бонус: https://habr.com/ru/companies/wunderfund/articles/674866/
Аноним 07/07/23 Птн 14:06:08 2757379 106
>>2757360
Это не проблема курсов, а проблема издателей. Любой даун может переварить и высрать в своем изложении ту же книгу или даже доку на ютубчик или какой-то удеми, чтобы заработать денег (принеся деньги и платформе, так что им это в любом случае выгодно).
Книжному издателю нужен вменяемый автор (которому надо заплатить), всякий там QC, подготовка-оформление, иногда ещё и печать (лул). Так что говно делать невыгодно и можно попасть на деньги.
Переводить говнокниги тоже смысла мало, тем более на нищерынке вроде постовка, так что берут самые ходовые оригиналы.
Вот так и получается.
Аноним 07/07/23 Птн 14:06:15 2757380 107
>>2757370
ИМХО критичнее то, что нет проверки на пустой список
Если пользователь сразу введёт done, то будет исключение от деления на ноль. Лучше сразу привыкать думать о подобных случаях
Аноним 07/07/23 Птн 14:08:33 2757381 108
>>2757379
про учебные книги, одно из самых лучших пособий - прямо в официально документации на питон
https://docs.python.org/3/tutorial/introduction.html

где-то был перевод на русский документации, среднего качества
Аноним 07/07/23 Птн 14:10:45 2757383 109
>>2757370
Да там числа хуисла не нужны, считаешь сумму и количество отдельно.
Аноним 07/07/23 Птн 14:12:13 2757385 110
>>2757370
Сохраню твой пост и поковыряю на выходных. А вообще это считай все же первые шаги в питоне, но мне нравится. Я не форсирую изучение, сразу по несколько тем за день не делаю хотя соблазн есть. Не хочу кашу информационную в голове, хочу все по полочкам.
Очень приятное ощущение, кстати, когда пишешь, не получается, что-то, а потом раз и заработало. Этакая мозговая щекотка.
Аноним 07/07/23 Птн 15:06:49 2757444 111
>>2757336
>Чувак. Вот представь. У тебя есть портянка. Если весь код вытянуть в линию, то это будут тысячи строк
Еще раз, ты путаешь теплое с мягким. ПРи чем тут калбекхел и расложения кода на классы\методы?
Аноним 07/07/23 Птн 15:27:41 2757472 112
>>2757380
Кстати, да. Не подумал.
>>2757383
А вот это предполагал, но это неочевидно, так что от новичка я такого не жду.
>>2757381
Я лично учился по вот этому:
https://pythonworld.ru/samouchitel-python
Годно и на русском. Но хорошо бы что-то уметь заранее. Иначе - Лутц - маст хэв. У него целый океан воды, зато если читатель воспримет 10% материала - этого уже будет достаточно.
Аноним 07/07/23 Птн 15:29:16 2757473 113
>>2757444
> Еще раз, ты путаешь теплое с мягким
Вот ты сейчас либо объясняешь, что хочешь сказать подробно, либо идёшь нахуй. Договорились.
Аноним 07/07/23 Птн 15:33:36 2757476 114
>>2757473
>Вот ты сейчас либо объясняешь
Сам поймешь, когда найдешь работу с хорошим архитектором и поработаешь там пару лет.
Аноним 07/07/23 Птн 15:36:10 2757481 115
>>2757476
> Сам поймешь
Блядь. И ради этого жидкого слива я распинался...
Аноним 07/07/23 Птн 15:38:51 2757488 116
>>2754777
Ниче не тормозит. Видимо у тебя проблемы.
Аноним 07/07/23 Птн 15:43:34 2757492 117
>>2757076
Вижу у тебя какая-то совсем калечная логика. В любом случае это не исключение, это просто условие.
Аноним 07/07/23 Птн 16:03:54 2757515 118
>>2757481
Вот именно, у тебя нет не опыта, не знаний, но ты распинаешься как будто ты рич хикки как минимум. Будь скромнее.
Аноним 07/07/23 Птн 16:19:11 2757534 119
image.png 146Кб, 938x1040
938x1040
>>2753477
Знал бы ты питон, то догадывался что всё неявное подведение из него выпиливается.
Аноним 07/07/23 Птн 16:57:52 2757582 120
>>2757481
Ты шизу какую-то написал с вытягиванием кода в линию и т.п. Вообще не понятно, о чём.

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

Причём ты сам же это описывает в своём примере, где ты хочешь глобальные переменные использовать, типа сложно проносить данные вглубь и т.п. Как раз иллюстрация одной из проблем.
Аноним 07/07/23 Птн 17:13:08 2757597 121
>>2757582
Чувак, ты всерьез споришь с чсв вкатывальщиком без опыта? Он прогает пару недель, но уже готовиться писать свои книги по питону и давать платные курсы. Забей.
Аноним 07/07/23 Птн 19:53:06 2757873 122
В одном легаси проекте мне надоела портянка ручных джойнов данных из кучи разных источников.
Хочу написать мини либу, в котором можно описать "таблицы" (условно датакласс который имеет разные id по которым его можно получать)
Создать связи между ними(просто набор ребер соединяющие таблицы по id). Дальше иметь возможность выбрать какое-то подмножество полей этих таблиц и эффективно получать эти данные и формировать результат содержащий таблицу со строками из всех запрошенных полей.

Собственно написать не сложно, но любопытно мб есть хорошее готовое решение, кажется что подобное нужно много кому
Аноним 07/07/23 Птн 19:58:06 2757879 123
>>2757582
>Ты шизу какую-то написал
Просто довёл до абсурда. Шизу написал чувак, который говорит, что код углублять нельзя и "функция" + ", в коде которой есть вызов функции" * x не имеет права на существование. Он как раз предпочёл бы плоский код без вызовов, видимо.
А на самом деле пока я не перешёл к этой модели код вообще не писался, любой более-менее сложный кусок приходилось вчитывать часами, а когда достаточно расщепил - всё само получилось.
>Код с глубокой вложенностью тяжело поддерживать.
Код без вложенности поддерживать сложнее. А когда абстрагируешься от реализации вложенной функции и принимаешь её как данность (ты же не лезешь, например, в код функции print(), ты просто принимаешь, что она работает), то всё становится хорошо.
> сложно проносить данные вглубь
Если бы текущая задача не была самостоятельным куском в себе, я бы переписал на классы, благо это реально на уровне "добавить 2 строки, поправить отступы, проставить перед переменными, использующимися за пределами функции 'self.'", я такое уже делал, но тогда от этого была практическая польза: было несколько объектов и потенциальный импорт модуля.
>>2757597
>уже готовиться писать свои книги по питону и давать платные курсы
В отличии от тебя - нет. Я вообще не называю себя этим грязным словом "программист". Я - практик, который время от времени пишет разный код. Рабочий код, ЧСХ. И никто на сложность поддержки не жаловался.
Аноним 07/07/23 Птн 20:00:38 2757885 124
>>2757873
>мб есть хорошее готовое решение
М-м-м... Postgres, например?
Аноним 07/07/23 Птн 20:10:34 2757908 125
>>2757885
Разные источники (хранилище в терабайты, всякие api, постгрес), чел бля.
Аноним 07/07/23 Птн 20:14:42 2757917 126
>>2757908
>Разные источники (хранилище в терабайты, всякие api, постгрес), чел бля.
Сразу бы так и писал.
Тогда GreenPlum. Удели особое внимание PXF.
Аноним 07/07/23 Птн 20:24:10 2757930 127
>>2757917
Мне точно не хочется тратить время и менять то как весь этот мусор хранится.
Опишу ещё раз
Есть процесс
1. В запросе shit_keys = [key1...keyn]

2. shits = fetch_shits(shit_keys)
shit_items = fetch_shit_items(shits)
...
Очень длинная хуевая цепочка где могут быть shit_shit_shit_items(..)

После весь этот мусор надо объединить.

Я вижу лёгкий способ сделать все это по человечески собственно в начальном посте я это описал
Аноним 07/07/23 Птн 20:45:26 2757956 128
>>2757879
>Просто довёл до абсурда. Шизу написал чувак, который говорит, что код углублять нельзя и "функция" + ", в коде которой есть вызов функции" * x не имеет права на существование. Он как раз предпочёл бы плоский код без вызовов, видимо.
Ты это сам придумал, и выдал за мои слова.
Я сказал, что ты не знаком с азами дизайна, и из твоих постов очевидно, что ты зеленый нуб, но ты на серьезных щщах пытаешься делать вид, что ты неебаться хакер. Со стороны это выглядит, как будто ребенок пытается объяснить взрослому как заполнить налоговую декларацию. Выглядит глупо. Успойся.
Аноним 07/07/23 Птн 20:50:21 2757965 129
>>2757879
>Я - практик, который время от времени пишет разный код
>Не знает про скоупы
>ДУмает что ооп это про классы
>Не знает азов дизайна
Нет дядя, ты - дурак
Аноним 07/07/23 Птн 20:52:55 2757967 130
>>2757930
Выглядит так, будто тебе реально нужен OLAP, собирающий разнородные данные, сейчас всяких DWH-решений уйма потому что любой бизнес старается анализировать всё вокруг.
Одно из решений Greenplum - он через PXF'ы цепляется ко всем возможным источникам (для невозможных придётся написать драйвер) и предлагает лютую мощь по выплёвыванию аналитики.
Можешь кликхаус покурить ещё, там тоже было что-то подобное. Даже писать ничего не надо.
Аноним 07/07/23 Птн 22:18:05 2758096 131
>>2757879
>грязным словом "программист". Я - практик
Господин программист, можно посмотреть на ваш код. Дайте пожалуйса ссылочку на ваш репозиторий.
Аноним 08/07/23 Суб 14:55:27 2758705 132
>>2757879
>грязным словом "программист"
Сразу запахло трёхнедельной мотнёй и шуточками про рваную анальную дырку.
Аноним 08/07/23 Суб 16:21:37 2758821 133
>>2757492
Что в ней калечного?
Аноним 08/07/23 Суб 18:44:48 2759020 134
image 1008Кб, 900x1280
900x1280
>>2756449
>Все ЯП такие?
Нет, конечно же. Рекомендую присмотреться к линейке С*.

>>2756449
>Он для чего то подходит кроме создания калькуляторов и разных статистических расчётов?
Это язык для ковыряние в статистике и аналитике при помощи т.н. «ноутбуков» (типа Юпитера). Самое оно сидеть и вертеть табличку с какими-нибудь данными, которые тебе мнс высрал за месяцы, пытаясь натянуть выхлопа на публикацию в научжурнале.
Аноним 08/07/23 Суб 18:45:47 2759023 135
>>2756551
Друзья-милорды на Петоне быстренько накидывают прототип проекта, чтобы посмотреть, чо как, а потом переписывают на нормальном языке по всей науке.
Аноним 08/07/23 Суб 22:31:29 2759259 136
>>2759023
Друзья-милорды на Петоне быстренько накидывают прототип проекта, чтобы посмотреть, чо как, а потом переписывают на JavaScript.
Аноним 09/07/23 Вск 11:59:23 2759508 137
Получаю лист вот такого вида
[{'name': 'test1', 'price': '123', 'number': '321'}, {'name': 'test2', 'price': '456', 'number': '789'}, ..., ]
Как с таким листом работать? Мне нужно из этого листа сформировать новый лист со всеми значениями "price", как это сделать?
Во всех гайдах по листам в списках просто перечисление элементов. Или это словарь? Но type() возвращает list
Аноним 09/07/23 Вск 12:07:24 2759522 138
>>2759508
Ааа, это же список словарей, все, я понял.
Аноним 09/07/23 Вск 12:35:16 2759579 139
Аноним 09/07/23 Вск 16:52:52 2759813 140
>>2759508
Синьор тимлид в треде. Вот твой код, не благодари.

lst = [{'name': 'test1', 'price': '123', 'number': '321'}, {'name': 'test2', 'price': '456', 'number': '789'}, ]
global price_list
price_list = []
for e, index in enumerate(reversed(lst)):
if index in list(lst) and type(e):
for index2 in index:
if index2 == 'price':
price_list.extend([lst[e][index2]])
print(price_list)
Аноним 09/07/23 Вск 16:55:25 2759818 141
Аноним 09/07/23 Вск 16:58:43 2759823 142
>>2759818
Да що ты будешь делать. Опять отступы украли. Ну ничего я не гордый.

lst = [{'name': 'test1', 'price': '123', 'number': '321'}, {'name': 'test2', 'price': '456', 'number': '789'}, ]
global price_list
price_list = []
for e, index in enumerate(reversed(lst)):
....if index in list(lst) and type(e):
........for index2 in index:
............if index2 == 'price':
................price_list.extend([lst[e][index2]])
print(price_list)
Аноним 09/07/23 Вск 17:00:46 2759828 143
>>2759813
Василий, не хотите ли стать кодером всемирной закулисы, ваш код это что-то невероятное.
Аноним 09/07/23 Вск 17:02:24 2759835 144
>>2759828
Рассмотрю ваш оферт в порядке очереди. Много вас таких, а я один. Высылайте на xxxsuperproffesonalprogrammerxxx@mail.ru
Аноним 09/07/23 Вск 18:54:55 2760036 145
>>2759835
Гугл по поиску мыла выдаёт только резюме какого-то админа в гейборделе. Ето ти?
Аноним 09/07/23 Вск 19:05:29 2760057 146
>>2760036
Да я там баристой работал до того как вкатился в айти и стал успешным тимлидрм.
Аноним 09/07/23 Вск 19:33:07 2760087 147
>>2760057
Все баристы пидоры.
Аноним 09/07/23 Вск 20:17:15 2760125 148
>>2759508
prices = map(lambda x: x['price'], list_name)
Аноним 09/07/23 Вск 20:18:35 2760128 149
>>2759823
И вот такие люди потом говорят, что питон говно.
Аноним 09/07/23 Вск 21:59:08 2760254 150
1688929571286.jpg 47Кб, 637x475
637x475
>>2760128
правда глаза режет
Аноним 09/07/23 Вск 23:08:54 2760298 151
>>2760128
...и оказываются правы.
Аноним 09/07/23 Вск 23:38:15 2760319 152
>>2760298
>>2760254
Представьте мир, если бы джависты тратили время на рефакторинг своего легаси говна, вместо того, что бы срать в питон тредах...
Аноним 09/07/23 Вск 23:59:35 2760347 153
>>2760319
Чел, анон тимлид, ему лучше знать про питон.
Аноним 10/07/23 Пнд 02:00:12 2760379 154
Питон охуенный язык, а те, кто на него выебывается, в основном просто знают его крайне поверхностно.
Аноним 10/07/23 Пнд 04:34:54 2760393 155
изображение.png 149Кб, 1299x446
1299x446
изображение.png 19Кб, 405x382
405x382
Продолжаю учить.
Аноним 10/07/23 Пнд 04:48:34 2760394 156
Петюня, что посоветуешь для динамического автодополнения аргументов для пинонячего скрипта из под беша?

Короче, написал программку, использую argparse чтобы принимать аргументы на входе. Один из аргументов это имена png картинок из одной определённой папки (количество может менятся от старта к старту). Хочу чтоб работало автодополнение из беша. Как решается?
Аноним 10/07/23 Пнд 05:05:06 2760397 157
>>2760319
У джавистов нет своего времени чтобы его тратить.
Все время принадлежит кабанчику.
Аноним 10/07/23 Пнд 09:33:46 2760488 158
>>2760394
Оно так и работает. Баш экспандит ДО передачи, если ты хочешь чтобы твоя хуйня обрабатывала такие маски, то так и надо делать.
Аноним 10/07/23 Пнд 09:39:55 2760493 159
привет
Аноним 10/07/23 Пнд 09:48:03 2760497 160
>>2760394
>Хочу чтоб работало автодополнение из беша.
Ставишь fzf просто поверх баша, потом Ctrl+T жмешь когда файл нужный надо найти.
В винде еще можно поставить поверх павершелла.
Даже если я не по теме ответил, fzf -- охуенная штука, всем рикамендую.
Аноним 10/07/23 Пнд 09:54:54 2760507 161
Господа петухонщики, вы как там, нормально у вас всё?

Качал тут на днях дипфейк тулзы (для гачи мемов), устанавливал все, настраивал. Крашнулась сборка из-за отсутствия Build Tools 2022. Ну ничё такого, установил, начал весь процесс по новой.

И ТУТ Я ПРОСТО ОХУЕЛ. Этот ваш PIP конченный уже скачанные пакеты валидирует и достает из кеша просто ЕБУЧУЮ ВЕЧНОСТЬ. Процесс, который в теории должен проходить за 10 секунд, длится минут 10, еще при этом периодически нагружая на фулл не самый слабый проц.

Более того, обратил внимание, что разные версии пакетов не встают на разных минорных версиях петухончика. Причем происходит это без каких-либо адекватных сообщений. Блядь, пришлось еще даунгрейдится с 3.11 на 3.10, чтобы всё завелось.
Аноним 10/07/23 Пнд 09:55:51 2760508 162
>>2760393
А че не в юпитере делаешь? Удобнее же. В вскод еще и интерактивный режим есть, когда можно работать с тетрадкой как с текстовым файлом.
https://www.youtube.com/watch?v=lwN4-W1WR84
Аноним 10/07/23 Пнд 10:00:33 2760514 163
изображение.png 119Кб, 1920x1039
1920x1039
>>2760508
>А че не в юпитере делаешь?
Что это?
>В вскод
А я как раз в нем и работаю.
Аноним 10/07/23 Пнд 10:02:51 2760519 164
>>2760508
Хуй знает, по-моему все эти ноутбуки только дата-дебилам удобнее.
Аноним 10/07/23 Пнд 10:27:57 2760536 165
Аноним 10/07/23 Пнд 11:24:35 2760573 166
>>2760507
>Этот ваш PIP конченный уже скачанные пакеты валидирует и достает из кеша просто ЕБУЧУЮ ВЕЧНОСТЬ
Проблема на твоей стороне
>Более того, обратил внимание, что разные версии пакетов не встают на разных минорных версиях петухончика.
А схуяли должны?
>Причем происходит это без каких-либо адекватных сообщений.
Там буквально написано, что не встало и почему

Вывод - ты ебанько
Аноним 10/07/23 Пнд 13:10:06 2760675 167
>>2759823
А нахуя тебе сторой цикл, если ты можешь сразу сделать index.get("price", 0)?
Аноним 10/07/23 Пнд 13:20:36 2760696 168
>>2760393
Можно быстрее, в одну строку:
> float(str[str.find(':')+1:])
Чтобы её прочитать быстро нужен навык, зато кода сильно меньше и не забиваешь голову промежуточными переменными и их неймингом.
Опять же нейминг:
"number"? Число то бишь? Что за число? Что оно значит?
Получил ты не абстрактное число, а позицию, на которой находится искомый символ.
"end_number"? Конечное число? Число конца? Порнография какая-то пошла в общем. Неочевидные названия - зло, если они используются не в двух строках подряд, но и там вопрос, нужно ли оно тебе.
Аноним 10/07/23 Пнд 14:33:28 2760783 169
>>2760696
>нейминг
Ты бы как назвал?
Аноним 10/07/23 Пнд 16:13:15 2760892 170
>>2760783
Как бы я решил задачу я уже написал. Полный вариант типа такого (пишу код прямо в форме ответа, без проверки):
> import sys
> str = "abracadabra:0.123"
> try:
> ....number = float(str[str.find(':')+1:])
> except ValueError:
> ....print(f"После двоеточия не float, а {str[str.find(':')+1:]}", file=sys.stderr)
> ....sys.exit(1)
Тут как бы в переменной number уже есть целевое число, дальше можно с ним делать, что хочешь.

Но если прямо нужно сохранить промежуточный параметр, то это позиция, на которой находится двоеточие, то есть что-то типа "colon_position".

В рамках задачи у тебя просто число (поэтому в коде выше оно названо "number"), но если подумать, то, судя по формату, тут это значение некоего параметра "abracadabra", так что впоследствии его будет удобно использовать в духе "abracadabra_value".

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

КСТАТИ. Важный момент. Упустил. Тебе же ещё ТОГДА: >>2757333
рассказали про try-except. Почему ты их не использовал? Тебе эта строка могла прийти откуда угодно: пользователь ввёл руками, прочитал из файла и т.п. Почему ты не предположил, что входной параметр может быть некачественным?.. Он ведь может и к этому нужно быть готовым.

И ещё про ТОТ случай: хорошим тоном является указывать, какую ошибку ты ловишь в эксцепте. Например, тут - "except ValueError:". Это нужно в частности потому, что можно обрабатывать разные эксцепшны в этом куске кода и конструкция может быть такой: try - except - except - except - else - finally.
Аноним 10/07/23 Пнд 17:48:55 2761086 171
>>2760508
Как интересно...
Я спрашивал, как правильно подставлять окончания слов в зависимости от количества и не получил ответа (вернее мне сказали, что я делаю это неправильно, но как правильно - не сказали, это тут вообще платина), а на той неделе всплыл строковый метод `format`, которым я теперь пользуюсь с большим удобством.
Ранее я спрашивал, как удобно запускать скрипты во внешней консоли и не получил никакого ответа, а сегодня вижу ЭТО.
Ну, пожалуй, для случаев с МНОГАТЕКСТА "console": "externalTerminal" по-прежнему удобнее, но и в таком подходе, как в видосике немало профита. Одно бесит: то, что он называет штатным функционалом работу плагина и при этом неочевидно, какого.
Для ЛЛ - плагин вот этот:
https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
В пипе ставится (vs поставит сам) ipykernel (плюс он по зависимостям тянет ещё 29 модулей), так что лучше сделать venv.

>>2760514
Если ты полный анальный раб винды, советую перейти на WSL (это не требует почти ничего), если нет - на Ubuntu. На линуксах просто не всплывает большое количество "особенностей", которые на виндах заёбывает решать.
Аноним 10/07/23 Пнд 22:05:49 2761491 172
menu_level = 1

1. Ебу мамку ОПа
а. Сильно функция f_1a()
б. Слабофункция f_1b()
в. Не стоит совсемфункция f_1v()
q. Выход из режима трахафункция f_1q()

2. ёбу батьку на спине мамки
а. аж возбудилсяфункция f_2a()
б. Слабо, не кончилфункция f_2b()
в. Не стоит писяфункция f_2v()
q. Выход из режима трахафункция f_2q()

inp = input("комманда?").strip().lower()

Как можно реализовать такой трах? В консоли, на чистом пистоне.
Аноним 10/07/23 Пнд 22:09:13 2761497 173
menu_level = 1

1. Ебу мамку ОПа
а. Сильно функция f_1a()
б. Слабофункция f_1b()
в. Не стоит совсемфункция f_1v()
q. Выход из режима трахафункция f_1q()

2. ёбу батьку на спине мамки
а. аж возбудилсяфункция f_2a()
б. Слабо, не кончилфункция f_2b()
в. Не стоит писяфункция f_2v()
q. Выход из режима трахафункция f_2q()


inp = input("комманда?").strip().lower()


Как можно реализовать такой трах? В консоли, на чистом пистоне.
Аноним 10/07/23 Пнд 22:25:09 2761528 174
>>2760519
Я тоже так думал пока сам не стал дата-дебилом
Даже если не использовать активно Юпитер в разработке (типа накидал код сниппетов - обернул их в функции - скопипастил в модули), быстро проверить как работает какая-нибудь фича языка или либы бывает полезно. А в обычном REPL это делать не очень удобно.
>>2760514
Ну посмотри видос то, лучше один раз увидеть.
>>2761086
>для случаев с МНОГАТЕКСТА "console": "externalTerminal" по-прежнему удобнее
Я просто пайпом в файл скидываю обычно.
Аноним 10/07/23 Пнд 22:25:57 2761530 175
Аноним 10/07/23 Пнд 23:25:42 2761595 176
Аноним 10/07/23 Пнд 23:58:41 2761612 177
>>2761528
>дата-дебилом
А чем именно занимаешься, если не секрет?
Аноним 11/07/23 Втр 00:15:42 2761628 178
Аноним 11/07/23 Втр 03:12:13 2761676 179
>>2761612
дибил, не видно что это препод ???
Аноним 11/07/23 Втр 06:34:56 2761691 180
123.png 287Кб, 1305x626
1305x626
изображение.png 345Кб, 1301x840
1301x840
изображение.png 51Кб, 667x656
667x656
>Иногда скучающие или желающие немного повеселиться
программисты добавляют в свои программы безобидные «пасхальные яйца» (Easter Egg).
Аноним 11/07/23 Втр 06:56:37 2761700 181
>>2761691
А вы, двачеры, сколько пасхальных яиц положили в свои программы?
Аноним 11/07/23 Втр 11:07:57 2761800 182
>>2761528
>Я просто пайпом в файл скидываю обычно.
Если интерактив, пожавлуй, не слишком удобно. Как минимум на этапе отладки взаимодействия: нужно видеть что было раньше и иметь возможность стопнуть и посмотреть, что в переменных.
Аноним 11/07/23 Втр 12:26:18 2761857 183
Подскажите, туплю - как убрать, а не округлить, определенное число символов после запятой?
То есть из 0.45678 получить 0.456, а не 0.457.
Аноним 11/07/23 Втр 12:31:01 2761867 184
>>2761691
Интересно, а шебаги там не показывали?.. Ну, похуй тащемта, это приятная мелочь.

М-м. А ты вообще тестировал свой скрипт?.. Хорошо тестировал?..

В принте пасхалки ты выводишь не ту строку, которую предлагают выводить в примере. Исправь. Это делается легко, есть два способа, по-хорошему найди их оба.
Файл открывается без параметров (кодировка, чтение/запись/етц).
Файл не закрывается! Это плохо.
Вообще рекомендую работать с файлами по возможности через `with`. Намного удобнее.
`continue` лучше вынести на отдельные строки. Хотя есть способ ещё лучше:
> if line.startswith("blah-blah-blah-param"):
И не надо ни сплитить неустраивающие тебя строки, ни ещё чего.
Код можно сделать чище:
> count += 1
> sum += ratio
`average` надо считать не внутри `for`, а после потому что он не используется и ты вхолостую гоняешь процессор. Это здесь и сейчас небольшая проблема, но однажды может вырасти.

Теперь вернёмся к вопросу про тестирование. А что будет, если в файле нет НИ ОДНОЙ подходящей строки? Если вычисление `average` будет как сейчас, то на последней строке ты упадёшь с `NameError: name 'average' is not defined`. Если вынесешь его расчёт за цикл - упадёшь с ошибкой `ZeroDivisionError: division by zero`. Можно, конечно, сначала (перед циклом) объявить его, скажем, тоже равным нулю, но правильнее сделать так: цикл проходит, потом проверить (не траем, а ифом), не равен ли каунт нулю и в зависимости от этого выдать либо одни сообщения, либо другие.

И ещё. Рекомендую завести полезную привычку: поставь себе flake8 (для него тоже есть плагины, покури тему сам) и pylint и добавь в VS соответсвующие плагины:
https://marketplace.visualstudio.com/items?itemName=ms-python.flake8
https://marketplace.visualstudio.com/items?itemName=ms-python.pylint
После этого на вкладке "problems" появятся вещи, которые линтеры считают неправильными, постарайся каждый раз избавиться ото всех них. Линтеры (т.е. статические анализаторы кода, программы, которые оценивают твой код и находят потенциально проблемные места) писали опытные люди и

Ещё почитай это:
https://habr.com/ru/companies/timeweb/articles/542286/
В том числе каменты, там, например, говорят про полезный
https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance
Аноним 11/07/23 Втр 12:34:42 2761873 185
>>2761857
Сходу костыль (скорее всего, внутри оно всё будет так же):
> def round_down(number, ndigits=0):
> ....return int(number * 10 ndigits)/10 ndigits
Аноним 11/07/23 Втр 12:36:45 2761876 186
>>2761873
Блджад. Звёздочки. Фикс:
> def round_down(number, ndigits=0):
> ....return int(number ✱ 10 ✱✱ ndigits)/10 ✱✱ ndigits
Аноним 11/07/23 Втр 12:51:03 2761885 187
>>2761867
>В принте пасхалки ты выводишь не ту строку, которую предлагают выводить в примере.
Кажись понял, надо repr() добавить?
Аноним 11/07/23 Втр 12:52:15 2761886 188
Аноним 11/07/23 Втр 12:56:18 2761890 189
Аноним 11/07/23 Втр 13:24:19 2761910 190
>>2761885
Пробуй. На самом деле есть два очень-очень простых варианта, и ХЗ, сколько менее простых. Я итак дал пару готовых советов по коду, попробуй с этим разобраться сам.

>>2761867
>шебаги
Опечатка. Должно быть "шебанги".
Аноним 11/07/23 Втр 13:33:34 2761923 191
image.png 37Кб, 1003x335
1003x335
>>2761857
Если используешь Decimal, то есть встроенные возможности.
Аноним 11/07/23 Втр 13:34:41 2761924 192
>>2761910
У меня есть вторая версия этой программы, но она ублюдская и мне не нравится. Прям вот отвращение вызывает. Там как раз через if делал, но, повторюсь, мерзотно. Даже я, совсем не разбирающийся в питоне понимаю, что получился какой-то франкенштейн, та версия которую показал получилась лучше.
За советы спасибо, поковыряюсь.
Аноним 11/07/23 Втр 14:22:11 2761956 193
кто знает, где можно достать бесплатные API русскоязычных новостных сайтов?
Аноним 11/07/23 Втр 15:34:40 2762018 194
>>2761956
На этих сайтах. Тебя конкретные интересуют?
Аноним 11/07/23 Втр 15:37:59 2762026 195
Аноним 11/07/23 Втр 16:05:27 2762079 196
>>2762026
Ни одно СМИ в мире ни разу в истории не опубликовало ни одной true story. Если не считать научных журналов, но и там мягко говоря не всё истина.
Аноним 11/07/23 Втр 16:08:53 2762093 197
>>2762079
Я имею в виду сайт thetruestory.news
Аноним 11/07/23 Втр 17:46:13 2762194 198
>>2760675
Нюфаня плз. Если не знаешь весь подкпот пайтона то хоть не позорься, всё что там написано сделано с определенной целью - понимание приходит только с долгим опытом разработки.
Аноним 11/07/23 Втр 17:55:16 2762207 199
>>2761956
Ходишь по "русскоязычных новостных сайтов" и смотришь, есть ли у них "бесплатные API".

У яндекса наверняка есть апи раздающее новости, у любых остальных ресурсов скорее всего нет просто никому это не нужно, а кому нужно просто парсер себе сделает.
Аноним 11/07/23 Втр 18:47:45 2762255 200
>>2762194
> подкпот
> пок-пок-пок
> похуй на O(n^2) вместо O(n).
Аноним 11/07/23 Втр 18:49:08 2762257 201
>>2762093
Не открывается. Но вроде у него есть как минимум RSS. Как и у большинства изданий.
Аноним 11/07/23 Втр 19:01:03 2762269 202
Помогите с openpyxl.
Хотел сделать в файле экселя границы ячеек.
Подключил
from openpyxl.styles import Side, Border
Сделал границы
Thin_border_top = Border(top=Side(style='thin'))
Применяю эти границы к ячейке
sheet.cell(row=1, column=3, value=1).border = Thin_border_top
и не работает. Не делает в ячейке границу.
Я даже пробовал полностью копировать примеры из инета, тоже не работает.
Запись всякого в ячейки работает, шрифты работают.
Аноним 11/07/23 Втр 21:51:04 2762415 203
Аноним 11/07/23 Втр 21:54:50 2762421 204
>>2761528
А еще есть такая фишка.
Разделить код скрипта на две клетки, в одном импорты и всякая инициализация, а в другом основной код. И если нужно отладить, то первая клетка запускается один раз, а дальше отлаживается чисто вторая клетка. Так можно сократить время между перезапусками дебаггера. Импорт торча например занимает несколько секунд, из-за этого перезапускать дебаггер каждый раз немного грустно.
Http binary packets Аноним 12/07/23 Срд 01:16:45 2762584 205
Привет, двач. Тыкаюсь в http. Есть задача по моделированию умного дома. Эмулирую хаб, который всем руководит.

Информация по сети гуляет пакетами. В двоичном виде. Закодирована с помощью URL-encoded unpadded Base64. Все пробельные символы отбрасываются.
type packet struct {
length byte(беззнаковое 8-битное значение)
payload bytes(массив байтов)
crc8 byte(беззнаковое 8-битное значение)
};
length - длина поля payload
payload - полезная информация
crc8 - контрольная сумма.

Делаю запрос. Получаю, например, b'DbMG_38IBgaMwsm1lDE5'. Декодирую через base64.urlsafe_b64decode(). Получаю b'\r\xb3\x06\xff\x7f\x08\x06\x06\x8c\xc2\xc9\xb5\x9419'.

Вообще не понимаю, что с этим делать дальше. Как из этого получить пакет? Каак? Помогите, пж
Аноним 12/07/23 Срд 03:24:58 2762607 206
>>2762584
>Делаю запрос
>Получаю
>Как из этого получить пакет? Каак?
Так ты его уже получил, дебил. Сначала в закодированном виде, потом перегнал в строку.
Аноним 12/07/23 Срд 08:13:55 2762682 207
123.png 532Кб, 1311x733
1311x733
изображение.png 28Кб, 518x400
518x400
1234.png 47Кб, 1193x990
1193x990
Чота я в сомнениях. Заглянул в лекции по питону от МФТИ, а там черепаху гоняют! Я тоже хочу черепаху гонять, а не текст уныло дрочить. Вот и думаю, сделать паузу в книге и уйти учиться по мфти или добить книжку и уже с книжными знаниями черепаху дергать?
Аноним 12/07/23 Срд 09:40:25 2762723 208
>>2762682
Учись по курсу "Поколение Петухон" на степике, там и текст, и черепаха есть и шахматы
Аноним 12/07/23 Срд 12:50:19 2762890 209
>>2762682
Вангую, что долбоебы реально вручную считали, чтобы получить этот важнейший факт, ещё до того, как придумали ЭВМ. Можно было бы подумать, что нет, но долбоебы они на то и долбоебы, так-то.
Аноним 12/07/23 Срд 13:27:13 2762907 210
>>2762607
так как мне их него инфу нужную вытащить?
Аноним 12/07/23 Срд 14:27:44 2762959 211
image.png 67Кб, 797x702
797x702
>>2762682
Ты вообще читаешь замечания к своему коду тут?
Правишь скрипты по советом анонов?.. Если нет, то не вижу смысла разбирать. Давай так. Пости все свои исправленные по советам выше скрипты и тогда я продолжу комментирование кода.

>хочу черепаху гонять
Можешь хоть лысого гонять. Черепашка предназначена для понимания алгоритмов вообще и всяких там циклов и функций уровня пика.
Знать по хорошему нужно всё, но задачки на черепаху более абстрактные и от них до реального кода отрыв больше, чем у книжек.
Аноним 12/07/23 Срд 14:38:55 2762969 212
>>2762959
Замечания читаю, кое что в прошлых переделал, но новые упражнения делаю прежде всего так, как в книге написано. Сначала функциональность, а потом вылизывание кода, все эти чеки ошибок и прочее, на что ты обращал внимание.
Касательно дальнейших комментариев твоих - я не принуждаю, можешь не комментировать.
Аноним 12/07/23 Срд 16:58:38 2763162 213
>>2762969
>все эти чеки ошибок и прочее
А на ус намотать и не повторять больше не хочешь? Почему у тебя опять файл не закрывается? Не поверю, что в книжке не говорилось об этом.
Почему без with?
Как раз в данном случае with даёт огромное преимущество потому что тогда файл предстаёт как генератор, а ты в своём коде просто берёшь и сразу его целиком читаешь, что намного менее эффективно в плане памяти. Загружать в память всего шекспира за раз - крайне сомнительная идея. А когда файлы будут не по 5-10 МБ, а по 5-10 ГБ? Тоже будешь грузить целиком?
Аноним 12/07/23 Срд 22:16:41 2763641 214
>>2762907
Скорее всего это и есть инфа которую приложуха использует для своей работы, дебс.
Аноним 12/07/23 Срд 22:25:15 2763655 215
Аноним 12/07/23 Срд 22:49:43 2763675 216
>>2763655
Школьник дегенерат, уходи.
Аноним 12/07/23 Срд 23:15:52 2763688 217
1624610979769.png 31Кб, 1290x405
1290x405
Привет, подскажите пожалуйста с одной задачей. Нужно в экселе на основании данных из одной таблицы отредактировать данные в другой, то бишь сравнить столбцы двух таблиц и если есть совпадения, то добавить несколько символов в одну из них. Как это можно реализовать? А хуй знает.

С ебучими продуктами пакета офис я вообще не взаимодействовал и не ебу с какой стороны заходить, поэтому первая мысль была про циклы в пистоне.
Аноним 12/07/23 Срд 23:41:11 2763711 218
>>2763688
Есть всего несколько библиотек для работы с экселевскими файлами - все в гугле хорошо описаны не ошибешся. Все они примерно одинаковые. Наверно самая популярная это openpyxl.
Но если ты совсем нюфаня в погромировании, то лучше сразу забей, порог вхождения в эту ебанину выше среднего.
Аноним 12/07/23 Срд 23:48:29 2763719 219
>>2763711
>>2763688
Добавлю, что если тебе нужно просто сравнение таблиц лучше делай это средствами самого эксела, там у него ещё и какой-то скриптовый язык свой есть. я помню 10 лет назад даже что-то писал на нем. Питон в этой задаче будет костылем, его имело бы смысл применять если бы тебе надо было жонглировать кучей файлов и управлять таблицами из другой прилажухи, а так - проще в самом экселе сделать.
Аноним 13/07/23 Чтв 00:03:19 2763733 220
>>2763719
>какой-то скриптовый язык свой есть. я помню 10 лет назад даже что-то писал на нем.
Бэйсик?
Аноним 13/07/23 Чтв 00:07:16 2763737 221
>>2763733
Да уже не помню точно, кажется да, VBA. Для сравнения двух таблиц более чем достаточно. Впрочем сравнить две таблицы можно наверное даже в ячейке внутри экселя с помощью формул
Аноним 13/07/23 Чтв 00:10:16 2763742 222
>>2763711
>>2763719
Да мне проще с опенпихл разобраться, чем ради одной хуйни эксель лопатить. Так что думаю костыль оправдан. Спасибо за совет.
Аноним 13/07/23 Чтв 03:42:47 2763810 223
упражнение 5.jpg 907Кб, 1297x1574
1297x1574
изображение.png 36Кб, 711x482
711x482
упражнение 6.jpg 258Кб, 1282x583
1282x583
изображение.png 39Кб, 559x468
559x468
Вечером примусь за словари
Аноним 13/07/23 Чтв 04:36:49 2763812 224
>>2763810
Ты хочешь чтобы тебя за твое сранье в треде все нахуй слали?
Аноним 13/07/23 Чтв 05:49:20 2763819 225
>>2763675
дибил, изыди из треда. Я в научных целях спросил, на примерах, доступных даже тебе, дибилу-школоте.
Аноним 13/07/23 Чтв 07:07:54 2763874 226
>>2763810
Братишка, давай в /dr/
Аноним 13/07/23 Чтв 10:20:49 2764028 227
image.png 28Кб, 1353x375
1353x375
Почему при выполнении main.py получаю ошибку ValueError: attempted relative import beyond top-level package ?
Аноним 13/07/23 Чтв 12:54:33 2764223 228
>>2763733
>Бэйсик?
В экселе от мелкомягких - всегда был только он. Вернее его допиленный вариант "Visual Basic for Applications" (VBA).
Одна из вещей, которые мне особо нравятся в Libre Office здорового человека: там тебя так не ограничивают и ЯП куда больше, среди них JS и Python. Так что, если MS не принципиален, можно сделать всё в либре.
Аноним 13/07/23 Чтв 13:04:42 2764231 229
Аноним 13/07/23 Чтв 22:17:53 2765094 230
двач как запрограммировать комп?
Аноним 14/07/23 Птн 03:22:22 2765232 231
16725270945280.gif 6633Кб, 320x320
320x320
>>2763162
> with даёт огромное преимущество потому что тогда файл предстаёт как генератор
Тащемта файл он всегда генератор, был генератором еще когда with и в проекте не было.
И тот факт что файл это генератор к расходу памяти никакого отношения не имеет.
Аноним 14/07/23 Птн 03:28:54 2765236 232
>>2765232
Ты какую-то хуйню написал. В контексте именно файла генератор как раз нужен чтобы большие файлы, которые в память целиком не влезут, обрабатывать маленькими кусками.
Аноним 14/07/23 Птн 03:41:36 2765240 233
1689295657997.jpg 15Кб, 667x217
667x217
>>2765236
Просто вызываешь .read() в цикле и всё.
Никакие генераторы не нужны кроме как для украшательства
Аноним 14/07/23 Птн 11:28:03 2765423 234
>>2765240
>вызываешь .read()
И в этот момент прочитается весь файл.Да. я вижу дополнительные параметры, но ты попробуй так сделать с текстовыми файлами и дай гарантию, что слово не порвётся посередине.
Для текстовых файлов зайдёт readline().
Аноним 14/07/23 Птн 16:35:03 2765901 235
image.png 2Кб, 229x54
229x54
Данный код ввёл меня в ступор.

Использую питон больше года. Задавайте ответы.
Аноним 14/07/23 Птн 16:44:47 2765913 236
>>2765901
И что тут может быть непонятного?
Ты больше года работаешь с питоном и до сих пор не знаешь, что bool наследован от int?
Аноним 14/07/23 Птн 16:47:42 2765919 237
Аноним 14/07/23 Птн 17:12:32 2765960 238
Есть тут кто в fastapi разбирающийся?
Аноним 14/07/23 Птн 18:12:18 2766056 239
>>2765236
>В контексте именно файла генератор как раз нужен чтобы большие файлы, которые в память целиком не влезут

Ну так считывай контент файла по чуть-чуть а не целиком. И with тут ни при чём, он просто гарантирует закрытие файла
Аноним 14/07/23 Птн 23:28:52 2766495 240
Аноним 14/07/23 Птн 23:31:52 2766500 241
image.png 80Кб, 1348x644
1348x644
Сука, пол дня сегодня проебался с простейшей задачей на степике. Если мне тяжело такое решать - у меня есть шансы, просто нужна практика, или программирование это не моё?
Аноним 14/07/23 Птн 23:56:49 2766535 242
>>2766500
Ну это простая задача. Какие у тебя мысли по поводу её решения?
Аноним 15/07/23 Суб 00:08:18 2766550 243
>>2766500
Не факт, что такое решение предусматривалось, но
def get_biggest(arr):
____return int(''.join(sorted(map(str, arr), reverse=True))) if arr else -1
Аноним 15/07/23 Суб 00:09:26 2766552 244
image.png 73Кб, 1264x794
1264x794
>>2766535
Ну я её в итоге решил неким подобием пузырьковой сортировкой, но это явно не оптимальное решение.
Аноним 15/07/23 Суб 00:10:36 2766555 245
>>2766550
не, обосрался, на [9, 98] неправильно работает
В одну строчку в общем не получится
Аноним 15/07/23 Суб 00:11:52 2766557 246
>>2766550
Это как раз первое, что мне пришло в голову, но это не работает.
Например, у нас на входе числа 7, 71, 72 - такой код выдаст 72717, а должно быть 77271.
Аноним 15/07/23 Суб 00:14:29 2766559 247
>>2766550
Разумеется это неправильное решение, лол.
Аноним 15/07/23 Суб 00:16:36 2766560 248
>>2766557
>>2766555
не, можно чуть проапгрейдить и сделать в одну строчку
return int(''.join(sorted(map(str, arr), reverse=True, key=lambda x: x+'z'))) if arr else -1
Аноним 15/07/23 Суб 00:21:30 2766564 249
>>2766560
Да что ты говоришь, анон.
И что у тебя выведется для [1, 12] ?))
Аноним 15/07/23 Суб 00:24:22 2766568 250
image.png 58Кб, 1518x431
1518x431
>>2766560
Тоже не будет работать, пикрил

какого-то хуя спам-фильтр не пропускает список чисел, поэтому пришлось делать скрин
Аноним 15/07/23 Суб 00:27:15 2766571 251
>>2766568
Сложноватый у тебя контрпример)
Аноним 15/07/23 Суб 00:30:52 2766576 252
>>2766571
Я просто по тестам, прилагающимся к задаче, прогнал и первый зафейлившийся тест выложил.
Выше приводили более простой аналогичный пример - >>2766564
Аноним 15/07/23 Суб 00:36:31 2766580 253
>>2766552
> пузырьковой сортировкой
https://www.youtube.com/watch?v=6nQZVS657Ew
Сильно неоптимально.
>>2766500
Вижу два пути, но придумывать реализацию лень.
1. Перебрать комбинации, выбрать максимальную. Реализуется максимально просто (например, через itertools.product), результат гарантирован, но работать будет пиздец медленно.
2. Сначала перегнать числа в текст, потом сортнуть по алфавиту (от сортировки по числам, понятно, придётся отказаться), потом склеить и перегнать назад в число. Но есть тонкости. Например, если начало совпадает: в 2, 21 короткое число должно быть раньше, а в 1, 12 - позже.
Аноним 15/07/23 Суб 00:56:04 2766590 254
>>2766580
> сортировка за квадрат - слишком не оптимально
> в качестве альтернативы предлагает полный перебор
Ебать ты клоун.
Аноним 15/07/23 Суб 00:56:34 2766591 255
>>2766580
> Но есть тонкости.
Это не тонкость, а суть задачи, анон)
Аноним 15/07/23 Суб 01:48:02 2766608 256
>>2766552
Вот вам ванлайнер, работающий за NlogN:
lambda arr: int(''.join(sorted(map(str, arr), reverse=True, key=functools.cmp_to_key(lambda x, y: -1 if x+y < y+x else 0 if x+y==y+x else 1)))) if arr else -1

Учитесь, малята.

зы. Ну ванлайнер, по модулю того, что надо functools импортировать...
Аноним 15/07/23 Суб 02:03:52 2766612 257
>>2766552
Впрочем, это то же, что у тебя на скрине, только сортировка заменена на более эффективную. Непонятно, что тебе помешало сделать то же самое.

Ты, к слову, понимаешь, почему это решение работает?
Аноним 15/07/23 Суб 02:04:35 2766613 258
>>2766608
за NlogN \times MAX_STRING_LEN конечно же.
Аноним 15/07/23 Суб 09:12:24 2766732 259
image.png 76Кб, 1826x284
1826x284
Аноним 15/07/23 Суб 10:44:36 2766767 260
>>2766608
Охуеть, спасибо.

>>2766612
>Ты, к слову, понимаешь, почему это решение работает?
Ну я не знал про cmp-функции и про то, что их можно запихнуть в сортировку, но вроде разобрался, спасибо.

>>2766732
Я по акции за 1.5к купил.
Аноним 15/07/23 Суб 15:33:45 2767112 261
>>2766767
> Ну я не знал про cmp-функции и про то, что их можно запихнуть в сортировку

Я скорее не про реализацию говорил - с ней-то всё понятно более-менее, а про сам алгоритм. Понятно ли, почему алгоритм (который ты сам в общем-то реализовал) выдаёт правильный ответ? Впрочем, если говоришь, что разобрался, то уже и не важно. Всё хорошо, значит.
Аноним 15/07/23 Суб 16:24:58 2767237 262
pic1.PNG 158Кб, 1679x923
1679x923
pic2.PNG 89Кб, 1679x965
1679x965
pic3.PNG 73Кб, 1679x947
1679x947
>>2748706 (OP)
Двач, только начал учить питон. Есть задача - получить код страницы dzen.ru. В браузере показывает код нормальный - пик1. Но через GET запрос на питоне выдает вообще другую хуету - pic2. А вот если кинуть ссылку на двач, например, то код дает нормальный код страницы.

Слегка загуглив, нашел, что это пидоры владельцы сайта там какую то ссаную защиту от парсинга установили. Как обойти эту защиту ебучую, может кто в курсе?
Аноним 15/07/23 Суб 17:23:12 2767323 263
>>2766608
>cmp_to_key
А зачем это тут? Это же функция которая конвертирует cmp(). которого в питоне 3 больше нет?
Аноним 15/07/23 Суб 17:49:52 2767370 264
>>2767323
> А зачем это тут?
> Это же функция которая конвертирует cmp(). которого в питоне 3 больше нет?

Ты сам на свой вопрос только что ответил. В python3 у sorted() нет параметра cmp, а есть только параметр key. Поэтому если ты хочешь использовать для sorted кастомный компаратор (то есть callable, принимающий 2 параметра, а не один), то его надо каким-то образом конвертировать в то, что ожидает на вход key, то есть в callable, принимающий на вход 1 параметр.
Аноним 15/07/23 Суб 18:15:51 2767435 265
>>2767237
>Как обойти эту защиту ебучую, может кто в курсе?
Эти "защиты ебучие" разрабатывают серьёзные дяди за большие деньги, та что раз ты так быстро сдулся и пошёл спрашивать - то никак :)
Аноним 15/07/23 Суб 18:16:25 2767437 266
>>2767370
Оооо, ничего себе. А что именно тогда там лямбда принимает в качестве аргументов? Два следующих друг за другом значения из map ? 0_о
Аноним 15/07/23 Суб 19:04:37 2767526 267
>>2767437
Параметр key ожидает на вход callable c одним параметром. Что это за callable? Это callable, который принимает на вход один элемент массива и возвращает "ключ". Ключ - это какой-то объект, который и будет использоваться при сравнении вместо непосредственно элемента массива, по которому он был построен. То есть представь себе процесс сортировки. В какой-то момент у тебя возникает необходимость сравнить элементы a и b. Вместо того, чтоб сравнивать их непосредственно, алгоритм делает так:
key_a = build_key(a)
key_b = build_key(b)
is_greater = key_a > key_b
где build_key - это ровно тот callable, который был передан в sorted через параметр key.

А что же делаеть, если всё-таки хочется использовать кастомный компаратор. То есть ф-цию, которая принимает на вход 2 параметра и говорит, какой из них больше? Обзовём эту ф-цию compare(a, b).
Тогда можно поступить так.
Создадим класс TKey, в котором конструктор принимает на вход число (которым в итоге будет элемент массива) и компаратор (то есть какой-то callable, принимающий 2 параметра). Число положим в поле value, а компаратор в поле cmp. И перегрузим метод __le__ для этого класса (напоминаю, что это метод отвечающий за то, что к объектам класса можно применять оператор сравнения <= ). Так вот внутри __le__, на вход которого приходит тоже один параметр (назовём его other), мы просто вызовем self.cmp(self.value, other.value).

Теперь можно легко определить лямбду, которая принимает на вход произвольный компаратор и возвращает объект, пригоный для передачи в key. Эта лямбда определяется так: lambda cmp: lambda x: TKey(x, cmp)

Пример кода на пастебин: https://pastebin.com/AA4X1wTk

зы. В functools почти наверняка реализация более красивая. Наверняка там можно как-то использовать метаклассы или что-то в этом духе, чтоб не передавать явным образом компаратор в конструктор. В частности, это бы дало гарантию, что у всех сраниваемых объектов одинаковые компараторы (в моей реализации такой гарантии строго говоря нет).
Аноним 15/07/23 Суб 19:58:02 2767724 268
>>2766590
>> сортировка за квадрат - слишком не оптимально
Она долгая. Если уж ебаться со своей сортировкой, то чего бы не реализовать что-то более приличное.
>> в качестве альтернативы предлагает полный перебор
Не столько предлагаю, сколько... IRL делал такое. Всегда приходится решать задачи, исходя из компромиссов. Так вот, иногда на решение отводится минимум времени и в этом случае можно вместо дорогого времени программиста использовать, пусть и неэффективно, дешёвое время процессора.
Код с полным перебором уже написан и займёт две-три простые, понятные и легко воспроизводимые строки.
Для разовых задач считаю допустимым. Если кто-то тут заявит, что он прям никогда так не деле, то он либо лжец, либо никогда не решал практических продуктовых задач.
> Ебать ты клоун.
Дык, ёпта.
Аноним 15/07/23 Суб 21:57:07 2767933 269
>>2767435
>та что раз ты так быстро сдулся и пошёл спрашивать
Я не сдулся, а пытаюсь решить проблему, в том числе интерактивно, спросив на дваче. А так то я уже нашел инфу в гугле.
Аноним 16/07/23 Вск 10:24:47 2768306 270
залупасинтаксис.PNG 76Кб, 1232x294
1232x294
задроты здесь?
поясните про этот синтаксис с lambda и равно внутри лямбда, чет раньше не встречал, и в инете инфы мало
Аноним 16/07/23 Вск 10:25:10 2768307 271
>>2767526
Ничосе питон для продвинутых пользователей пк. Надеюсь без практики я это не забуду через пол года. Т.е. мы с помощью functools заменяем этот компаратор в сортировке на свой в виде лямбды. Странно, почему деды не встроили по умолчанию в сортировку для этого отдельный параметр key=foo, cmp=bar...

Впрочем это слишком сложно для меня ещё, я лучше напишу 5,10,20 строчек в отдельном блоке кода чем такое буду применять. Мое абстрактное мышление со скрипом осознает и представляет в виде объектов все эти многоэтажные перекаты из одного callable в другой. Впрочем, раньше и рекурсию со скрипом понимал, а сейчас более-менее ясно вижу.
Аноним 16/07/23 Вск 10:30:59 2768317 272
image.png 73Кб, 1303x516
1303x516
>>2768306
ОТМЕНА, ЛОЖНАЯ ТРЕВОГА
это прост DEFAULT ARGUMENTS
фух, чуть не обосрался от страха думал, что какой-то новый синтаксис, который я не знаю
мимо помидор
Аноним 16/07/23 Вск 12:17:42 2768410 273
>>2768317
>мимо помидор
Оцените уровень "помидоров" в петухоне
Аноним 16/07/23 Вск 13:29:06 2768471 274
>>2768410
оценил тебе защеку, проверяй
Аноним 16/07/23 Вск 14:00:01 2768492 275
>>2768317
Какой то жидкий ты помидор.
Аноним 16/07/23 Вск 14:07:01 2768501 276
>>2768492
Бариста-помидор, новый сорт.
Аноним 17/07/23 Пнд 14:17:44 2769824 277
>>2748770
Мантры джавапитухана?
Аноним 17/07/23 Пнд 15:15:14 2769951 278
image.png 27Кб, 899x244
899x244
Подсажите в чем проблема, алембик не видит при автогенерации таблицу компании, хотя её импортирую, а вот Users видит
Аноним 17/07/23 Пнд 23:13:50 2770682 279
>>2769951
Тебе вообще не надо их импортировать, алембик сам из метадаты их подтягивает (из registry если быть точным). У тебя скорее всего какая-то проблема с моделью/генерацией миграций. Покажи класс Companies и покажи какой командой генерируешь миграции.
Аноним 18/07/23 Втр 16:10:55 2771642 280
>>2768410
Двачую, помидору лет 20, устрашился лямбды, я хуею. Я миддл с этим сталкиваюсь уже года два и упраздняю в чужом говнокоде, потому что только упоротые дегенераты пихают лямбду там, где не надо и наоборот не используют, раздувая код на +20 строк, там где можно одной лямбдой обойтись.
Аноним 19/07/23 Срд 01:10:45 2772354 281
>>2770682
>Тебе вообще не надо их импортировать, алембик сам из метадаты их подтягивает.
Откуда они возьмутся в метадате если их не импортировать ни разу по твоему? Как раз таки импортировать модуль с модельками в env.py норм практика.
Аноним 19/07/23 Срд 06:40:35 2772417 282
1674026360426.jpg 26Кб, 312x424
312x424
>>2771642
Какие же все-таки уебищные лямбды в плюсах.
По сравнению с этим пиздецом, лямбды в питоне просто верх совершенства.

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

Все зло в мире от людей, как же я их ненавижу.
Аноним 19/07/23 Срд 13:56:51 2773080 283
>>2769824
Шварпист залётный. Его язык настолько хорош, что он не может не поделиться с нами, сирыми и убогими сокровенным знанием о том, что на самом деле наш ЯП - вообще не ЯП.
Аноним 19/07/23 Срд 16:03:31 2773319 284
Анон, за сколько бы ты взялся за написание скрипта/бота, который пиздил бы новые фоточки с аккаунтов и групп в ВК и выкладывал их в телеграм канале?
Аноним 19/07/23 Срд 16:40:11 2773385 285
Аноним 19/07/23 Срд 19:09:42 2773701 286
Аноны нужна срочная помощь django stripe
Аноним 19/07/23 Срд 19:30:06 2773736 287
Аноним 19/07/23 Срд 19:46:29 2773766 288
Аноним 19/07/23 Срд 20:02:06 2773789 289
>>2773766
Ступай к вьетнамцам. И так скинул.
Аноним 19/07/23 Срд 23:28:25 2774012 290
>>2748706 (OP)
Учил питон последний год, и вот теперь узнаю, что появился МОДЖО который его заменит.
И что теперь делать? Получается я впустую потратил время на устаревшее говно?
Аноним 20/07/23 Чтв 00:09:19 2774065 291
>>2774012
Да. Пиздуй в Дикси за кассу.
Аноним 20/07/23 Чтв 02:52:13 2774184 292
изображение.png 142Кб, 474x474
474x474
В чем профит от лямбда функций? Почитал, поделал примеры - хуйня какая-то.
Пишут про какое-то там упрощение, но я увидел только усложнение.
Аноним 20/07/23 Чтв 09:54:38 2774329 293
>>2774012
>появился МОДЖО
Может, тред по нему зделоть?
Аноним 20/07/23 Чтв 10:24:38 2774360 294
>>2774184
По-быстренькому определять функции там, где их надо передать как параметр. Вот здесь хороший пример для сортировки: https://blogboard.io/blog/knowledge/python-sorted-lambda/

Кроме как использовать в качестве параметра, больше полезных применений нет.
Аноним 20/07/23 Чтв 17:06:51 2775031 295
16471126719360.jpg 101Кб, 764x1080
764x1080
Ребята, что такое рекурсия?
Аноним 20/07/23 Чтв 18:56:28 2775226 296
>>2775031
Вот чел отвечал уже на этот вопрос >>2775226
Аноним 20/07/23 Чтв 18:57:14 2775227 297
>>2775226
Ебаная макаба испортила мне ответ.
Аноним 20/07/23 Чтв 19:15:52 2775246 298
>>2775031
Попробую объяснить...
Рекурсия это когда вот так:
>>2775031
Аноним 20/07/23 Чтв 19:36:35 2775285 299
>>2774012
Он еще не вышел, не факт, что взлетит, и Питон он скорее всего никогда не заменит, т.к. большинству юзеров Питона он не нужен, они подрочат на скорость циклов и вернутся в CPython.
Аноним 20/07/23 Чтв 19:43:46 2775291 300
>>2774184
Ну ты не будешь же новую именованную функцию объявлять чтобы передать ее в map или filter.
Просто в Питоне вместо мапов и фильтров часто используют лист компрехеншены, т.к. они сразу дают лист, а не ебучий генератор, поэтому ньюфаги не знают, олдфаги не помнят.
А в ФП наоборот мапы и фильтры юзают чаще, чем компрехеншены, потому что лаконичнее.
Аноним 20/07/23 Чтв 19:45:12 2775294 301
Аноним 20/07/23 Чтв 20:15:49 2775331 302
Кто пишет в VS Code? Там есть темы с неоновой подсветкой, типа Synthwave84( https://github.com/robb0wen/synthwave-vscode ). Но у меня подсветка не работает НИХУЯ. Погуглил, типа надо менять файлы, либо откат до 1.6Х версии делать, потому жлектрон-браузер удалили. Откат не пробовал, но пробовал править вручную, по гайдам, запускал от администратора ясен хуй, но один хрен не светится. Вот на стаковерфлоу( https://stackoverflow.com/questions/73266964/why-cant-synthwave-84-enable-neon-dreams-on-windows ) писали как типа сделать можно, но не помогло. Один хуй не светится А я хочу чтоб светилось красиво и я себя ощущал дохуя мамкиным хакером таинственным, буду кодить калькулятор в маске Гая Фокса и т.д. ЧЯДНТ? ЩИТО ДЕЛОТЬ? Пизда красиво, я хуею нахуй, хочухочухочу.
Аноним 20/07/23 Чтв 21:14:34 2775390 303
gigachad.jpg 33Кб, 593x656
593x656
>>2775331
Пишу в вскод, юзаю дефолтную темную тему.
Аноним 22/07/23 Суб 07:56:32 2777145 304
16881475761110.jpg 90Кб, 400x429
400x429
Не могу зайти на сайт пайторч лайтнинга, сразу клоудфайр отрубает
Рус айпи блокирнули? WTF?
Спасибо дядя, попрогромировал AI

https://lightning.ai/
Аноним 22/07/23 Суб 08:06:07 2777151 305
>>2775331
С такой темой надо выглядеть как Карина, а не как кулхацкер...
Аноним 22/07/23 Суб 09:43:31 2777224 306
Снимок экрана.png 57Кб, 1014x853
1014x853
Аноним 22/07/23 Суб 11:46:44 2777333 307
Аноним 22/07/23 Суб 15:14:33 2777613 308
>>2775331
Выглядит как кошачья блевотина. С такой подсветкой глаза за пару часов кодинга из орбит вытекут и голова заболит.
Аноним 22/07/23 Суб 15:24:49 2777634 309
Привет, парни. Поясните за смысл метаклассов. Я понял как они работают, но не понял зачем они нужны. Мудреная залупа какая-то.
Типо, они не позволяют создавать экземпляры класса наследника, если в нем не унаследованы все функции из метакласса указанные через декоратор.
Вопрос... А нахуя это надо то? Где это используется? Обычная защита от дураков?
Аноним 22/07/23 Суб 16:18:49 2777697 310
>>2777634
То, что ты описал, называется абстрактные классы, а не метаклассы. Нужны как база для наследования, когда нечего писать в методе, потому что может очень гибко использоваться.
Аноним 22/07/23 Суб 16:33:46 2777712 311
>>2766500
numbers = [1, 2, 3]

def get_biggest(arg = numbers):
if len(arg) > 1:
return sorted(numbers)[-1::]
else:
return 1

print(get_biggest())

Решил за 53 секунды. Такой вариант решения считается?
Аноним 22/07/23 Суб 16:42:22 2777723 312
>>2777697
А, сорян. Я все перепутал. Спасибо за пояснения, теперь понял.
Аноним 22/07/23 Суб 17:52:06 2777812 313
14803586760800s.jpg 3Кб, 162x170
162x170
Питоняшки, дайте совет нуфагу.
Допустим вам понадобился компилируемый язык в пару к питону. Ну не знаю, например, чтобы "обходить острые углы производительности" каких-нибудь йоба-циклов.
Какой вы бы выбрали: С++, Rust, Golang или что-то иное?
Аноним 22/07/23 Суб 18:01:23 2777823 314
Тайп хинты не нужны. В чем я не прав?
Юнит тесты все равно писать нужно, а если есть тест, то типы проверять смысла нет. Единственное стоящее применение это валидация во всяких пайдантиках.
Аноним 22/07/23 Суб 18:17:30 2777839 315
Какая-то ебанутая херня.

У меня есть папка backend. Внутри имеется папка app и tests.

Внутри папки app: __init__.py, main.py и папка routers внутри которой __init__.py, auth.py. Я делаю импорт в main.py: from routers.auth import auth_router. Все работает.

Переходим в папку tests внутри которой: __init__.py и test_main.py. Я делаю следующий импорт внутри test_main.py: from app.main import app и нихуя не работает.
Дает: from routers.auth import auth_router
E ModuleNotFoundError: No module named 'routers'

Какого хуя?
Аноним 22/07/23 Суб 18:20:31 2777846 316
>>2777712
И что твое решение делает?
Оно же просто сортирует лист по возрастанию и возвращает срез из одного последнего элемента.
Аноним 22/07/23 Суб 18:21:42 2777849 317
>>2777812
Swift Вроде бы обычно используют Go, C или C++ в зависимости от задач.
Аноним 22/07/23 Суб 18:42:02 2777866 318
>>2777839
Закинь папку tests в app
Аноним 22/07/23 Суб 18:43:40 2777869 319
>>2777846
Возвращает самое большое число из отсортированного списка, либо единицу. В этом же была задача.
Аноним 22/07/23 Суб 18:44:11 2777871 320
>>2777846
Возвращает самое большое число из отсортированного списка, либо единицу. В этом же была задача.
Аноним 22/07/23 Суб 19:57:46 2777944 321
>>2777839
Почитай про относительный импорт.
Аноним 22/07/23 Суб 20:12:44 2777965 322
IMG202307230010[...].jpg 33Кб, 795x878
795x878
>>2766608
Боже, что это такое. Как эту хуйню запустить, блять?
Аноним 22/07/23 Суб 20:37:14 2777981 323
>>2777871
[0,9,1] -> 910 будет самое большее число
Аноним 22/07/23 Суб 21:07:11 2777996 324
>>2777869
Ну ты хоть задачу прочитай внимательно.
Надо вернуть максимальное число, которое можно составить из чисел массива.
Аноним 22/07/23 Суб 21:35:25 2778023 325
Аноним 22/07/23 Суб 23:03:35 2778078 326
>>2777965
Если ты понятия не имеешь что это такое и как "это" запустить, то нахуя тебе это надо?
Аноним 22/07/23 Суб 23:22:38 2778083 327
>>2778078
Чтоб знать как сортировать более эффективно и запускать подобные конструкции в дальнейшем.
Аноним 23/07/23 Вск 00:04:46 2778102 328
>>2748770
>Питон - ненастоящий язык
Что это значит? Полагаю, что ты плохо разбираешься в языках и программировании вообще.
Аноним 23/07/23 Вск 00:06:20 2778103 329
>>2748808
Обоснуй. На Питоне можно писать все то же самое, что и на других языках общего назначения.
Аноним 23/07/23 Вск 00:07:14 2778104 330
>>2748827
>Hexlet и Skypro приглянулись но у них нет интенсивов/буткемпов.
У Хекслета есть.
Аноним 23/07/23 Вск 01:30:03 2778165 331
>>2777812
Выбирай язык, который знаешь или хотел бы узнать. Или более подходящий под задачу. К сожалению, не существует универсальных языков. В каждом есть свои плюсы и минусы.
Аноним 23/07/23 Вск 12:43:11 2778360 332
>>2777965
Кароч, так и не понял как эту залупу запустить.

>>2777712
Все, переделал.

def get_biggest(arr):
if len(arr) > 1:
for i in arr:
for x in arr:
for k in arr:
lst = list(str(i)+str(x)+str(k))
return ''.join(lst)
else:
return 1

print(get_biggest([1, 2, 3]))

На это у меня ушло уже 8 минут. Знаю, что возможно есть способы лучше, но я нюфаг.
Аноним 23/07/23 Вск 15:35:09 2778548 333
>>2778083
>более эффективно
>в дальнейшем
Ебать ты шиз. Перезвоним.
Аноним 23/07/23 Вск 15:58:20 2778569 334
>>2778360
То есть ты просто написал свой код вместо старого? Это не называется "смог запустит". А в чём была проблема с запуском исходной версии кода?
Аноним 23/07/23 Вск 15:59:49 2778570 335
>>2778360
> Все, переделал.
Что ты переделал лол? Что твой код вообще делает? А что изначальный код делал?
Аноним 23/07/23 Вск 16:08:03 2778584 336
>>2777965
> print(lambda ... )
Ой бля... Чел, а ты понимаешь вообще, что такое лябмда? И ещё вопрос на засыпку: тебя не смущает, что у тебя вот в твою ф-цию get_biggest передаётся некий arg, но в теле ф-ции он нигде не используется?
Аноним 23/07/23 Вск 17:15:44 2778658 337
>>2778548
Ладно.

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

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

>>2778584
>ты понимаешь вообще, что такое лябмда
Да.
>передаётся некий arg
Не обращай внимания, я просто много что перепробовал и забыл исправить перед скрином.
Кстати, результат я вывести всё-таки смог.
Аноним 23/07/23 Вск 17:48:24 2778672 338
IMG202307232146[...].jpg 24Кб, 786x476
786x476
>>2778658
>Нужно было вернуть наибольшее число из этих трех чисел игнорируя повторяющиеся числа.
Вот, всего-то строчку надо было добавить.
Аноним 23/07/23 Вск 17:49:24 2778673 339
>>2778658
Чел, забудь про этот cmp_to_key. Тебе это не пригодиться в ближайшие 2 года точно, только голову себе забиваешь. А если куда-то и применишь, то потом только жалеть будешь т.к. читаемость в разы снизилась.
Тем более если у тебя возникают вопросы уровня "как это запустить", то тебе это точно не нужно. Вот когда станешь тимлидом 300к в наносекунду как все мы в треде, вот тогда к этому вопросу вернешься, да и то врядли.
Аноним 23/07/23 Вск 18:02:55 2778685 340
>>2778673
>только голову себе забиваешь
Ну, я как бы это коплю, сортирую и сохраняю всякую интересную фигню у себя в облаке, чтобы вернуться к этому потом и по изучать, а чтобы применять повседневно подобное, до конца не разобравшись, у меня и в мыслях даже не было.
Аноним 24/07/23 Пнд 01:09:38 2779083 341
Аноним 24/07/23 Пнд 13:45:01 2779470 342
IMG202307241739[...].jpg 24Кб, 797x431
797x431
>>2779083
Да, обосрался, но теперь точно работает. Даже запарился и перепроверил всеми известными мне видами сортировок.

>>2766608
А это нихуя не работает.
Аноним 24/07/23 Пнд 17:11:21 2779840 343
>>2779470
>А это нихуя не работает.
Чел, сколько дней ты уже тред засираешь, уймись уже. Тебе самому не стыдно? Пошел бы уже давно и сам разобрался, нет двадцать постов надо написать что ничего не работает. Это говорит только о том, что ты даже базовый синтаксис питона не знаешь.

import functools
foo = lambda arr: print(int(''.join(sorted(map(str, arr), reverse=True, key=functools.cmp_to_key(lambda x, y: -1 if x+y < y+x else 0 if x+y==y+x else 1)))) if arr else -1)
foo([19, 8, 7])
Аноним 24/07/23 Пнд 17:11:38 2779842 344
Ребята, вы не способны объяснить новичку, что такое рекурсия!!!
Аноним 24/07/23 Пнд 17:12:28 2779845 345
>>2779842
Чтобы понять рекурсию нужно понять рекурсию.
Аноним 24/07/23 Пнд 17:47:09 2779918 346
>>2779840
Я не про то. Ты ее запускал вообще? В задачке же прямо сказано: найдите НАИБОЛЬШЕЕ число которое можно составить из трех чисел. Взгляни на образец в примере.
Если же прогнать через эту лямбду список вида [16, 9, 321], то она выдаст 932116.
Правильным решением будет 963211, как у меня, потому что это наибольшее число.
Аноним 24/07/23 Пнд 17:57:18 2779945 347
Аноним 24/07/23 Пнд 18:01:12 2779956 348
>>2779918
У тебя логика сломана.
Задача была вернуть число "составленное из чисел из списка"
Например [16, 9, 321] 16 это число из списка, числа 6 в списке нет. А ты зачем-то рассматриваешь числовой элемент списка "16" как строку и извлекаешь из этого элемента числовые символы "1" и "6". Этого согласно условиям задачи делать не нужно.
Аноним 24/07/23 Пнд 18:16:19 2779989 349
>>2779918
>как у меня
Твое ошибочное понимание задачки, только упрощает её, кстати.
arr = [16, 9, 321]
print (int(''.join(sorted(''.join(map(str, arr)),reverse=True))))
Аноним 24/07/23 Пнд 18:23:07 2780001 350
>>2779918
Я просто не верю, что такие дегенераты бывают на самом деле. Пожалуйста, скажите, что это троллинг.

//мимо
Аноним 24/07/23 Пнд 18:29:11 2780019 351
>>2780001
Наоборот сейчас курсы наносеков на каждом углу и это обычное дело.
Аноним 24/07/23 Пнд 18:46:07 2780064 352
>>2779956
Понятно. Хуйня, а не задача, давали бы тогда четкие ограничения.
Аноним 24/07/23 Пнд 19:04:21 2780080 353
>>2780064
> четкие ограничения
Что значит "чёткие ограничения"? Задача сформулирована чётче некуда блядь.

> хуйня задача
Жаль только, что ты её не решил.
Аноним 24/07/23 Пнд 20:15:00 2780140 354
>>2780080
>Жаль только, что ты её не решил.
Главное, что смог бы.
Аноним 24/07/23 Пнд 20:37:54 2780160 355
image.png 2Кб, 85x54
85x54
Аноним 24/07/23 Пнд 20:41:07 2780163 356
>>2779918
Спасибо, анон, благодаря тебе я уже не чувствую себя полным дебилом.
>>2766500 кун
Аноним 24/07/23 Пнд 20:56:54 2780175 357
>>2780140
Судя по тому, какую хуйню ты тут нёс, едва ли ты понимаешь понимаешь решение этой задачи.
Аноним 24/07/23 Пнд 21:28:08 2780207 358
>>2780163
Зачем ты его так приложил. Он хоть и тред засрал, но по крайней мере не выебывается. А ведь часто заходят такие вкатуны, которые как только почюяли, что припустили в протки - сразу закатывают глаза и начинают агрессивный ультровизг т.к. признавать свои ошибки это не по их понятиям.
Аноним 24/07/23 Пнд 21:44:12 2780225 359
>>2780163
Кажется, я начинаю понимать почему даже сеньеры-помидоры редко стараются кому-то помогать.
Аноним 24/07/23 Пнд 22:34:24 2780250 360
>>2780207
Так этот долбоёб тоже своих ошибок не признаёт. И учить нихуя не хочет. Он тут насрал 20 однотипных постов с "посмотрите какой кал я в очередной раз высрал, теперь всё работает. А, кстати, а то что вы писали до этого - не работает и не запускается". Причём ему указыавешь на ошибки, а он всё это тупо игнорирует и говорит, что это уже не актуальные версии кода. Ну не актуальные, так хули ты тут срёшь своей шизой вообще?

Этот даун даже условие задачи за несколько дней не смог понять. А после того, как ему наконец разжевали, что надо сделать, он тут же высрался, что составители задачи тупые, а сама задача триавиальная (при том что он даже более простую её вариацию решил через жопу, лол).
Аноним 25/07/23 Втр 00:10:31 2780321 361
>>2780225
Чел, там выше >>2767526 анон два километра текста накатал объясняя подкапот сортировки и компаратор, в прошлом треде рандомному залетуну тг бота написали. Это буквально самый лучший и отзывчивый тред на всей доске, а ты не ценишь. Может проблема в тебе.
Аноним 25/07/23 Втр 12:50:28 2780656 362
>>2766608
>key=functools.cmp_to_key(lambda x, y: -1 if x+y < y+x else 0 if x+y==y+x else 1)
Двач 2023, итоги.
Нахуя это здесь, кроме как перед вкатунами-школьниками повыёбываться?
Рабочее решение всегда будет O(n * log n) из-за сортировки, но ты зачем-то игнорируешь reverse, насильно пропихивая туда ключи, обмазанные говном. Ты ебанутый?
Аноним 25/07/23 Втр 13:44:18 2780758 363
>>2780656
> Игнорируешь reverse
Так он не игнорируется лол. Ебать ты дурачок. И при чем тут вообще асимптотика. Выше обсуждалось, как решение в одну строчку записать. Вот это был ответ.
Аноним 25/07/23 Втр 14:06:19 2780801 364
>>2780758
Нахуя ты сортируешь по ключам, какая практическая польза от этого, кроме быдлокода, в котором ещё надо две минуты потратить, чтобы разобраться, что хотел шиз?
1.
>def get_biggest(numbers: list) -> int:
>__return int(''.join(sorted((str(x) for x in numbers), reverse=True))) if numbers else 1

2.
>get_biggest = lambda numbers: int(''.join(sorted((str(x) for x in numbers), reverse=True))) if numbers else 1

3. если список небольшой, то давай просрём ресурсы на факториал, но сделаем это явно
>print(int(max([''.join(map(str, perm)) for perm in permutations(a)]) if a else 1))

Нахуя, повторяю, ключи, обмазанные говном?
Аноним 25/07/23 Втр 14:13:19 2780814 365
>>2780801
Чел... А ты понимаешь, что первые два приведенных тобой пункта не решают поставленную задачу?))

Ты бы вместо того, чтоб орать как ебанутый, лучше бы попробовал подумать, как и почему решается задача. Заодно бы понял, зачем там кастомный компаратор и чем он отличается от стандартного сравнения строк.
Аноним 25/07/23 Втр 14:16:09 2780821 366
>>2780814
Хорошо, извини.
Один пример массива, который сломает мои решения и я уйду думать.
Аноним 25/07/23 Втр 14:23:26 2780837 367
>>2780821
А может ты тред прочитаешь, а не будешь тут своим идиотизмом всем мозги ебать?

Вот тебе пример входа [2, 21].
Аноним 25/07/23 Втр 14:24:47 2780843 368
>>2780837
>[2, 21]
221 аутпут по трём решения. Обоссан, умник.
Аноним 25/07/23 Втр 14:25:56 2780846 369
>>2780821
На всякий случай. Тот кастомный компаратор, с которого ты подорвался, реализует предпорядок, но не частичный порядок. Это если тебе эти слова хоть о чем-то говорят, продвинутый ты наш.
Аноним 25/07/23 Втр 14:28:43 2780850 370
>>2780843
Клоун, ты думаешь, я не в состоянии твой код скопировать что ли?)
212 они выводят. Иди обтекай, программист хуев.
Аноним 25/07/23 Втр 14:40:01 2780861 371
>>2780850
Хорошо, вафел, убедил.
Тем не менее, свой шизокод никому больше не показывай. Для сортед достаточно ключа key=lambda x: str(x) * 2, чтобы сортировка проходила как следует, а не твоё говно говна.
Аноним 25/07/23 Втр 14:44:14 2780864 372
>>2780861
>убедил
При чем тут "убеждение" ты же просто обосрался, обкакунькался, насрал под себя, с ноги ворвался в нить, но споткнулся об порог и упал лицом в говно. Имей же достоинство хотя бы признать свои ошибки, зачем ты усугубляешь свой позор.
Аноним 25/07/23 Втр 14:48:38 2780869 373
>>2780864
Я признал свою неправоту, обосанный, но это не отменяет того, что ты шизобыдлокодер, который выехал на вауэффектах и полной обфускации своего говна.
Я показал решение лучше и проще, но ты продолжаешь тявкать из под шконаря. Олсо ты проехался по условию, если список пуст, чекай за щекой.
Аноним 25/07/23 Втр 14:49:06 2780871 374
Аноним 25/07/23 Втр 14:54:01 2780879 375
>>2780861
> Для сортед достаточно ключа key=lambda x: str(x) * 2
А зачем ты продолжаешь срать себе в штаны? Попробуй запустить свою хуйню на [2, 221]
Аноним 25/07/23 Втр 15:10:45 2780899 376
>>2780869
Охуенно ты ворвался, братан. Задачу не понял, ни одной строчки кода правильно не написал, зато визг выше гор стоит. Сразу видно синьора тимлида.
Аноним 25/07/23 Втр 16:22:24 2780984 377
>>2780163
Пффффх. Пожалуйста, если ты не мог сам решить такую простую задачку, даже поняв ее смысл с первого хода, то не далек тот момент, когда снова себя таковым почувствуешь.
Аноним 25/07/23 Втр 16:52:11 2781033 378
>>2780879
Аноны, а уж случайно не самый ли жёсткий попуск в истории треда мы только что наблюдали? Полное многократное обоссывание агрессивного долбоёба... Да уж.
Аноним 25/07/23 Втр 17:29:49 2781104 379
>>2780869
Чей ты сынок, блять?
Аноним 25/07/23 Втр 17:59:58 2781180 380
>>2781104
>>2781033
>>2780899
Задел себялюбие Семёна, кек. Проигрываю с этих виляний анусом.
Аноним 25/07/23 Втр 18:23:27 2781216 381
>>2781180
Задел "себялюбие" тем, что сам себе в штаны насрал несколько раз подряд?
Аноним 25/07/23 Втр 18:35:39 2781232 382
Пиздец, столько срача из-за того, как правильно сортировать циферки по алфавиту.
Держим марку.
Аноним 25/07/23 Втр 18:38:53 2781240 383
>>2781232
x = lambda x: ''.join(sorted(re.split('', ''.join(map(str, x))), reverse = True)) if x else 1

print(x([18, 21, 783]))

Вот самый правильный и оптимальный вариант.
Аноним 25/07/23 Втр 18:40:08 2781244 384
Аноним 25/07/23 Втр 18:40:51 2781248 385
>>2781232
> как правильно сортировать циферки по алфавиту.
А в этом треде никто такую задачу не решал... Откуда ты её взял?
Аноним 25/07/23 Втр 18:43:49 2781256 386
>>2781248
Не знаю, кто-то подложил...
Аноним 25/07/23 Втр 18:59:32 2781278 387
Год не работал на питочеке, подвыпал из темы. Вопрос сколько денег просить в спб. Опыта работы 6 лет. Хочется шобэ не слишком заебно было. В асинхронность и эти ваши асинкайо не могу.
Аноним 25/07/23 Втр 19:59:53 2781378 388
089089.png 21Кб, 708x184
708x184
>>2781180
Ты хоть один пост можешь написать не обосравшись?
Аноним 25/07/23 Втр 20:14:17 2781401 389
>>2781278
>В асинхронность и эти ваши асинкайо не могу
Пойдешь к нам в ФБУ за 42500?
Аноним 25/07/23 Втр 20:42:13 2781446 390
>>2781401
последний раз трудоустроенный соточку получал
Аноним 25/07/23 Втр 20:49:04 2781456 391
>>2781401
Так он же вроде не спортсмен.
Аноним 25/07/23 Втр 21:12:52 2781480 392
>>2780869
>Я показал решение лучше и проще, но ты продолжаешь тявкать из под шконаря.
Блядь, ты не показал ни одного работающего решения, только шизу свою показал.
Аноним 26/07/23 Срд 13:26:42 2782136 393
Пиздец. Туча петухонистов решают 1 тупую задачку и дрочат друг друга.
Прям анекдот про 10 %профессия_нейм% и 1 лампочку.
Кста решение через однострочник лямбду кал. Сидеть разбирать это говно мало кому потом захочется. А если нужен перфоманс то уж переписали бы на cython
Аноним 26/07/23 Срд 13:41:36 2782172 394
>>2782136
Жалкий клоун, тебя уже обоссали и ты решил другим аноном прикинуться? Только вот ты тут ни кого не обманешь, петушок, ты сильно палишься своей попоболью и манерой построения фраз.
Аноним 26/07/23 Срд 14:35:19 2782219 395
>>2781248
sorted(['1', '2', '20', '110'], reverse = True)
sorted([1, 2, 20, 110], reverse = True)

Сможешь понять разницу?
Аноним 26/07/23 Срд 15:02:12 2782250 396
>>2782219
Ну например 20 < 110, а соответствующие строки сравниваются наоборот. А при чем тут это, дебс?
Аноним 26/07/23 Срд 15:15:23 2782260 397
Аноним 26/07/23 Срд 15:33:07 2782287 398
>>2782136
Была только одна цель - написать решение в одну строчку с сохранением асимптотики. Цели оптимизировать внутреннюю константу/оптимизировать что-то там под какое-то железо/whatever что там тебе ещё в голову пришло не было. Цели сделать код читаемым тоже не было (иначе бы в одну строчку никто бы не пытался ничего запихать).
Аноним 26/07/23 Срд 15:33:30 2782288 399
>>2782260
Как же у этого идиота припекло после вчерашнего попуска...
Аноним 26/07/23 Срд 15:45:14 2782307 400
>>2782288
Я вообще-то другой анон, могу даже скрин скинуть. Чтобы ответ получился как в задаче, надо всего лишь сортировать числа по стрингам и сджойнить. Зачем ты тупишь? Сколько тебе лет?
Аноним 26/07/23 Срд 15:54:00 2782319 401
>>2782307
> надо всего лишь сортировать числа по стрингам и сджойнить.
Почитай, пожалуйста, тред хотя бы за вчерашний день и найди в сообщениях контрпример к своего утверждению.
Аноним 26/07/23 Срд 16:00:30 2782324 402
>>2782307
А хотя не надо. Я просто покакать забыл перед разговором, вот и мысли путаются.
Аноним 26/07/23 Срд 16:03:24 2782327 403
>>2782324
Ну вот в тред ты покакать не забыл, клоун.
Аноним 26/07/23 Срд 16:06:44 2782331 404
>>2782319
Все, я понял, чтобы сделать код менее читаемым. Молодец, хорошо поработал.
Аноним 26/07/23 Срд 16:07:39 2782334 405
>>2782331
Спешите видеть, этот даун уже даже на нужное сообщение не может ответить. icq его представили?
Аноним 26/07/23 Срд 16:49:41 2782395 406
>>2782307
Так что же это получается... Значит наш герой и правда не так хорош как он о себе рассказывал? Мда... Стыдно, товарищи, стыдно. Но ничего, в охранники вот требуются...
Аноним 26/07/23 Срд 17:21:23 2782473 407
>>2782307
Бля, еще один.
Или это тот же?
Аноним 26/07/23 Срд 17:25:21 2782488 408
image.png 104Кб, 1237x1047
1237x1047
Я гляжу вам понравилось решать задачки со степика, держите еще одну, попроще.
Аноним 26/07/23 Срд 17:29:08 2782497 409
>>2782488
Это тоже надо в одну строчку?
Аноним 26/07/23 Срд 17:34:47 2782510 410
>>2782497
На твое усмотрение.
Аноним 26/07/23 Срд 17:43:21 2782539 411
>>2782488
А, это древняя хуйня. Ее можно сделать множеством способов. Лучше понаблюдаю как ее здесь местные решают.
Аноним 26/07/23 Срд 17:45:09 2782544 412
>>2782539
> А, это древняя хуйня. Ее можно сделать множеством способов.
Задачу, в которой надо дословно сделать то, что написано словами, можно сделать кучей способов. Хуя ты умный... Наверно phd по computer science. Никак не меньше.
Аноним 26/07/23 Срд 19:30:30 2782753 413
>>2782488
Рейт.
Раньше это упражнение не делал. Время выполнения минут 15 наверно.


matrix = [[1,2,3],[4,5,6],[7,8,9],]

def spiral_transposition(mtx, rev=False, res=[]):
....if rev:
........mtx.reverse()
....res.extend(mtx.pop(0)[::-1] if rev else mtx.pop(0))
....for i in range(len(mtx)-1):
........res.append(mtx.pop(0 if rev else -1))
....if mtx:
........spiral_transposition(mtx, rev=False if rev else True, res=res)
....return res

print(spiral_transposition(matrix))
Аноним 26/07/23 Срд 20:06:08 2782832 414
>>2782753
matrix = [[1,2,3],[4,5,6],[7,8,9],]

print(matrix[0], matrix[2], sorted(matrix[1], reverse = True))

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

Нужно чтобы так было: 1, 2, 3, 8, 9, 4, 7, 6, 5.
Аноним 26/07/23 Срд 20:29:04 2782863 415
16903815220850.png 24Кб, 505x426
505x426
>>2782832
>Нужно чтобы так было: 1, 2, 3, 8, 9, 4, 7, 6, 5.
По-моему ты задачу не понял, надо чтобы по спирали шло как на пике.
И да я проебался. В одном месте то ли мкба зажевала то ли я криво скопировал, но нет и ещё в одном месте "rev" с "res" перепутал.

Вот так всё работает и на больших массивах состоящих .

https://www.online-python.com/rGbRuYq9tl
Аноним 26/07/23 Срд 20:54:45 2782888 416
>>2782863
Ещё упростил, теперь масив не крутится а все манипуляции только с указателем. работает вроде на матрицах любого размера.
Готов принять ваши оферты на работу от 300к в наносекунду.

def spiral_transposition(mtx, rev=False, res=[]):
....res.extend(mtx.pop(-1)[::-1] if rev else mtx.pop(0))
....for i in range(len(mtx)-1,-1,-1) if rev else range(len(mtx)):
........res.append(mtx.pop(0 if rev else -1))
....if mtx:
........spiral_transposition(mtx, rev=False if rev else True, res=res)
....return res
Аноним 26/07/23 Срд 20:57:04 2782892 417
>>2782888
Макаба почему-то стирает [ i ]
в строке res.append(mtx.pop(0 if rev else -1))
Аноним 26/07/23 Срд 20:57:55 2782894 418
>>2782892
ды еп
res.append(mtx [ i ].pop(0 if rev else -1))
Аноним 26/07/23 Срд 21:01:36 2782904 419
>>2782892
> почему-то
Мы вам перезвоним.
Аноним 26/07/23 Срд 21:05:31 2782913 420
>>2782904
Нет спасибо, вакансия модератора на дваче меня не привлекает.
Аноним 26/07/23 Срд 23:29:37 2783110 421
image.png 55Кб, 404x604
404x604
Аноним 26/07/23 Срд 23:37:29 2783120 422
gkrygt.png 45Кб, 1140x506
1140x506
Аноним 26/07/23 Срд 23:43:12 2783131 423
>>2783120
Ваш кот не работает на нашем 3.7
Перезвоним.
Аноним 26/07/23 Срд 23:54:34 2783146 424
>>2782863
Так малята, ну что, просили ванлайнер, решающий эту задачу?
Вот вам: https://pastebin.com/esw6V43r

На этот раз даже без импорта сторонних модулей. Кушайте, не подавитесь.
Аноним 26/07/23 Срд 23:58:20 2783156 425
>>2783146
Как выразительно, прям как на хаскеле, два борща тебе анонче!
Аноним 27/07/23 Чтв 00:01:39 2783160 426
Аноним 27/07/23 Чтв 00:03:33 2783161 427
>>2783156
Не, ну тут всё-таки есть сайд эффекты, увы. Питон всё-таки по чистое ФП не очень заточен. Ну либо у меня просто руки из жопы.
Аноним 27/07/23 Чтв 00:03:39 2783162 428
87686.jpeg 78Кб, 640x800
640x800
>>2783146
Анон, сколько ты дней ещё гореть собираешься, успокойся уже.
Аноним 27/07/23 Чтв 00:05:08 2783166 429
Аноним 27/07/23 Чтв 00:09:10 2783171 430
Стикер 319Кб, 479x479
479x479
>>2783166
Сорян, думал это какая-то злая, подлая шутка, а это и правда километровый вайнлайнер.
Аноним 27/07/23 Чтв 00:10:21 2783173 431
>>2783171
Да не, какие шутки. Я тот же самый ананас, который писал прошлый ванлайнер. Мне просто делать нехуй...
Аноним 27/07/23 Чтв 00:12:49 2783175 432
>>2783173
Похоже как будто через какой-то обфускатор нормальный код пропустили. Искать такой обфускатор я конечно не буду.
Аноним 27/07/23 Чтв 00:14:08 2783177 433
>>2783175
Нет, просто я отдельно писал несколько разных лямбд, чтоб отлаживать было удобнее. А в конце уже их все вместе склеил. Поэтому получился кусок говна. Ну от ванлайнера ничего другого и не стоило ожидать.
Аноним 27/07/23 Чтв 00:14:59 2783179 434
>>2783175
Похоже на минифицированный жс, лол.
Аноним 27/07/23 Чтв 00:19:11 2783184 435
А кто-то понимает, как это >>2783146 работает?
Аноним 27/07/23 Чтв 00:21:47 2783188 436
>>2783184
Чел. Это база ООП. Если ты не можешь это прочитать - вон из профессии.
Аноним 27/07/23 Чтв 00:22:07 2783189 437
>>2783184
Если раскрутить, то можно разобраться, но нахуя?
Аноним 27/07/23 Чтв 00:23:13 2783190 438
>>2783188
Скажи мне, где ты работаешь, чтоб я там никогда не появлялся...
Аноним 27/07/23 Чтв 00:28:18 2783196 439
>>2783179
>((st[1] + 3) % 4) // 2
>comparators[p]
>lambda x, y: x <= y,

Похоже как будто анон забыл пару лямбд из прошлого ванлайнера удалить. Или просто на клаву лицом упал случайно.
Аноним 27/07/23 Чтв 00:29:34 2783199 440
>>2783196
А что тебя смущает в этих строках?
Аноним 27/07/23 Чтв 00:31:34 2783200 441
Аноним 27/07/23 Чтв 00:44:31 2783216 442
>>2782488
Привязка ванлайн решения к ОП-посту.
Ванлайнер-решение: >>2783146
Аноним 27/07/23 Чтв 00:58:32 2783223 443
78658.png 51Кб, 1382x621
1382x621
>>2782863
>>2782888
>>2783146
>>2783216

Продолжаем маяться хуйней в этом ИТТ треде.
Пришлось добавить "глубокую копию" матрицы в оба теста.
Аноним 27/07/23 Чтв 01:03:20 2783228 444
>>2783223
Пиздос. Объявляется конкурс на лучшую оптимизацию ванлайнера.
Аноним 27/07/23 Чтв 01:23:44 2783254 445
>>2783175
Я тоже любитель вайнлайнеров. Как merge sort так написал, а в этом треде тоже говорили, что это всё обфускатор

https://ideone.com/ueZUFE
Аноним 27/07/23 Чтв 01:27:21 2783260 446
>>2783254
Не, ну это хотя бы прочитать можно. А тот пиздец что выше... его какой-то психически нездоровый человек писал по-моему.
galpy Аноним 27/07/23 Чтв 05:57:07 2783335 447
logo-small.png 31Кб, 200x182
200x182
Привет! У кого-нибудь имелся опыт работы с galpy?
Аноним 27/07/23 Чтв 08:23:44 2783399 448
>>2751850
Побороть лень, очевидно.
Аноним 27/07/23 Чтв 14:32:13 2783930 449
>>2783335
У Саньки Рыжего и Чпока Дадона. Ещё пятый кабинет весь.
Аноним 27/07/23 Чтв 19:37:49 2784472 450
посоны размер зарплат питониста в спб хде обсудить можна?
Аноним 28/07/23 Птн 07:25:46 2784925 451
ESacVKLU4AAywRg.jpg 54Кб, 768x768
768x768
Аноним 28/07/23 Птн 23:58:44 2786482 452
>>2784472
Возьму тебя бесплатно, будешь функции для селери писать проекту и метрики слушать прометеусом.
Аноним 29/07/23 Суб 01:15:18 2786520 453
Аноны, как красивее всего записать длинное уродливое мерзкое условие вот такого вида:

if _elm is None or \
...."data ts" not in _elm or \
...._d["data"] != _elm["data2"] or \
.... _elm["data"] not in _elm["synch"] or \
...._elm["data2"] not in _elm["synch"]:
........continue

Я сначала думал про any\all, но они принимают в качестве аргумента список условий, и этот список сразу же натурализуется на месте. А мне надо чтобы было ленивое поведение.
Например
>if True or int('text'): pass
Тут всё будет нормально, потому что int('text') не выполнился из за ленивой природы такого условия.

>if any((True, int('text'))): pass
Тут будет ошибка, потому что значения в списке натурализуются и только потом обрабатываются. Таким образом мне это не подходит.

Как быть? Как красиво записать длинное условие чтобы оно было ленивым?
Аноним 29/07/23 Суб 06:01:47 2786635 454
>>2786520
Лямбды чтобы не инициализировать список до проверки

a = [lambda: True, lambda: int('x')]
b = [lambda: False, lambda: int('x')]
print(any(map(lambda f: f(), a)))
print(all(map(lambda f: f(), b)))

https://ideone.com/SgkuOh
Аноним 29/07/23 Суб 07:37:29 2786647 455
1690605818731.jpg 8Кб, 793x53
793x53
>>2782488
накатал двулайнер проверяйте
Аноним 29/07/23 Суб 13:49:03 2786861 456
>>2786520
Никак. Проблема не в коде, а в самом условии. Могу разве что посоветовать обернуть в скобки и избавиться от \.
Аноним 29/07/23 Суб 16:19:09 2787012 457
>>2786861
>обернуть в скобки и избавиться от \
А чем это лучше?
Аноним 29/07/23 Суб 23:45:35 2787486 458
>>2787012
Тем, что ты пишешь код как пидор, похуже того мудилы обфускатора.
Аноним 30/07/23 Вск 08:24:57 2787616 459
Есть задачка студентская про транспиляцию небольшого субсета шелл-скриптов в питон. Курс собственно по основам бидона и шелла.
Как они предполагают это решать, регулярками дрочить штоле? Это явно не про парсеры реальные.
Аноним 30/07/23 Вск 09:01:55 2787627 460
>>2787616
Гугли абстрактное синтаксическое дерево.
Аноним 30/07/23 Вск 09:08:10 2787630 461
>>2787627
Я же говорю, это начальный курс, должно быть что-то простое.
Аноним 30/07/23 Вск 09:10:18 2787631 462
>>2787630
Я думаю, подразумевается итерация или регулярки. Хотя итерироваться по тем же форам или вайлам будет весьма ебано, регулярки в этом плане проще. Может скомбинировать, хз.
Аноним 30/07/23 Вск 09:21:23 2787635 463
>>2787631
>регулярки
Следует избегать максимально. И вообще, они для пидоров, разговаривающих со всеми через губу.
Аноним 30/07/23 Вск 10:04:06 2787657 464
Аноним 30/07/23 Вск 14:18:40 2787840 465
image.png 99Кб, 493x322
493x322
ккккккк
Аноним 30/07/23 Вск 16:37:12 2787978 466
>>2787616
Не очень понятно, что тебе надо, что ты подразумеваешь под транспиляцией скриптов

Тебе надо команды вроде cp/mv/rm/ls/cat портировать? Или что?

ТЗ не ясно.

парсеры и синтаксический разбор про другое
Аноним 30/07/23 Вск 18:06:59 2788129 467
>>2786647
Нахуй он кому нужен, если выше уже ванлайнер давно висит?
Аноним 30/07/23 Вск 18:08:19 2788134 468
>>2787486
> обфускатора
Нет там никакой обфускации. Ванлайнеры для тех двух задач ты нормальнее никак не запишешь.
Аноним 30/07/23 Вск 21:01:39 2788359 469
>>2787978
Это не мне надо. Есть такая задачка, предлагают решить за деньги, я вот думаю.
Портировать ничего не надо. Базовую хуйню вроде echo for while, присваивание-интерполяция переменных, а всякие ls/cat через subprocess.
Аноним 31/07/23 Пнд 12:50:48 2788912 470
>>2748706 (OP)
>Литература
Что из этого можно почитать, чтоб подготовиться к стажировке (или на начальный уровень)?
Аноним 31/07/23 Пнд 12:55:51 2788923 471
>>2788134
В условиях не было писать one-liner, а неявные вызовы лямбды с передачей компараторов это обфускация уровня пидора
>print(list(filter(None, map(lambda y: y reduce(lambda x, y: x y != 0, map(lambda x,y=y: y % x,range(2, int(pow(y, 0.5)+1))),1), range(2, 100)))))
Сколько времени потребуется, чтобы разобраться, что за код?
Наверное поболее, чем минута.
Аноним 31/07/23 Пнд 13:01:13 2788931 472
Аноним 31/07/23 Пнд 13:56:48 2789019 473
>>2788923
> неявные вызовы лямбды
Что за зверь такой? Хуйню не городи, чел)
31/07/23 Пнд 20:11:44 2789655 474
>>2789019
>)
>)))
>))))))
Нахуй иди, быдло.
Аноним 31/07/23 Пнд 21:34:45 2789734 475
Аноним 31/07/23 Пнд 22:06:31 2789757 476
Есть ли хороший гайд на dearpygui на русском?
Аноним 31/07/23 Пнд 22:46:51 2789775 477
>>2789757
Нет и не будет. Гуи сдохли, потому что не смогли изобрести гуй одинаково работающий под win32 / browser api (wasm/js) / android / xlib (wayland).
Аноним 31/07/23 Пнд 23:45:30 2789823 478
>>2789775
На чем тогда писать проги с хорошим гуи?
Аноним 31/07/23 Пнд 23:53:53 2789830 479
>>2789823
Выбирать ОС.
Либо пиши под веб, там в целом, похуй — все браузеры плюс-минус одинаково покажут.
Аноним 01/08/23 Втр 10:54:48 2789999 480
Как можно распарсить джейсонину вида,
{"a": {"b": "c": [{"d": {"e": [{"x": "1", "z": "2"}, {...}]}]}}

Нужно добраться до значений x y.
Я щнаю, что можно
For i in myjson['a']['b']['c']:
For j in i['d']['e']:
Print(j['x'], j['y'])

Но выглядит это как-то громоздко, сожет есть более короткие варианты для парсинга "глубоких" джейсонин, без двойных и более циклов и кучи ключей в квадратных скобках?
Аноним 01/08/23 Втр 19:08:12 2790679 481
>>2789823
Я ебошу все на tkinter. Он был первоначально сделан для очень странного ебанутого языка Tcl. Там была (еще когда Tcl'ем кто-то хоть немного пользовался) концепция мегавиджетов. Эта концепция намного лучше реализуется как раз на питоне. Вообще tkinter единственное, что без бубна работает на разных платформах. Странно, что его под браузер только не сделали, хотя гуи вероятно действительно пожраны залупой WebView, которая кстати многим не нравится.
Аноним 01/08/23 Втр 19:40:01 2790723 482
>>2789999
Рекурсией или циклами с несколькими вложенностями как у тебя.
Аноним 01/08/23 Втр 20:50:28 2790797 483
Так чем питон/джанга лучше GOLANG?
Аноним 01/08/23 Втр 23:13:02 2790865 484
>>2790797
Если хочешь нейросетку в свой микросервис, то с голанг сразу учи кресты, чтобы ее через них затаскивать. То есть, например, обучаешь во фреймвокре TensorFlow, используя питон, потом в прямом направлении она у тебя работает через C++, а коннектишь в программу на Go с помощью CGO через точку входа на plain C. Вот только кресты кстати надо нормально знать, потому что документация нейросетевых либ для крестов отстает или ее местами вообще нет, потому что подразумевается, что крестовики-то сами во всем разберутся.
Аноним 02/08/23 Срд 00:18:23 2790928 485
Решил перекотится с реакта на питон, вакансий побольше и зарплаты хорошие, даже мидл реакт разработчиком +4 года опыта мне приходилось искать работу по 3-4 месяца. Надеюсь в питоне с этим получше.
Аноним 02/08/23 Срд 01:33:55 2790946 486
Аноним 02/08/23 Срд 01:45:36 2790948 487
Аноним 02/08/23 Срд 05:25:56 2790974 488
16815760584710.png 1089Кб, 1250x1280
1250x1280
чому еще никто не перевел юнити или анрил на питон, пиздец будет бомба?
Аноним 02/08/23 Срд 10:54:00 2791078 489
С утра жру кофе и не могу решить как правильно сделать модель в Джанго. И можно ли так вообще сделать без костылей:

Необходимо два поля в таблице оба обычные целые. А и Б. Первое может принимать любое значение, второе должно быть "автоинкрементом" но связанным с первым. То есть у каждого значения А должен быть собственный next_id для Б.
Скорее всего придется делать всё руками.
Аноним 02/08/23 Срд 11:55:53 2791143 490
>>2790948
Попробуй посмотреть вакансии на ангуляре еще.
Аноним 02/08/23 Срд 12:46:27 2791213 491
>>2790928
>мидл реакт разработчиком +4 года
Без пезды чел, если ты за 4 года не можешь найти работу, то ты точно не мидл. Ты знаешь, что такое абстрактные структуры и модели, как работает нода с прототипами, чем движок V8 отличается от V7, какие его преимущества и недостатки?
Это не говно о теории, это бейсед.
Я три месяца кручусь в джаваскрипт и два года в пайтоне, собесы на джуна прохожу, но офферы не принимаю, потому джиэс - это помойка.
Аноним 02/08/23 Срд 12:47:18 2791215 492
>>2790865
Мне го не нравится тем, что там на бэке надо raw SQL прописывать.
Аноним 02/08/23 Срд 13:28:45 2791270 493
>>2791213
>ты за 4 года не можешь найти работу
У меня чистый опыт работы 6 лет, на тот момент в 2021 году было +4 года опыта уже начались проблемы с поиском работы, слишком много вкатунов, слишком большая конкуренция, нужно пройти сотни собеседований что бы найти работу.

>Ты знаешь, что такое абстрактные структуры и модели, как работает нода с прототипами, чем движок V8 отличается от V7, какие его преимущества и недостатки?
Знание этой хуиты никак не помогает в работе. То что ты описал нужно узкоспециализированым инженерам которые работают на крупные ИТ корпорации.
Скажи как отличается код на реакте без знания и знанием этой хуйни?

>Это не говно о теории, это бейсед.
Потому что ты так скозал?

>собесы на джуна прохожу
Я в начале 2017 года нашел свою первую работу за две недели пройдя только не более 5 собеседований, без знания редукса, мне на тот момент был не понятен. Но мне кажется что ты пиздабол, на данный момент никто не берт джуна во фронтенд слишком дохуя кандидатов и не нужно здесь пиздеть маняхуйню что все они тупые а ты один умный, фронтенд не настолько сложный, через полгода работы из джуна можно спокойно вырастить в мидла который спокойно может с нуля сделать проект любой сложности.
Аноним 02/08/23 Срд 13:30:05 2791274 494
>>2791143
На ангуляре еще меньше вакансий, мне сам по себе этот фреймворк не нравится.
Аноним 02/08/23 Срд 13:39:53 2791288 495
>>2791270
Я сейчас говорю про удаленку, возможно в офис легче вкотится джуну.
Аноним 02/08/23 Срд 21:00:24 2791885 496
368234imagelarg[...].jpg 303Кб, 600x800
600x800
Есть тултип без всяких кнопок дополнительных окошек и прочего вроде tkinter-tooltip?
Обычный тултип, произошло действие он маякнул.
Аноним 02/08/23 Срд 23:57:16 2792041 497
>>2791885
>произошло действие он маякнул
Я такое в status bar маякую.
Аноним 03/08/23 Чтв 10:00:56 2792215 498
изображение.png 351Кб, 600x450
600x450
Аноним 03/08/23 Чтв 11:35:15 2792314 499
сап аноны
есть таск: напечатать кучу хуйни всякой в ворде. 300 единиц.
с одним подводным: надо менять в документе серийный номер.
на каком языке ( и можно ли ) написать скрипт, который поставить на печать ряд документов, и при этом пропишет в определенной графе серийный номер. например 10 .docx файлов, и в каждом номер - 001, следующий 002 и т.п.
Аноним 03/08/23 Чтв 13:36:36 2792482 500
>>2792041
Статус бар это если какой интерфейс есть. У меня всё в сонсоли, но например копируешь ссылки на ютаб и чтоб точно знать что она скопирована желательно какую-то всплывающую подсказку сделать, но нормальный тултип не могу найти.
Аноним 03/08/23 Чтв 13:45:49 2792492 501
>>2792314
Мне кажется, это макросами прямо в ворде можно сделать
Аноним 03/08/23 Чтв 13:57:32 2792500 502
>>2792314
docx это зип архив со всякой требухой и хмл самого документа. Открываешь его и меняешь, даже модули сторонние не нужны.
Аноним 03/08/23 Чтв 14:22:17 2792521 503
>>2792500
аноны вы можете мне подсказать в таком случае как будет выглядеть код и как его запустить? ну или хотя бы кинуть линк где инструкция.
я полез в эти макросы, ну нихуя непонятно

мне нужно чтобы в 3 полях на разных страницах в word документе просто менялся автоматически номер при печати. типа 12345-001, 12345-002 и тп.

я попробовал сделать в тех местах закладки, и через них задат нумерацию, но нихуя не работает

памагите ятупой
Аноним 03/08/23 Чтв 16:38:08 2792764 504
>>2748770
ты ебанутый наглухо? Хорошие знания джанго и ООП + хтмл и уже можно спокойно работу искать. Чисто приложухи на джанго писать.
Аноним 03/08/23 Чтв 17:23:52 2792851 505
>>2790974
Ну если это дело потом как то скомпилировать, то да, будет бомба.
Аноним 03/08/23 Чтв 18:20:46 2792936 506
Прошу помощи, братики!

Имеется телеграм канал и туда уже загруженные какие-то аудио файлы

Пытаюсь сделать бота который будет по названию аудиофайлов находить его выгружать его с телеграм канала и отправлять на фронтэнд.
Как это сделать?
Аноним 03/08/23 Чтв 18:51:45 2792977 507
Аноним 03/08/23 Чтв 18:59:14 2792993 508
Аноним 03/08/23 Чтв 19:35:30 2793094 509
>>2792764
А еще DRF, Docker, SQL, базовый JS, профильная вышка и год коммерческой разработки - тогда может быть рассмотрят на должность стажера и младшего помощника джуниора на зарплату 20к рублей.
Аноним 03/08/23 Чтв 19:46:22 2793114 510
>>2793094
да нихуя. достаточно выбрать одно направление и достичь там нормальных результатов (можно самостоятельно) ты столько всего перечислил что это уже на мидла тянет, но уж точно не на стажера/джуна
Аноним 03/08/23 Чтв 23:39:37 2793271 511
Аноны, сколько раз в своей жизни вы использовали метод setdefault() кроме как во время обучения?
Аноним 04/08/23 Птн 00:41:24 2793288 512
>>2793114
Чел, я просто перечислил стандартные требования для вакансий junior python developer в 2к23 году.
Аноним 04/08/23 Птн 01:05:39 2793310 513
>>2793288
Будем честны, для джуновских задач докер учится за пару часов, делается рабочий манифест и потом переходит из проекта в проект, sql учится ну за пару недель с учетом простых джоинов, базовый js вообще опционален. Ну а насчет дрф - как правило человеки-фреймворки сейчас учат что-то сразу. Про год коммерческой разработки - ерунда.
Аноним 04/08/23 Птн 07:41:10 2793401 514
Душу пистона немного. Почему ваш пистон и sqlite3 так долго обрабатывает запрос "select count(*) from myanusbase where kind=1;" ???
База - 7.2Гб
Индексы по всем полям есть. Ну вот как ускорить писю?
Аноним 04/08/23 Птн 09:18:30 2793436 515
image.png 1090Кб, 750x1334
750x1334
Аноны, посоветуйте годный курс по Джанге, можно на ангельском. Заебало смотреть всратые гайды на ютубе, где половина спизженные с другого канала, вторая половина недоделанные и тд, хочу отвалить бабла и хапнуть концентрированной базы без всякого говняка.
Аноним 04/08/23 Птн 09:48:14 2793442 516
Аноним 04/08/23 Птн 10:02:31 2793449 517
>>2793436
Антонио Меле - Django в примерах
Аноним 04/08/23 Птн 11:43:40 2793580 518
>>2793401
>Ну вот как ускорить писю?
Перейти на постгрес
Аноним 04/08/23 Птн 12:42:11 2793624 519
>>2793580
понял. а бэкап/ресторе только по файлу *.sql??
Аноним 04/08/23 Птн 12:44:11 2793627 520
>>2793624
в смысле, у постгреса.
Аноним 04/08/23 Птн 16:45:49 2794045 521
>>2793401
Ну дак запусти профайлер да глянь где медленно.
Аноним 04/08/23 Птн 18:03:42 2794217 522
>>2794045
Вот ты какой умный, твою мать.
Давай тогда расшифруй эту ебень:
[(0, 'Init', 0, 13, 0, None, 0, None), (1, 'Null', 0, 1, 2, None, 0, None), (2, 'OpenRead', 0, 2, 0, '5', 0, None), (3, 'Rewind', 0, 9, 0, None, 0, None), (4, 'Column',
, 4, 3, None, 0, None), (5, 'Ne', 4, 8, 3, 'BINARY-8', 84, None), (6, 'Rowid', 0, 3, 0, None, 0, None), (7, 'AggStep', 0, 3, 1, 'count(1)', 1, None), (8, 'Next', 0, 4, 0
None, 1, None), (9, 'AggFinal', 1, 1, 0, 'count(1)', 0, None), (10, 'Copy', 1, 5, 0, None, 0, None), (11, 'ResultRow', 5, 1, 0, None, 0, None), (12, 'Halt', 0, 0, 0, No
e, 0, None), (13, 'Transaction', 0, 0, 106, '0', 1, None), (14, 'Integer', 2, 4, 0, None, 0, None), (15, 'Goto', 0, 1, 0, None, 0, None)]
Аноним 04/08/23 Птн 18:06:10 2794220 523
где здесь тормозиться???

запрос был:

cur_.execute("EXPLAIN SELECT count(oid) from _clients WHERE kind=2;")
print (cur_fns.fetchall())
Аноним 04/08/23 Птн 20:36:48 2794422 524
>>2794220
А че курсоры разные?
Аноним 04/08/23 Птн 20:40:33 2794427 525
>>2794422
очепятка, курсор одинаковый
Аноним 05/08/23 Суб 00:26:12 2794587 526
В FastAPI можно вернуть несколько изображений в респонсе, желательно вместе с именами, не кодируя их в текст? Уже несколько часов дрочусь, допрашивая чатботов, но они выдают какую то хуйню. Вроде в POST реквесте так делать можно, и в респонсе тоже. Но как сгенерировать такой респонс в фастапи не ясно. Или всё-таки это невозможно в HTTP?
Аноним 05/08/23 Суб 02:23:48 2794658 527
>>2794220
Че по производительности сервера с бд?
Аноним 05/08/23 Суб 05:39:29 2794700 528
>>2794587
В реквесте можно мультипартом, в респонсе нельзя.
Аноним 05/08/23 Суб 09:04:16 2794750 529
>>2794587
Передавай картинки в base64, можешь вообще все угодно передавать и на фронте парсить
мимо король говна
Аноним 05/08/23 Суб 10:05:40 2794759 530
>>2794700
>>2794750
Ясно, жалко. Проебался еще полтора часа после этого, не то, чтобы мне это нужно, можно было бы и в base64 конвертить, но у меня проснулся азарт. Спасибо за ответы.
Аноним 05/08/23 Суб 11:03:18 2794791 531
image.png 1080Кб, 750x751
750x751
Аноны, кому не впадлу прочтите мой текст и сориентируйте пожалуйста по дальнейшим действиям, в первую очередь обращаюсь к опытным или тем кому хотя бы уже удалось вкатиться.
Питухон изучаю уже ~полгода, хапнул всю базовую базу до основ ООП (а также основы БД и гит), запилил пару первых петов - бота для мморпг на OpenCV и телеграм бот-магазин, параллельно курю Чистый Код Мартина. Щас по идее как пора углубляться в непосредственное направление, решил не метаться и идти именно в веб разработку как изначально и хотел, т.к. это мне наиболее интересно а вкатиться в тестировщики/аналитики как я понял нихуя не проще, везде свои подводные.
Так вот сейчас по моей логике мне надо браться за Django, и отсюда возникает первый вопрос, правильно ли я понимаю что в принципе уже в ходе изучения джанги можно будет подтянуть свое понимание ООП? Т.к. я чувствую прям недостаток знаний и опыта в этой теме, то есть теорию понимаю но практкики было мало. Или нужно как-то отдельно подкачать ООП и дальше уже браться за джанго?
Далее, я себе отдаю отчет что я в принципе склонный к демотивации и забиванию хуя чел, поэтому для обучения мне больше подходит курс/ментор, где меня будут подпинывать и помогать на моих затупах, тем самым сглаживая углы на которых будет возникать желание все дропнуть. Ментора в принципе могу себе позволить, хотя и дороха, но имхо это избыточно на начальном этапе, поэтому я пытаюсь найти какой-то курс который подходит мне по лвлу, но чет на какой не посмотрю они либо начинаются с полного нуля, либо там полно какого-то говняка который явно напихан тупо для объема. Короче кто знает пиздатый курс (можно на ангельском, но лучше на ру) где именно нужные вещи для веба, джанга там, всякие эти редисы, брокеры сообщений и тд без говняка - посоветуйте плиз. Желательно чтобы по ходу обучения это все закреплялось на проекте.
Воот епты бля, ну собственно и все, подскажите кто шарит как и по каким материалам дальше развиваться чтобы быстрее достичь состояния личинки разработчика.
Аноним 05/08/23 Суб 12:17:16 2794813 532
>>2794791
Возьми лучше фласк или фастапи, будешь энкодить изображения в base64, как я.
Аноним 05/08/23 Суб 15:39:29 2795107 533
Ананасы, как оцениваете работу в web scraping/crawling/parsing в плане профессионального развития? Есть возможность залететь на такую вакуху (сейчас перекладываю джейсоны грубо говоря) с повышением зп, но вот только сложилось ощущение что это примитивная дрочь даже по сравнению с погрузкой жысонов и есть риск запачкать резюме работой с этим, потом не возьмут вертеть высоконагруженные микросервисы и пукать в кафку. Что скажете, насколько соответстует реальности такая оценка этой области?

1 год стажа опыта
Аноним 05/08/23 Суб 17:14:53 2795194 534
image.png 51Кб, 847x289
847x289
Есть помидоры? Как вы проверяете наличие одного из последних ключей глубокого словаря?
Условие такое, что на пути к ключу предыдущий ключ может просто отсутствовать и соответственно выполнять условие дальше, не вызывая эксепшн, не имеет смысла.
Попробовал моржа, но выглядит всрато.
Аноним 05/08/23 Суб 17:47:47 2795242 535
>>2795194
Чейнись с дефолтным словарем. a.get('puk', {}).get('puk2', {})
Аноним 05/08/23 Суб 18:22:25 2795279 536
168258055719516[...].jpg 43Кб, 640x795
640x795
>>2795242
Как правило самое лучшее решение простое, спасибо, кот.
Аноним 05/08/23 Суб 23:54:33 2795546 537
Так, знатоки питона, нужна помощь.
Есть вложенная функция, которая в упрощенном виде выглядит как:
def func1():
__def func2():
____do something
____if condition:
______return True
____return False
__return func2()

Проблема в том, что эта херота не возвращает ни True, ни False, хотя condition точно случается.
Что за херня?
Аноним 06/08/23 Вск 01:27:03 2795600 538
>>2795546
Дебажь инструментом или принтами, например запомним что-нибудь после условия, твоя структура работает. Ты лучше свой код закинь.
Аноним 06/08/23 Вск 02:08:00 2795614 539
6.png 31Кб, 333x333
333x333
>>2795600
Дебажу, но не понял, что за херня.
Код
https://ideone.com/6Yi4Li
Да, литкод

Вот тут условие выполняется, но возвращает False, а не True:

h
next_letter
3
len(word)-1
3
position
(1, 0)
next_letter
2
False

И, вообще, по идее, вот эта часть:
position
(1, 0)
next_letter
2

Не должна быть.
Аноним 06/08/23 Вск 09:22:36 2795692 540
Аноним 06/08/23 Вск 10:26:39 2795717 541
>>2795692
Там же сказано, что это >>2795546 упрощенный вид вот этого >>2795614
А оно True не возвращает.
Аноним 06/08/23 Вск 11:02:42 2795743 542
image.png 31Кб, 802x131
802x131
>>2795614
Да, чел, ну ты хуйнёй озадачил.
Вот тут ты зачем-то просто вызываешь рекурсивную функцию, но не записываешь результат и не выполняешь никаких действий, код работает без пользы.
Так исправь и пробуй.
Аноним 06/08/23 Вск 11:04:48 2795745 543
>>2795614
>>2795600
>>2795692
Короче, эта херня решилась заменой "return True" на:
val = True
break

И потом возвратом из функции val.
Не знаю, почему return не сработал. Если кто в курсе - буду благодарен за разъяснения.
Аноним 06/08/23 Вск 11:17:12 2795749 544
>>2795743
>рекурсивную функцию, но не записываешь результат
Там увеличивается счетчик next_letter, до тех пор, пока он встретит или не встретит условие.
Аноним 06/08/23 Вск 11:17:52 2795750 545
>>2795717
Ну так блят логику включи, это значит что ошибка не в той конструкции вложенности, а где-то в другом месте. Ты видимо вообще слабо представляешь как твой код работает и просишь других его распутать всё понять что куда передается и починить. Неплохо ты придумал.
Аноним 06/08/23 Вск 11:18:37 2795751 546
>>2795749
Не еби мозг, а поправь и посмотри результат.
Тебе сказали, в чём проблема нерабочего кода.
Аноним 06/08/23 Вск 11:25:19 2795755 547
>>2795614
>https://ideone.com/6Yi4Li
Чел это с какой-то галеры или ты что-то для себя делаешь? Хочу просто понять за ТАКОЕ платят?
Аноним 06/08/23 Вск 15:22:27 2796018 548
>>2794658
говноноут. вынь7 -64 4гб озу
Аноним 06/08/23 Вск 16:41:26 2796144 549
>>2794658
>>2796018
У скулайта нет сервера, норкоманы, это просто бинарная либа с питоньими биндингами. Там нечему тормозить, если у тебя не десятки миллионов записей. Скачай соснольный шелл и там пробуй свои запросы.
https://www.sqlite.org/download.html
Последняя опция под шиндовс.
Аноним 06/08/23 Вск 20:25:34 2796449 550
>>2796144
пися девчачья. Я же выше писал, размер дб в 7,2Гб примерно. Как тебе такое, илон маск? сикулайт сможет перебрать все записи, и посчитать коунт(*)?
Аноним 06/08/23 Вск 20:29:50 2796454 551
>>2796144
там длл и деф - файлы. Ты походу в винде вообще не шаришь?
Аноним 06/08/23 Вск 20:41:34 2796459 552
>>2796449
7.2 гб это мало, записей сколько?
>>2796454
слепой штоле?
> A bundle of command-line tools for managing SQLite database files, including the command-line shell program, the sqldiff program, and the sqlite3_analyzer program.
Аноним 06/08/23 Вск 21:05:47 2796486 553
Всем чмоки
Вкатываюсь в ит не ради работы, но ради интереса.

Сейчас учу питон, уже прочел половину укуса питона и параллельно посмотрел +- треть видеокурса, утащенного с торрентов.
(Не просто смотрю/читаю, повторяю сам, пытаюсь копаться)

По окончании хочу попробовать освоить машинное обучение. С математикой на Вы, но попробую все равно.

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

Все правильно делаю ?
Аноним 06/08/23 Вск 23:24:12 2796595 554
>>2796486
>Все правильно делаю ?
По ощущениям как-то бессистемно все делаешь.
Аноним 07/08/23 Пнд 03:51:29 2796706 555
>>2796459
ебал команд-лайн. дальше что?
Аноним 07/08/23 Пнд 06:18:00 2796722 556
>>2796486
>хочу попробовать освоить машинное обучение
Автомехаником решил стать после освоения питона? Похвально.
Аноним 07/08/23 Пнд 07:27:35 2796727 557
Аноним 07/08/23 Пнд 09:55:54 2796770 558
>>2796486
>укус
То что ты пробежался глазами по укусу и максимум перепечатал себе примеры кода в IDEшку, позапускал и сказал "ага это я понял" дает тебе весьма печальное понимание питухона, надо все теоретические знания закреплять на практике решая какие-то задачки.
Аноним 07/08/23 Пнд 11:29:17 2796840 559
Есть какой нибудь список задач по питону для юниоров
Аноним 07/08/23 Пнд 12:03:32 2796887 560
Как апнуться до мидл+ в джанге какой проект нужно запилить самостоятельно чтобы осмелиться претендовать на это повышение?
Аноним 07/08/23 Пнд 12:12:27 2796894 561
>>2796887
Перейти на фастапи.
Аноним 07/08/23 Пнд 13:26:04 2796997 562
>>2796840
Главная твоя задача - снять гил.
Снять гил с питона - как университетская степень.
Аноним 07/08/23 Пнд 13:53:39 2797027 563
>>2796894
А чег оне на плюсы сразу пересадить или на го с растом? там вроде больше медианные зп
Аноним 07/08/23 Пнд 14:57:32 2797110 564
Аноним 07/08/23 Пнд 16:27:37 2797203 565
>>2797027
Потому что поменять фреймворк это не так то сложно.
Аноним 07/08/23 Пнд 16:35:43 2797209 566
>>2797027
Go проще питона, он более узконаправленный.
Аноним 07/08/23 Пнд 16:36:51 2797210 567
>>2796887
>Как апнуться до мидл+
Просто стань опытным и компетентынм

>какой проект нужно запилить
Никакой

>осмелиться претендовать на это повышение?
>повышение
Проще при переходе на другую работу. В текущей компании у всех вогруг уже сформировался образ тебя как джуна (если ты сейчас джун, как я понял), а для нового работодателя ты - чистый лист
Аноним 07/08/23 Пнд 18:24:02 2797348 568
>>2797110
Надо самому, а не через подбенжерложенного Гвидо.
Аноним 07/08/23 Пнд 19:24:32 2797431 569
Пытаюсь в ЧА/ДДД, и пока куча тупых вопросов только назрело.
Вот есть таблица User.
Есть в domnain/entity/User сущность (агрегат).
Есть в infra/db/model/User модель.
Есть в infra/db/repository/UserRepository имплементация репы.
Есть в app/dto/User дто.
Есть в interface/grpc/pb2/User структура запроса-ответа для gRPC.
Есть в interface/rest_api/pb2/User структура запроса-ответа для API.

1) Что нужно возвращать в методах репы? Сущность / модель / дто?
2) Если мне нужно делать селекты, минуя бизнес-логику, можно ли сразу конвертить запросы-ответы для gRPC/API в модели или нужно всё равно их конвертить в дто?
3) Если структура модели отличается от структуры дто или запроса-ответа, под каджый случай пилить свой маппер?
Аноним 08/08/23 Втр 15:33:25 2798345 570
Катите тред, ебать вас в сраку.
Аноним 08/08/23 Втр 18:47:22 2798608 571
Насколько реально (почти) с ноля до рабочего места за неделю времени?
Аноним 08/08/23 Втр 18:59:14 2798626 572
Смотрю видео питон за 1 час, щемитесь скоро отберу у вас работу будете лапу сосать.
Аноним 08/08/23 Втр 19:06:30 2798636 573
>>2798626
Мне не нужно работать, я посмотрел видео как стать миллионером за пять сек.
Аноним 08/08/23 Втр 21:55:27 2798865 574
>>2798608
Рабочее место требует только проверки на харизму.
Аноним 08/08/23 Втр 22:21:43 2798906 575
Ну про неделю понятно что фантазия, но внятный ответ сколько занимает изучение пытона я тоже не нахожу. Ответы варьируются от 2 месяцев до года, курсы всевозможные видел и на 3 месяца, и на 14... Так сколько, анон?
Аноним 08/08/23 Втр 23:39:26 2799009 576
>>2796459
4млн. записей. Может ноут так себе. Но для бд - это позор вообще-то так считать. Только если он сначала грузит дб в память, а потом имеет её. Но это позор, видимо даже хэша нет полноценного.
Аноним 09/08/23 Срд 02:38:26 2799170 577
>>2798906
На этот вопрос нет простого ответа. Это не станок с ЧПУ освоить на заводе. Ты например можешь выучить синтаксис языка и встроенные функции за пару недель, и что? После этого сядешь на стул и скажешь "всё, теперь я у мамы погромист". Нет, этого не достаточно. Надо типы данных учить, алгоритмы, ооп, стандарты написания кода. Достаточно этого? Опять нет, надо дальше учить - подкапот языка, что куда перекатывается, разные обязательные либы, тысячи их. Хватает? Опять нет, нужна практика - пишешь петпроект, смотришь как дургие пишут, пишешь, пишешь, пишешь. Всё свободное время туда. Хватает? Опять нет, да что ты будешь делать - кабан кабаныч, куда ты пойти хотел, требует от тебя другие знания - идешь. учишь, ковыряешься разбираешься.

Суть в том, что надо непрерывно учиться и нет такой точки куда ты доучился и остановился, потому тебе и сроки никто не скажет.
Ну а синтаксис питона и его встроенные функции + некоторые обязательные либы за пару недель можно выучить.
Аноним 09/08/23 Срд 07:39:19 2799219 578
>>2799009
Это вполне подъемно для нее, ты где-то обосрался, ищи.
Аноним 09/08/23 Срд 09:14:08 2799245 579
>>2798906
Я хапнул именно базу самого питухона (начиная от переменных и заканчивая основами ООП) за 3 месяца, занимался в среднем часов 10-15 в неделю, при этом все закрепляя на практике. А так вот эти вопросы "сколько времени надо чтобы X" вообще неуместны, ты можешь быть нереально увлеченным и замотивированным чуваком который будет по 15 часов в день дрочить и соответственно через пару месяцев уже будет что-то там шарить, а можешь быть ленивым хуем которому это айти нахуй не всралось и он каждый вечер чисто заставляет себя на полчаса открыть купленный курс и через год даже ничего не вдуплить.
Аноним 09/08/23 Срд 09:27:34 2799257 580
>>2793436
>Джанге
Она еще актуальна у вас?
Аноним 09/08/23 Срд 09:34:40 2799269 581
>>2799257
Нуфаги почему-то поголовн все учат, хуй знает зачем.
Аноним 09/08/23 Срд 10:39:27 2799306 582
>>2799269
Потому что 90% вакух для джунов на джанге.
Аноним 09/08/23 Срд 11:04:48 2799325 583
Паца, нид хелп.
Шапку прочитал, но не увидел ничего.

Суть: нужно какое-то чтиво (желательно с обилием практики), для сисадминчика, чтобы быстренько вкатиться в питон. Знаю баш, немного кодил на руби. Питон нужен чисто для сисадминских/девопсовских нужд. Перебрал несколько учебников, там все разнится: от введения в питон для детей (чисто БАЗА на 500+ страниц), до обзорных гайдов по возможностям питона без погружения (python и девопс Гифта, например).
Аноним 09/08/23 Срд 11:15:21 2799335 584
>>2799325
quick python 3e
python in a nutshell 4e
Аноним 09/08/23 Срд 11:16:23 2799337 585
>>2799335
Лучи добра тебе, няша
Аноним 09/08/23 Срд 11:16:38 2799338 586
>>2799335
Алсо, python distilled.
Тоже очень годная.
Аноним 09/08/23 Срд 14:22:40 2799517 587
734784738539729348 % m_len = 1315 - m_len

Как решать подобные уравнения? есть идеи?
Аноним 09/08/23 Срд 17:20:21 2799787 588
Как обозначить стрелочки на клавиатуре в питоне? Например клавиша "w" ей и будет, но как написать именно стрелочки?
Аноним 09/08/23 Срд 17:20:41 2799789 589
Как обозначить стрелочки на клавиатуре в питоне? Например клавиша "w" ей и будет, но как написать именно стрелочки?
Аноним 09/08/23 Срд 17:31:08 2799808 590
>>2799787
>>2799789
Нужно, к примеру, Up написать. Важно с большой буквы
Аноним 09/08/23 Срд 17:45:28 2799828 591
Аноним 10/08/23 Чтв 09:09:17 2800476 592
16909144610780.gif 2469Кб, 225x255
225x255
Когда на вашем нахрюке программирования добавят статическую типизацию как у белых нахрюков? А производительность как у сисек? А джаву када заменит? А GIL када уберут? Я всего этого очень сильно хочу и жду уже наверное лет пять
Аноним 10/08/23 Чтв 09:57:43 2800505 593
>>2800476
>производительность как у си
Уже Cython
>джаву када заменит?
Никогда
>GIL када уберут?
Уже (cython.nogil) в 3.13 зкспериментально возможно, лет через 5 в стабильном билде
Аноним 10/08/23 Чтв 11:52:54 2800571 594
IMG202308100913[...].jpg 110Кб, 1280x720
1280x720
>>2800476
Всего этого тебе не надо, ты будешь писать на питоне, и будешь счастлив
Аноним 10/08/23 Чтв 12:04:58 2800580 595
>>2800571
Мировая закулиса генетически выводит служебных питонистов!
А потом у ребенка-трансформатора вместо родителей будет Питонист 1 и Питонист 2.
Аноним 10/08/23 Чтв 12:17:47 2800590 596
images.png 6Кб, 190x265
190x265
>>2800580
Верно подмечено, каллега. Не зря ведь такой резкий хайп и агрессивный всплеск курсов по питону, чтобы люди не могли пейсать на нормальных язычках, таких как хуйскелл, раст итд. В итоге мы получаем дешевую рабочую силу в лице шаолиньков питонистов, которые будут готовы выжигать глаза смотря на код в мониторе в белом режиме JupyterLab ради смуси и сушеных кузнечиков. И они будут счастливы
Аноним 10/08/23 Чтв 13:41:11 2800680 597
Аноним 11/08/23 Птн 09:22:27 2801740 598
>>2799219
Нашёл. хуем твой анус.
Гавно ДБ, обоснуй, что коунт(*) так может по времени работать!
Аноним 14/08/23 Пнд 06:24:00 2805434 599
Подскажите какой-нибудь опенсурс проект на Питоне, хочу посмотреть как пишут серьезные люди.
Аноним 01/09/23 Птн 17:09:20 2826135 600
>>2748706 (OP)
Анонче, подскажи, как запаковать программку в exe из ипитона, чтобы она работала на винде где среды нет? Какие инструменты лучшие, программка для баловства, окошко и пара кнопок.
Аноним 01/09/23 Птн 17:12:48 2826136 601
>>2748808
база. я пишу основной код на С, компилирую в динамические библиотеки и подключаю к питону через ctypes
Аноним 01/09/23 Птн 17:20:40 2826147 602
>>2826135
есть всякая хуета для преобразования. я использую тяжелый вариант, который ты не поймешь. погугли про embedded python, а еще важно понять, что ты можешь дописать любой текст в конец exe файла. я делаю так: пишу прогу на С++, используя библиотеку питона, которая позволяет исполнять код, копирую код на питоне в конец скомпилированного файла. важно, чтобы между кодом программы и вставленным скриптом была какая-нибудь строка, которая будет использоваться как разделитель, программа на Си должна прочитать содержимое самой себя, найти строку-разделитель, считывать код после этой строки-разделителя, и затем при помощи "встроенного питона" исполняет этот код.
этот вариант ебанутый, тут нужны нетривиальные знания
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов