Telegram Group Search
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;

#вопросы_новичков
@zen_of_python
​​Бэкроним — это в шутку неверная расшифровка аббревиатуры.

PEP — Please Explain Python
#кек
@zen_of_python
Forwarded from IT Юмор
А если ты путешествуешь во времени и прилетел в ДРУГОЙ ЧАСОВОЙ ПОЯС???

😎 — ненавижу их (часовые пояса)
😈 — ничего сложно в них нет
💯 — мне индифферентно

@ithumor
FlareSolverr | Обходим турникет Cloudflare

Фактически эта библиотека обеспечивает вас прокси-сервером для обхода антибот-защиты. Когда приходит запрос, она использует Selenium с undetected-chromedriver для открытия вкладки Chrome. URL с параметрами пользователя открывается, задача Cloudflare решается (или истекает время ожидания). Посмотрим, сколько времени у CF уйдет на «компенсацию» такого «эксплойта».

Цена: бесплатно
Репозиторий проекта
#инструмент
@zen_of_python
Краткий гайд про хэши для новичков

Хеширование — это фундаментальная концепция в Computer Science. В основе лежит идея односторонней функции, которая принимает на вход данные произвольного размера и возвращает выход фиксированной длины. Эта функция преобразует любые данные — будь то строка, число или файл — в уникальное значение фиксированной длины, называемое хешем. Это значение представляет собой последовательность битов, которая служит своего рода «отпечатком пальца» для исходных данных:


import hashlib

hash = hashlib.sha256()
hash.update(b'hello')
hashed_string = hash.hexdigest()

print(hashed_string) # 2cf24d......8b9824


Зачем это нужно

— Проверка «девственности» передаваемых данных: при передаче данных по сети важно убедиться, что они не были изменены. Хеширование позволяет создать контрольную сумму, которая может быть использована для проверки целостности данных;

— Хранение паролей: вместо хранения оных в открытом виде их точно стоит обезопасить хешами;

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


Многие из вас сталкивались с SSH-ключами для Git-репозиториев, причем с разными алгоритмами: MD5, SHA256. В отдельном посте поговорим об алгоритмах шифрования вроде RSA.

Когда мы создаем пару ключей (приватный + публичный), например с помощью:


ssh-keygen -t rsa -b 4096


То получаем приватный ключ, что хранится на локальной машине и используется для аутентификации. Также мы получаем публичный ключ и загружаем его на GitHub. Он не использует хеши для хранения или проверки самих публичных ключей, они проверяются напрямую, при помощи криптографических протоколов. Но вот где вступает в дело хеш:

GitHub (и SSH-клиенты в целом) используют хеши не для безопасности, а для удобной идентификации.

Когда мы смотрим отпечаток ключа, например:


ssh-keygen -lf ~/.ssh/id_rsa.pub


То получаем:


2048 SHA256:2f3b7A5Nk...xyz username@host (RSA)


Это и есть отпечаток ключа (fingerprint) — хеш публичного ключа. Он используется для подтверждения подлинности ключа.

#основы
@zen_of_python
Лаконичная шпора из 12 базовых команд GIT на русском 🙂

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

А если нужна более расширенная подборка — загляните в наш прошлый чит-лист. Возможно даже откроете для себя что-то новое
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Код найма
Хватит искать работу в одиночку!

Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать!

Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма».

Вместе с опытными менторами ты пройдешь все этапы найма:

➡️ Прокачаешь резюме так, чтобы его заметили
➡️ Научишься проходить собеседования без волнения
➡️ Получишь честную обратную связь от рекрутеров
➡️ И, главное, дойдёшь до оффера в компании мечты!

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

Хочешь стать героем нашего реалити и получить шанс найти работу мечты?

✍️ Заполняй анкету

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

Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!
Please open Telegram to view this post
VIEW IN TELEGRAM
​​Опрос про роль ИИ в вашей работе

Редакция Tproger проводит регулярное исследование об отношении айтишников к Искусственному интеллекту. Это небольшая анкета займет не более 5 минут, но очень поможет прояснить отношение разных групп к AI. Результатами обязательно поделимся.

#опрос
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
whatsonpypi | Ускоряем обновление зависимостей

Если при обновлении библиотек проекта вам неохота каждый раз посещать pypi.org, с помощью этой утилиты вы сможете вывести данные о крайней версии и совместимости с Python прямо в командную строку.

Репозиторий проекта
#инструмент
@zen_of_python
Новый инструмент для отладки асинхронных процессов

С выходом Python 3.14 beta 2 появился новый CLI-инструмент для инспекции асинхронных задач:


python -m asyncio ps 12345 # Табличный список задач для процесса с PID 12345
python -m asyncio pstree 12345 # Древовидное отображение взаимозависимых корутин


Команда выводит табличный список активных корутин с их именами, стеком и зависимостями.

Сферы применения
— Telegram-боты;
— aiohttp и другие HTTP-серверах;
— await‑запросы к БД.

Теперь нет нужды вставлять логи или использовать профайлеры — диагностика идет вживую и позволит увидеть:
— какие запросы обрабатываются дольше всего;
— какие «вешают» бота;
— какие запросы ожидают своей очереди.

Документация
#факт
@zen_of_python
​​bandit | Насколько защищен ваш проект?

Инструмент найдет «секурные прорехи» в вашем проекте, включая запушенные ключи / токены и небезопасные участки кода. Внезапно проект OpenStack — опенсорсной облачной инициативы NASA.

Репозиторий проекта
#инструмент
@zen_of_python
Несколько способов ускорить ваш код.

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

tuple вместо list
Кортежи неизменяемы: они создаются один раз, занимают фиксированную память и оптимизируются самим интерпретатором. Списки же — динамический тип: их память часто переранее выделяется, они имеют более сложную внутреннюю структуру.

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


set и dict вместо list при частых проверках и поисках
— Поиск x in my_list — линейная операция (O(n));
— Проверка присутствия через my_set или my_dict — это хеш-таблица (O(1));

Если вам нужна частая проверка вхождений (фильтрация или поиск), выбирайте сет или словарь. Первый предпочтителен для уникальных элементов, второй — когда нужен быстрый доступ по ключу и хранение значений.

Локальные переменные быстрее
Переменные локальной области видимости читаются быстрее, чем глобальные — это из-за особенностей функционирования интерпретатора. В циклах и функциях выносите глобальные объекты как список, словарь в локальные переменные — это ускоряет многократные обращения.

#основы
@zen_of_python
​​Создаём микросервис по выгодному обмену крипты

В статье вы узнаете, как создать микросервис, что анализирует предложения и подсказывает, где можно выгоднее обменять криптовалюту. Все это делается на Python, который делает запросы к API exnode.ru и сортирует результат по выгоде. Вы также увидите, как создается веб‑интерфейс + Telegram‑бот.

#api
@zen_of_python
2025/06/13 09:48:16
Back to Top
HTML Embed Code: