Python community developers
1.38K subscribers
367 photos
45 videos
6 files
241 links
Сообщество программистов на языке Python🙂
🔥Разбор вопросов и задач с собеседований
🔥Обзор популярных библиотек и фишек языка
🔥Интересные идеи программ

Сотрудничество - @BorryaD

@Python_community_developers_bot
加入频道
Делаем планировщик задач

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

Основной его плюс в том, что он максимально интуитивный и имеет гибкий функционал. А еще schedule не требует внешних зависимостей и сам в целом легковесный.

Здесь на самом деле даже объяснять особо нечего, логика методов в этом пакете понятна на примерах.

#doc #python
Ключевое слово nonlocal

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

Поведение nonlocal заключается в том, что интерпретатор ищет переменную в ближайшей области видимости.

Основное различие с global в том, что с помощью nonlocal нельзя получить переменные из глобальной области видимости.

#python #doc
Находим соответствия в строках

В стандартной библиотеке Python существует модуль difflib, в котором есть интересный метод get_close_matches. Он позволяет найти в списке строки, похожие на некую исходную.

Данный метод ищет "наилучшие" возможные совпадения. Первый аргумент задаёт искомую строку, второй аргумент – список, в котором выполняется поиск.

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

#python #doc
Генерируем ip адреса

С помощью следующего фрагмента кода мы можем с легкостью сгенерировать ip адрес.

#python #doc
Получаем исходный код объекта

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

Сегодня поговорим только про getsource(), который возвращает весь исходный код функции, класса или модуля в виде строки.

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

#python #doc
Возврат нескольких значений

Функции в Python могут возвращать более одной переменной без применения словаря, списка или класса.

#python #doc
Media is too big
VIEW IN TELEGRAM
▶️ Pytest. Краткое руководство

Главным конкурентом старого доброго unittest в мире тестирования на python является модный молодежный pytest.

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

👀 Смотреть на YouTube

#python #doc
Трюк с f-строками

Думаю, про f-строки как метод форматирования все уже знают. Напоминаю, что появились они еще в Python 3.6.

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

#python #doc
Важное про цифры и Юникод

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.

Это крайне важно знать, потому что эти символы влияют на такие функции, как int, unicode.isdecimal и даже re.match.

Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.

#python #doc #числа #юникод
__missing__

Методing__

Метод определяет поведение подкласса словаря при доступе к несуществующему ключу. Более конкретно, внутренний метод словаря getitem вызывает методетод __missin если ключ не существует.

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

В этом примере мы создаем экземпляр класса DefaultDict с значением по умолчанию 'default'. Когда мы пытаемся получить доступ к несуществующему ключу 'key', вызывается метод missing, который возвращает значение по умолчанию.

#Python #doc
🔥 Изучаем Tkinter. Руководство на русском

Tkinter
— кросс-платформенная Python библиотека для создания приложений с графическим интерфейсом пользователя.

#doc #python #russain
🐳 Учебник по Docker на русском

➡️ Что такое и зачем нужен Docker
➡️ Docker Compose
➡️ Работа с контейнерами
➡️ Запуск Flask приложения с MongoDB в Docker Compose
➡️ Управление Docker в веб-интерфейсе и много чего интересного

Лойс за годноту 👍

#doc #docker #russian
😰 Python остается одним из самых удобных, простых и популярных языков, но потребляет в 75 раз больше энергии, чем C, при выполнении тех же задач и в 71 раз медленнее.

#doc
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Наглядно — 9 типов тестирования API

➡️ Smoke Testing
Делается после разработки API. Проверка того, что API работают и ничего не выходит из строя.

➡️ Functional Testing
Позволяет создать план тестирования на основе функциональных требований и сравнить его с фактическими результатами.

➡️ Integration Testing
Этот тест объединяет ряд вызовов API и выполняет сквозные тесты. Оцениваются коммуникации и передача данных в процессе эксплуатации.

➡️ Regression Testing
Этот тест гарантирует, что исправления ошибок или новые функции не нарушат текущее поведение API.

➡️ Load Testing
Измеряет производительность приложений при различных нагрузках. Мы можем определить емкость приложения.

