Программистика
Закрытый канал
Лучший канал про python Ссылка для друга: https://t.me/+Ai6ughKtf5g2ZmFi Купить рекламу: https://telega.in/c/+Ai6ughKtf5g2ZmFi Админ: @JeyRahol По рекламе: @ReivuManager
Больше5 799
Подписчики
+3224 часа
+187 дней
-4030 дней
Архив постов
5 791
🧠 Отгадка: что выведет этот код?
funcs = [lambda i=i: i for i in range(3)]
print([f() for f in funcs])
✔️ Правильный ответ: 1. `[0, 1, 2]`
📖 Почему так происходит?
Внутри спискового включения создаётся три лямбда-функции. Ключевая деталь — lambda i=i: i. Обычно лямбда захватывает переменную i из внешней области видимости (замыкание), и из-за позднего связывания (late binding) все три функции вернули бы последнее значение i (2). Но здесь мы добавили аргумент по умолчанию i=i, который вычисляется в момент создания каждой лямбды. На каждой итерации цикла текущее значение i (0, затем 1, затем 2) фиксируется как значение по умолчанию для параметра i внутри функции.
Таким образом:
- Первая лямбда: lambda i=0: i - Вторая: lambda i=1: i - Третья: lambda i=2: iПри вызове без аргумента каждая лямбда возвращает своё сохранённое значение по умолчанию. Поэтому получаем
[0, 1, 2].
Без аргумента по умолчанию (lambda: i) все функции вернули бы одно и то же последнее значение 2.
🛠 Как запомнить?
Аргумент по умолчанию в лямбде — это способ «заморозить» переменную цикла, чтобы избежать классической ловушки. Хитрость, которую стоит знать и использовать.
Ставьте 🔥, если было полезно!
Программистика || #quiz5 791
👩💻 InquirerPy — это Python-форк знаменитой библиотеки Inquirer.js, позволяющий создавать красивые интерактивные интерфейсы в терминале. Библиотека поддерживает все популярные типы диалогов: текстовый ввод, подтверждения, списки (одиночный выбор), чекбоксы (множественный выбор) и даже ввод пароля. InquirerPy написан на чистом Python с использованием prompt_toolkit, работает на всех платформах (Windows, macOS, Linux) и предлагает два варианта синтаксиса: классический (для обратной совместимости с PyInquirer) и альтернативный (гибкий, с подсказками от IDE).🐱 Ссылка на GitHub Программистика|| #Репозиторий
5 791
💻 Логово Сфинкса — самое активное ИБ-комьюнити во всём телеграме!
Сам Сфинкс очень умелый молодой специалист, который уже, учась в унике, получал офферы на +300к💰
И на своём канале он освещает такие темы, как:
— атаки на актив директори
— атаки на инфру
— обход различных средств защиты и фишинг
— C2 Фреймворк
— И много опыта из жизни и работы
Так же он помогает своим подписчикам обучиться ИБ и составить успешное резюме!
Подпишись и ты точно найдёшь работу🫵
5 791
🗑 Сборка мусора в Python: кто и когда убирает за тобой?
Вы когда-нибудь создавали миллион объектов в цикле и не думали о том, куда они деваются? Память не бесконечна. Кто-то же должен убирать мусор. В C/C++ вы вызываете
free(). В Python это делает автоматический сборщик мусора (GC). Разбираемся, как он работает, простыми словами.
🧱 Проблема: как объекты умирают?
Каждый объект в Python имеет счётчик ссылок. Сколько переменных на него указывают.
x = [1, 2, 3] # счётчик = 1
y = x # счётчик = 2
del x # счётчик = 1
del y # счётчик = 0 → объект удаляется сразу
Это подсчёт ссылок (reference counting) — основной метод. Работает быстро, удаляет объект мгновенно, когда на него больше никто не ссылается.
🧪 А что с циклическими ссылками?
Вот где начинаются проблемы:
class Node:
def __init__(self):
self.next = None
a = Node()
b = Node()
a.next = b
b.next = a
del a
del b
Теперь два объекта ссылаются друг на друга, но из программы на них никто не указывает. Счётчики = 1. Подсчёт ссылок не может их удалить. Это утечка памяти.
🛠 Как управлять GC вручную
Модуль gc даёт контроль:
import gc
# Показать пороги срабатывания
print(gc.get_threshold()) # (700, 10, 10)
# Запустить сборку принудительно
gc.collect()
# Отключить GC (не делайте без причины)
# gc.disable()
Программистика || #Статья5 791
🧠 Загадка на ночь: что выведет этот код?
funcs = [lambda i=i: i for i in range(3)]
print([f() for f in funcs])
Варианты:
1. [0, 1, 2]
2. [2, 2, 2]
3. [0, 0, 0]
4. Ошибка
Пиши свой вариант в комментарии! Ответ и разбор — через пару часов 🔥
Программистика || #quiz5 791
⚡️ Tyro — это библиотека для создания CLI-приложений прямо из аннотаций типов Python. Забудьте про многострочный argparse: достаточно описать функцию с типами, добавить
tyro.cli() — и у вас готово приложение с авто-документацией, парсингом, проверкой типов и поддержкой вложенных dataclass-структур. IDE и mypy подскажут все аргументы, а ошибки в конфигурации отловятся до запуска.
Программистика|| #Репозиторий5 791
Айтишник, который не умеет использовать командную строку bash – так себе специалист.
Если посетить несколько собеседований уровня от миддл, то можно убедиться, что вопросы про опыт работы в консоли появляются довольно часто.
Сходу научиться всем командам bash нереально – их очень много.
К счастью, появился канал BashMaster, в котором каждый день можно узнавать по одной небольшой связке команд и сразу же внедрять их в свою работу.
Подпишись, освоишь bash на изи 👍
5 791
Beginner Guide to Python - Tasks
Задания для открытого курса по Python, подходит всем - от новичков в программировании до тех, кто захотел изучить стремительно развивающуюся технологию в мире ИТ (Python занимает 1-3 место в популярности среди языков программирования за 2019 год)
🌐 СсылкаПрограммистика || #Course
5 791
На Stepik запустили годный курс по «Troubleshooting Docker и Kubernetes: поиск и устранение проблем»
В программе только важные аспекты:
— troubleshooting Docker и образов
— диагностика сетевых проблем
— настройка readiness/liveness probes
— отладка pod’ов, деплоев и ingress
— анализ логов контейнеров и кластера
— разбор ошибок CrashLoopBackOff, OOMKilled, ImagePullBackOff и других
Собеседования на DevOps/SRE сейчас всё чаще строятся вокруг реальных инцидентов. Данный курс фокусируется именно на таких сценариях и помогает в подготовке к практическим вопросам
48 часов доступен со скидкой 25%
↗️ Пройти курс на Stepik
5 791
👩💻 python-mss — модуль для создания снимков экрана (скриншотов) на нескольких платформах, таких как Windows, macOS и Linux!
Модуль реализован на чистом Python с использованием ctypes, что делает его лёгким, быстрым и не зависящим от внешних библиотек. MSS поддерживает захват скриншотов с отдельных мониторов или всех мониторов одновременно, а также интеграцию с библиотеками, такими как Pillow, Numpy и OpenCV, для последующей обработки изображений.Программистика|| #Репозиторий
5 791
⚡️ Linux теперь в Telegram!
Ребята делают реально классный канал про IT - просто, понятно и без воды.
О Linux, DevOps, разработке, безопасности и инструментах, которые помогают работать эффективнее.
Подписывайтесь: @recura_tech
5 791
📦 `None` в Python: не просто «ничего», а полноценный объект
Многие новички думают, что
None — это как «пустота» или «ничего». На самом деле None — полноценный объект со своим типом NoneType. Он существует в единственном экземпляре на всю программу (синглтон).
Что важно знать:
1. None используется для обозначения отсутствия значения:
def func():
print("Привет")
result = func() # result = None
2. Сравнивать с None нужно через is, а не ==:
if value is None: # правильно
if value == None: # работает, но так не делают
3. None — ложное значение в булевом контексте:
if not value: # сработает и для None, и для 0, и для []
4. Функция без return возвращает None.
Запомните: None — не ошибка и не баг, а сигнал «значения нет». Уважайте объект None как полноправного гражданина Python.
Программистика || #doc5 791
🧠 Отгадка: что выведет этот код?
def add_one(x=[]):
x.append(1)
return x
print(add_one())
print(add_one())
✅ Правильный ответ: 2. `[1]` и `[1, 1]`
📖 Почему так происходит?
Аргумент по умолчанию (x=[]) создаётся один раз, в момент определения функции, а не при каждом вызове. Список [] сохраняется внутри функции и используется во всех вызовах, куда не передали явный аргумент.
🟢 Первый вызов: x указывает на тот самый список → добавляем 1 → возвращаем [1].
🟢 Второй вызов: x снова указывает на тот же самый список (теперь он [1]) → добавляем ещё 1 → возвращаем [1, 1].
Это классическая ловушка с изменяемыми объектами в аргументах по умолчанию.
🛠 Как правильно?
Если нужен новый список при каждом вызове, используйте None:
def add_one(x=None):
if x is None:
x = []
x.append(1)
return x
print(add_one()) # [1]
print(add_one()) # [1]
Запомните: аргументы по умолчанию вычисляются один раз — для неизменяемых типов (int, str, tuple) это безопасно, для изменяемых (list, dict, set)
Больше загадок — ставьте 🔥
Программистика || #quiz5 791
Кажись началось!
Толпы вайбкодеров рухнули на рынок труда! ☺️ С лёгкой подачи чатгпт повсюду появились дыры🤯 Проблему надо решать👍
Поэтому ИБ'ешники, как никогда требуются на рынке труда😶
Так что заходите в Логово Сфинкса, там вы поймёте что к чему, разберётесь что можно читать а что нельзя и наконец получите чёткое представление о том, что должен уметь безопаснк🐈⬛
Так же скоро начнëтся второй поток на его курс по атакам на инфру, где он проведëт вас от самых основ и поможет составить резюме для успешного трудоустройства🥡
Не думай, просто, подпишись и скоро ты окажешься на работе мечты: https://t.me/+TCtuSVJObBAyYTBk
5 791
🧠 Загадка на ночь: что выведет этот код?
def add_one(x=[]):
x.append(1)
return x
print(add_one())
print(add_one())
Варианты:
1. [1] и [1]
2. [1] и [1, 1]
3. [1] и []
4. Ошибка
Пиши свой вариант в комментарии! Ответ и разбор — через пару часов 🔥
Программистика || #quiz5 791
1 миллион в год - именно столько я добавил к зарплате, просто составив грамотное резюме
Безусловно, уметь кодить - важный аспект, но на самом деле именно резюме решает, попадёте ли вы на собеседование или нет
Максим Аверин (Senior Python Dev) у себя в канале подробно разобрал вопросы, которыми тимлид мгновенно отсекает неопытных разработчиков и дал шаблон резюме, которое поможет тебе выбить более жирный оффер
Также для подписчиков есть бесплатный гайд «Как получить первую работу на Python с зарплатой от 150к»
Осень — самый горячий сезон найма. У тебя ещё есть возможность получить тот самый оффер, подписывайся: @maksim_python
5 791
😒 Подборка каналов по информационной безопасности
Проверенные каналы по безопасности, которые реально помогают расти.
👍 ZeroDay — Уроки, эксплуатация уязвимостей с нуля
👍 Белый Хакер — Свежие новости из мира ИБ
😎 Бункер Хакера — Статьи, книги, шпаргалки и хакинг
👨💻 Серверная Админа — Настройка и уроки по компьютерным сетям
📂 Подписывайся
