Код на салфетке
СтатистикаПубличного адреса нет. Приглашение не проверяем — ссылка в Telegram может быть уже недействительной.
Канал для тех, кому интересно программирование на Python и не только. Сайт: https://pressanybutton.ru/ Чат: https://t.me/+Li2vbxfWo0Q4ZDk6 Заметки автора: @writeanynotes Реклама и взаимопиар: @Murzyev1995 Сотрудничество и др.: @proDreams
- Последний пост
- 14 авг.
- Последнее чтение
- ещё не заходили
- Постов за неделю
- 6
- Всего постов
- 67
- Тип
- закрытый
- Язык
- русский
- Категория
- Технологии (по похожим)
- В каталоге с
- 16 авг.
- 1/24сутки в ленте
- 274
- 1/48двое суток
- 314
- 1/72трое суток
- 338
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
- 14 авг.25033
Всем привет! «Голограмма для короля» (2016) «Голограмма для короля» — неспешная, меланхоличная драма о человеке в кризисе, который пытается начать всё заново в чужой стране. Алан Клей — разведённый американский бизнесмен, чьи дела в США рухнули, брак распался, а долги навалились так, что он не знает, как оплатить учёбу дочери. Единственный шанс — полететь в Саудовскую Аравию и убедить короля купить его голографическую технологию для нового города, который там строят. В ожидании встречи с королём Алан оказывается в странном, почти пустынном мире: стройка, пустыня, местные рабочие, врач, с которым у него возникает тихая, почти нереальная связь, и ощущение, что он больше не понимает ни своей жизни, ни своего места в мире. Это кино не про «успешный поворот», а про человека, который медленно учится снова быть живым, а не просто функцией «муж, отец, бизнесмен». Идеально для вечера, когда хочется чего‑то спокойного, немного грустного и очень человеческого. Приятного просмотра!
- 14 авг.27652
Почему никто не объясняет аномалии во временных рядах? Автор: Александр Проваторов Встретились с коллегой за кружкой кофе. Разговор свернул в сторону обсуждения рабочих нюансов, а самый обычный вопрос про очередной график в дашборде — закончился идеей проекта, который в итоге вырос в open‑source фреймворк. Читать статью на сайте Поддержать проект через YooMoney Поддержать проект через Tribute в Telegram Поддержать проект через наш Telegram-бот #anomaly_detection #data_mining #data_science #llm #open_source #python #timeseries #анализ_данных #поиск_информации #программирование
- 13 авг.302
Вопрос к тем, кто активно пользуется агентами для разработки:
- 12 авг.2 2301310
Всем привет! В IT-академии Lad скоро стартует серия бесплатных практикумов, и я буду вести там направление бэкенда (на Python, разумеется). Если вы учитесь, планируете менять сферу или просто хотите понять, подходит ли вам бэкенд и IT в целом — это отличная возможность проверить всё на практике без скучной теории. Задумка простая: за несколько встреч мы всей командой менторов и участниками практикумов с нуля соберем и запустим реальный веб-сервис. Можно пройти всю цепочку или выбрать конкретную роль — от ПМ, аналитика и дизайнера до фронтендера, бэкендера и QA. Каждый практикум — это 2–3 часа плотной работы над конкретной задачей. На моей секции по бэкенду мы напишем базовую логику на FastAPI и задеплоим проект на сервер, чтобы он ожил. Никаких академических задачек в вакууме — только нормальная командная разработка и живое общение. Стартуем 17 августа, участие бесплатное. Залетайте заглянуть на IT-кухню изнутри: 👉 ЗАПИСАТЬСЯ
- 11 авг.31692
Знаете ли вы, как потерять файл во время сортировки? Бывает, файл нужно отсортировать и оставить под тем же именем – строчка sort list.txt > list.txt выглядит как решение задачи. Но после нее в файле оказывается ноль строк, а прежнее содержимое взять негде. Причина в порядке действий: перенаправление отрабатывает раньше команды. Шелл открывает файл справа от > на запись, обрезает до нуля, и только потом стартует sort – читать ему уже нечего. printf "banana\napple\ncherry\n" > fruits.txt sort fruits.txt > fruits.txt wc -l < fruits.txt # 0 Никакой ошибки при этом нет: sort штатно отработал на пустом входе и штатно записал пустой результат. Файл существует, права на месте, код возврата 0 – пропали только данные. Обнуляет файл сам шелл, командой это не управляется: printf "INFO start\nDEBUG x=1\nINFO done\n" > app.log false > app.log wc -l < app.log # 0 false не читает и не пишет ничего, он просто завершается с ненулевым кодом – но лог уже пустой. То же самое произойдет с grep -v DEBUG app.log > app.log: попытка выкинуть отладочные строки из лога выкинет лог целиком. Правильный порядок – сначала полный результат, потом замена файла: printf "banana\napple\ncherry\n" > fruits.txt sort fruits.txt > tmp.txt && mv tmp.txt fruits.txt cat fruits.txt # apple # banana # cherry Временный файл разводит чтение и запись во времени, а && гарантирует, что подмена произойдет только при успешном завершении команды. У sort для этого есть и собственный ключ – sort -o fruits.txt fruits.txt. Он, как и sponge из moreutils, сначала читает вход целиком и только потом открывает выходной файл. Файл в правой части перенаправления обрезается до запуска команды, поэтому один и тот же файл не может быть входом и выходом одновременно. Результат сначала пишется рядом – во временный файл или через ключ вроде -o, – и только потом занимает место исходного. Код на салфетке × Кусочки кода
- 10 авг.3752
Привет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 03.08.2026 — Дайджест ⚙️ Вторник, 04.08.2026 — Знаете ли вы, что один True может скрыть исключение внутри with? 📓 Среда, 05.08.2026 — #Почему_IT | Выпуск №7 🎬 Пятница, 07.08.2026 — Пятничный кинорелакс 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode
- 7 авг.47854
Всем доброго вечера пятницы! «Нефть» (2007) «Нефть» — тяжёлая, почти монументальная драма о жадности, вере и одиночестве на фоне нефтяной лихорадки в начале XX века. Золотоискатель Дэниел Плэйнвью находит нефть, превращается из старателя в магната и начинает строить империю, сметая всё на своём пути: конкурентов, землю, людей и даже собственную совесть. Рядом с ним — его приёмный сын, которого он использует как «инструмент» для создания образа честного семейного человека, и харизматичный молодой проповедник, чья религия становится ещё одним бизнесом в этом мире. Чем больше у Плэйнвью власти и денег, тем больше он погружается в подозрительность, паранойю и ненависть ко всем вокруг. Это фильм не про «успешный успех», а про то, как амбиции и капитал превращают человека в монстра, который не может уже ни любить, ни доверять. Подойдёт, если вам нравятся медленные, но очень плотные драмы с сильной актёрской игрой и ощущением, что за каждым словом здесь — ещё слой смысла. Приятного просмотра!
- 5 авг.699172
без подписи
- 4 авг.39674
Знаете ли вы, что один True может скрыть исключение внутри with? При выходе из with Python вызывает __exit__ и передает туда сведения об исключении, если оно возникло. Если исключение было, то ложное значение, включая None, пропускает исключение дальше; истинное сообщает Python, что оно обработано. При обычном выходе все три аргумента __exit__ равны None, а возвращаемое значение ни на что не влияет: class Ignore: def __enter__(self): return self def __exit__(self, exc_type, exc, tb): return True with Ignore(): 1 / 0 print("эта строка не выполнится") print("а эта выполнится") # а эта выполнится ZeroDivisionError возникает и прерывает выполнение тела блока – print внутри with не выполняется. Но __exit__ вернул True, поэтому исключение не выходит за пределы блока, а traceback необработанного исключения не выводится. Еще __exit__ может случайно вернуть истинное значение, пробросив результат другого метода: class Connection: def __enter__(self): return self def close(self): print("соединение закрыто") return True def __exit__(self, exc_type, exc, tb): return self.close() with Connection(): raise RuntimeError("запрос не прошел") print("выполнение продолжилось") # соединение закрыто # выполнение продолжилось Допустим, метод close() в этом API возвращает True как признак успешного закрытия. Но __exit__ передает этот результат дальше, и Python считает его обработанным исключением. Достаточно написать self.close() без return, и RuntimeError дойдет до вызывающего кода. Осознанное подавление выглядит так же, только с явной проверкой типа исключения: class SuppressZero: def __enter__(self): return self def __exit__(self, exc_type, exc, tb): return isinstance(exc, ZeroDivisionError) with SuppressZero(): 1 / 0 print("выполнение продолжилось") with SuppressZero(): int("текст") # ValueError: invalid literal for int() with base 10: 'текст' Деление на ноль гасится, а ValueError распространяется дальше, потому что для него __exit__ вернул False. По тому же протоколу работает contextlib.suppress из стандартной библиотеки: он подавляет указанные классы исключений и их подклассы. Возвращаемое значение __exit__ решает, выйдет ли возникшее исключение за пределы блока with: любое истинное значение останавливает его распространение. Если __exit__ не должен подавлять ошибки, заканчивайте метод без return или явно возвращайте False. Для намеренного локального подавления используйте contextlib.suppress(...), перечисляя только ожидаемые типы исключений. Код на салфетке × Кусочки кода
- 3 авг.3931
Привет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 27.07.2026 — Дайджест ⚙ Вторник, 28.07.2026 — Знаете ли вы, почему обрезка строки может удалить больше, чем ожидается? 📓 Пятница, 31.07.2026 — #Почему_IT | Выпуск №6 🎬 Пятница, 31.07.2026 — Пятничный кинорелакс 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode
- 31 июл.51452
Приветствую! «Полный облом» (2006) «Полный облом» — чёрная комедия о трёх неудачниках, которые решают немного подзаработать на шантаже… и моментально всё ломают. Бывший учитель Чарли не может продать свой роман и найти нормальную работу, пока случайное знакомство с болтливым мошенником Гасом не приводит его к идее заработать на грязном секретике священника. К ним присоединяется строгая домохозяйка Джози, и вместо аккуратной аферы начинается цепочка абсурдных смертей, недоразумений и всё более идиотских попыток замести следы. Каждый новый шаг по «плану» только сильнее загоняет троицу в угол, а их моральные принципы рушатся вместе с контролем над ситуацией. Это фильм для тех, кто любит мрачный юмор: милые на вид люди творят всё хужее вещи, а судьба словно специально показывает, что с преступлениями у них явный талант к полному провалу. Хороший вариант, если хочется небанальной криминальной комедии, где смех периодически смешивается с нервным «ой». Приятного просмотра!
- 31 июл.517104
без подписи
- 28 июл.567105
Знаете ли вы, почему обрезка строки может удалить больше, чем ожидается? Аргумент strip() задает набор символов для удаления с краев строки. Метод идет с начала и конца и удаляет каждый символ, который входит в этот набор, пока не встретит другой. Поэтому при .strip(".com") по краям будут удаляться любые последовательности из ., c, o и m – в любом порядке и количестве. def domain_name(host): return host.strip(".com") print(domain_name("example.com")) # example print(domain_name("moscow.com")) # scow На первом хосте решение выглядит рабочим: справа отрезаются m, o, c и .. А слева стоит e, и так как ее в наборе нет – обрезка не начинается. На втором – слева стоят m и o, оба из набора, и оба отпадают, так что от moscow остается scow. def basename(filename): return filename.rstrip(".txt") print(basename("notes.txt")) # notes print(basename("report.txt")) # repor Односторонний rstrip от этого не спасает: он доходит справа до t, x, t, ., а следующая буква – t из слова report, тоже входит в набор. Так что имя файла укорачивается на букву, и дальше в код уходит repor. def domain_name(host): return host.strip(".com") def domain_name_fixed(host): return host.removesuffix(".com") print(domain_name("mom.com")) # пустая строка print(domain_name_fixed("mom.com")) # mom В mom.com каждый символ входит в набор, поэтому strip() удаляет строку целиком. А removesuffix и removeprefix, доступные с Python 3.9, работают с целой подстрокой: при совпадении удаляют ее целиком, при отсутствии совпадения возвращают исходную строку. strip() создан для обрезки пробелов и мусора по краям, так что на длинных аргументах он ведет себя как фильтр символов. Чтобы отрезать известный префикс или суффикс лучше импользовать removeprefix и removesuffix. Код на салфетке x Кусочки кода
- 27 июл.5904
Привет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 20.07.2026 — Дайджест ⚙️ Среда, 22.07.2026 — Знаете ли вы, что return внутри finally подавляет исключение из try?, Работа над проектом "сметана" 📓 Четверг, 23.07.2026 — #Почему_IT | Выпуск №5 🎬 Пятница, 24.07.2026 — Пятничный кинорелакс 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode
- 24 июл.620112
Всем привет! «Кролик Джоджо» (2019) «Кролик Джоджо» — трагикомедия Тайки Вайтити про мальчика в нацистской Германии, который видит Гитлера своим воображаемым другом. 10‑летний Джоджо живёт с мамой, гордо состоит в Гитлерюгенде и искренне верит в пропаганду, пока не узнаёт, что мама прячет у них дома еврейскую девочку. Его мир рушится: идеология сталкивается с реальным, живым человеком, который не похож ни на одно страшное описание из агиток. Воображаемый «друг‑фюрер» начинает вести себя всё более агрессивно, а Джоджо постепенно понимает, что любить людей важнее, чем следовать лозунгам. Фильм одновременно смешной и очень болезненный: через юмор показывает, как детям промывают мозги, и как сложно вылезти из того, чем тебя кормили с детства. Отличный выбор, если хотите увидеть войну глазами ребёнка — наивно, смешно, но в итоге очень трогательно. Приятного просмотра!
- 23 июл.76281
без подписи
- 22 июл.65882
без подписи
- 21 июл.529116
Знаете ли вы, что return внутри finally подавляет исключение из try? Python всегда выполняет finally: и после успешного return, и после исключения. Но если finally сам содержит return, break или continue – управление уходит по этому пути, а исключение из try просто отбрасывается без traceback. def divide(a, b): try: return a / b finally: return -1 print(divide(10, 0)) # -1 – ZeroDivisionError просто исчез ZeroDivisionError действительно возникает внутри try. Но finally перехватывает управление своим return -1 раньше, чем исключение успевает подняться выше и функция возвращает -1, как будто ничего не случилось. def divide(a, b): try: return a / b finally: print("cleanup") divide(10, 0) # cleanup # Traceback (most recent call last): # ... # ZeroDivisionError: division by zero Без return в finally поведение обычное: cleanup отрабатывает, а исключение летит дальше – разница только в одном операторе. def process(items): for item in items: try: if item < 0: raise ValueError(item) finally: break return "done" print(process([-1, -2, -3])) # done – ValueError из первой итерации потерян break и continue в finally работают так же, как return – любой из них обрывает обработку исключения. Документация Питона прямо говорит, что если finally выполняет break, continue или return, сохраненное исключение не поднимается повторно. finally гарантированно выполнится, но не гарантирует, что исключение из try дойдет до вызывающего кода. return, break или continue внутри finally – способ молча проглотить баг, который потом еще и по логам не найдется. Код на салфетке x Кусочки кода
- 20 июл.5634
без подписи
- 13 июл.55041
Привет, друзья! 👋 Еще одна неделя позади, и у нас накопилось много интересного контента. Вот самые полезные и увлекательные материалы, которые мы выбрали для вас на этой неделе: 📋 Новое на канале: 🔄 Понедельник, 06.07.2026 — Дайджест 🔧 Вторник, 07.07.2026 — Знаете ли вы, как super() находит нужный метод и с каким self он выполнится? ⚙️ Среда, 08.07.2026 — Впервые показываем, как будет выглядеть журнал операций в «сметане», Опрос, Алгоритмы для Django-разработчика 📓 Четверг, 09.07.2026 — #Почему IT | Выпуск №3 🎬 Пятница, 10.07.2026 — Пятничный кинорелакс 🚀 Суббота, 11.07.2026 — Алгоритмы для Django-разработчика 🔗 Будьте ближе к нам: 🌐 Читайте полные статьи на сайте 💬 Присоединитесь к обсуждению в чате Спасибо, что остаетесь с нами! Надеемся, что эти материалы будут вам полезны. Удачи в новой неделе! 🚀 #дайджест #код #python #полезное #код_на_салфетке 😼 @napkincode