➡️ Stress Testing
API специально перегружаются, чтобы проверить, могут ли они функционировать должным образом.

➡️ Security Testing
Этот тест сертифицирует API от всех потенциальных угроз извне.

➡️ UI Testing
Гарантирует, что пользовательский интерфейс может взаимодействовать с этими API и отображать данные по мере необходимости.

➡️ Fuzz Testing
Этот тест отправляет недействительные или неожиданные входные данные в API и пытается вызвать его сбой. Делается путем выявления уязвимостей API.

📂 Сохраняем

#doc #api
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Python фреймворки под разные задачи

🖱 Машинное обучение
🖱 Работа с БД
🖱 Парсинг/скрапинг
🖱 Работа с данными
🖱 Визуализация данных и д.р.

📂 Пригодится

#doc #python #soft
This media is not supported in your browser
VIEW IN TELEGRAM
💻 8 популярных сетевых протоколов с наглядным и простым объяснением

Сетевые протоколы работают на разных уровнях модели OSI, это важно знать.

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

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

🖱 𝗧𝗖𝗣/𝗜𝗣 (𝗧𝗿𝗮𝗻𝘀𝗺𝗶𝘀𝘀𝗶𝗼𝗻 𝗖𝗼𝗻𝘁𝗿𝗼𝗹 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹/𝗜𝗻𝘁𝗲𝗿𝗻𝗲𝘁 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹)

Этот протокол является базовым методом передачи информации между устройствами в Интернете. В то время как IP отвечает за адресацию и маршрутизацию пакетов данных, TCP заботится о сборке данных в пакеты, а также о надежной доставке.

🖱 𝗛𝗧𝗧𝗣 (𝗛𝘆𝗽𝗲𝗿𝘁𝗲𝘅𝘁 𝗧𝗿𝗮𝗻𝘀𝗳𝗲𝗿 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹)

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

🖱 𝗛𝗧𝗧𝗣𝗦 (𝗛𝘆𝗽𝗲𝗿𝘁𝗲𝘅𝘁 𝗧𝗿𝗮𝗻𝘀𝗳𝗲𝗿 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹 𝗦𝗲𝗰𝘂𝗿𝗲)

Усовершенствованная версия HTTP, HTTPS объединяет протоколы безопасности (а именно TLS) для шифрования данных, обеспечивая безопасный и конфиденциальный обмен между браузерами и веб-сайтами.

🖱 𝗙𝗧𝗣 (𝗙𝗶𝗹𝗲 𝗧𝗿𝗮𝗻𝘀𝗳𝗲𝗿 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹)

Как следует из названия, FTP используется для передачи файлов (загрузки и скачивания) между компьютерами в сети.

🖱 𝗨𝗗𝗣 (𝗨𝘀𝗲𝗿 𝗗𝗮𝘁𝗮𝗴𝗿𝗮𝗺 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹)

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

🖱 𝗦𝗠𝗧𝗣 (𝗦𝗶𝗺𝗽𝗹𝗲 𝗠𝗮𝗶𝗹 𝗧𝗿𝗮𝗻𝘀𝗳𝗲𝗿 𝗣𝗿𝗼𝘁𝗼𝗰𝗼𝗹)

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

🖱 𝗦𝗦𝗛 (𝗦𝗲𝗰𝘂𝗿𝗲 𝗦𝗵𝗲𝗹𝗹)

Secure Shell — это криптографический сетевой протокол, который обеспечивает безопасную передачу данных по незащищенной сети. Он обеспечивает безопасный канал, гарантируя, что хакеры не смогут интерпретировать информацию путем подслушивания.

#doc #cheatsheet
👨‍💻 Дорожная карта Full-Stack разработчика

Full-stack разработчик должен владеть широким спектром технологий и инструментов в различных областях разработки программного обеспечения. Здесь представлен полный обзор технических стеков, необходимых для разработчика полного стека.

🖱 1. Фронтенд разработчик
Frontend-разработка включает в себя создание пользовательского интерфейса и пользовательского опыта веб-приложения.

🖱 2. Бэкенд разработчик
Разработка бэкенда включает в себя управление логикой на стороне сервера, базами данных и интеграцию различных сервисов.

🖱 3. Мобильная разработка
Мобильная разработка подразумевает создание приложений для мобильных устройств.

🖱 4. Облачные вычисления
Облачные вычисления подразумевают развертывание и управление приложениями на облачных платформах.

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

🖱 6. UI/UX дизайн
UI/UX-дизайн включает в себя разработку пользовательского интерфейса и опыта работы с приложениями.

🖱 7/8. Инфраструктура и DevOps
Инфраструктура и DevOps включают в себя управление инфраструктурой, развертывание и непрерывную интеграцию/непрерывную доставку (CI/CD) приложений.

#doc #cheatsheet
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Если вы создаете API, вот вам 6 архитектур которые нужно знать

Проектирование API — это не только функциональность, но и выбор правильной архитектуры для удовлетворения ваших потребностей. Вот шесть архитектурных проектов API, с которыми должен быть знаком каждый разработчик:

🖱 1 — REST
— Самая популярная архитектура для веб-сервисов.
— Использует HTTP-запросы для связи.
— Не сохраняет состояние и обеспечивает легкую масштабируемость и гибкость.

🖱 2 — GraphQL
— Язык запросов для вашего API.
— Позволяет клиентам запрашивать именно то, что им нужно, не больше и не меньше.
— Идеально подходит для оптимизации сетевых запросов.

🖱 3 — SOAP (устаревший)
— Протокол для обмена структурированной информацией в веб-сервисах.
— Известен своими строгими стандартами и встроенной обработкой ошибок.
— Часто используется в приложениях корпоративного уровня.

🖱 4 - gRPC
- Высокопроизводительная среда с открытым исходным кодом.
- Использует HTTP/2 для транспорта и буферы протоколов в качестве языка описания интерфейса.
- Отлично подходит для микросервисов и общения в реальном времени.

🖱 5 - WebSockets
- Обеспечивает двустороннюю связь между клиентом и сервером.
- Идеально подходит для приложений реального времени, таких как чат-приложения и обновления в реальном времени.
- Позволяет осуществлять непрерывный обмен данными без накладных расходов HTTP.

🖱 6 - MQTT
- Легкий протокол обмена сообщениями для небольших датчиков и мобильных устройств.
- Ориентирован на минимальное использование полосы пропускания и заряда батареи.
- Обычно используется в приложениях IoT (Интернет вещей).

📂 Сохраняем

#doc #cheatsheet
👨‍💻 The Algorithms — крупнейшая библиотека алгоритмов с открытым исходным кодом.

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

📂 Сохраняем

📌 Веб-сайт на русском
📌 GitHub

#doc #cheatsheet #python
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 9 лучших архитектурных шаблонов для потоков данных и коммуникаций

🖱 Peer-to-Peer
Шаблон Peer-to-Peer подразумевает прямую связь между двумя компонентами без необходимости в центральном координаторе.

🖱 API Gateway
Шлюз API выступает в качестве единой точки входа для всех клиентских запросов к внутренним службам приложения.

🖱 Pub-Sub
Шаблон Pub-Sub разделяет производителей сообщений (издателей) от потребителей сообщений (подписчиков) через брокера сообщений.

🖱 Request-Response
Это один из самых фундаментальных шаблонов интеграции, где клиент отправляет запрос на сервер и ждет ответа.

🖱 Event Sourcing
Event Sourcing подразумевает сохранение изменений состояния приложения в виде последовательности событий.

🖱 ETL
ETL — это шаблон интеграции данных, используемый для сбора данных из нескольких источников, преобразования их в структурированный формат и загрузки в целевую базу данных.

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

🖱 Streaming Processing
Потоковая обработка обеспечивает непрерывный прием, обработку и анализ потоков данных в режиме реального времени.

🖱 Orchestration
Orchestration подразумевает наличие центрального координатора (оркестратора), управляющего взаимодействиями между распределенными компонентами или службами для достижения рабочего процесса или бизнес-процесса.

#doc #cheatsheet