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

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

@Python_community_developers_bot
加入频道
🚀 Полезные библиотеки Python

💾 Pywebview

📌
Библиотека Python для отображения HTML-контента в собственном окне графического интерфейса.
Это дает вам мощь веб-технологий в вашем настольном приложении, скрывая тот факт, что графический интерфейс основан на браузере.

⚙️ Установка 👇👇👇

pip install pywebview


📁Документация

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

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

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

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

#python #doc
Python с нуля

Авторы: Роман Гурбанов,
Жан-Лу Кретьен
Год издания: 2023

Скачать книгу

#book #python
​​Не используйте обработку исключений слишком часто

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

Не стоит злоупотреблять try-except конструкциями, так как в большинстве случаев можно справиться с задачей, применяя обычные условия. Используйте обработку исключений только в крайних случаях.

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

#совет #исключения
Простой, но мощный веб-фреймворк

Самым популярным фреймворком для разработки серверной части на Python является Flask. К слову, он обгоняет даже Django по звездам на GitHub.

Flask предназначен для быстрого и легкого старта работы с возможностью масштабирования до сложных приложений. А коммьюнити предоставляет множество расширений для фреймворка.

Для создания минимального рабочего приложения достаточно кода выше. После запуска такого скрипта можете перейти в браузере по адресу http://localhost:5000/ и посмотреть результат.

#модули
Библиотека FuzzyWuzzy

Интересная и полезная библиотека поиска совпадений в тексте. Очень поможет вам при работе над общающимися ботами: голосовыми или текстовыми помощниками.

Разумеется, это один из инструментов, всегда можно использовать другой, но я лично пользуюсь этим.

Библиотеку следует установить:

 install fuzzywuzzy

Несколько примеров работы библиотеки на картинке.

#python #библиотеки
Библиотека Progressbar

Думали ли вы когда-нибудь над полоской прогресса? Иногда бывает полезно добавить в код отображение прогресса, чтобы пользователь не беспокоился, что программа не отвечает.

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

Все это очень интересно, но если мы начнем самостоятельно писать полосу прогресса, то отвлечемся от основного кода. К счастью, в python есть библиотека Progressbar, которая делает все за нас.

#python #библиотеки
Media is too big
VIEW IN TELEGRAM
▶️ Аргумент key для сортировки коллекций по ключу

В
ходе просмотра видео, вы узнаете, как выполнять сортировку коллекций по ключу кеу с помощью функции sorted и метода
sort.

👀 Смотреть на YouTube
Возврат нескольких значений

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

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

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

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

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

#python #doc
🐍 ТОП-5 сайтов для Python-программиста.

1. AI Code Translator - это 😊 искусственный интеллект для конвертирования кода из Python (или других языков) в другие языки программирования, начиная с C++ и заканчивая Assembly.

2. Google Colab - это онлайн-редактор ✍️ для Python, позволяющий работать с кодом прямо в браузере. Тут вы можете легко скачивать библиотеки и выполнять другие операции.

3. musicForProgramming - специально подобранная 🎧 музыка для программирования.

4. Codecademy - образовательная платформа, предлагающая обширные курсы по Python и другим языкам программирования для 🍿 начинающих и опытных разработчиков.

5. Stack Overflow - пожалуй, самая популярная Q&A платформа для программистов, на которой вы найдете 🔍 решение практически любых проблем в коде и не только.

#сервисы
Подключаемся к серверу по ssh

Пакет paramiko позволяет устанавливать соединение с удаленными машинами по протоколу SSH2 и производить там все те же операции, если бы вы подключались через, например, утилиту ssh на линуксе.

Использовать модуль достаточно просто, пример основный методов на картинке выше. Кстати, интересный факт, Paramiko — это сочетание слов "параноик" и "друг" на языке эсперанто.

Устанавливается пакет привычным образом через пакетный менеджер pip. А документацию можете изучить тут.

#python #ssh
Оператор неравенства и Дядя Бэрри

Вспомним немного историю: 1 апреля 2009 года выпустили PEP 401, в котором говорилось, что Гвидо ван Россум покидает команду Python.

На его замену должен был прийти Barry Warsaw, который имел официальный статус Friendly Language Uncle For Life (FLUFL) — в переводе, дружелюбный дядя языка на всю жизнь.

И этот Дядя Бэрри предложил заменить "противный" знак неравенства != на <>. Изменения обещали выпустить в последующих версиях, но его можно было протестировать и раньше времени.

Для этого можно импортировать barry_as_FLUFL из пакета __future__. Результат можете посмотреть на картинке сверху.

Это всё, конечно же, было первоапрельской шуткой, но оператор <> всё ещё доступен и является некой пасхалкой.

#пасхалка
Трюк с 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 #числа #юникод
Создаем бесконечный итератор

Функция cycle() из itertools принимает на вход итерируемый объект и создает бесконечный итератор, циклически возвращающий элементы данного объекта.

Фишка заключается в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.

Но если вы проходитесь циклом по такому итератору, то важно предусмотреть выход из цикла, иначе он станет бесконечным (как у нас в первом случае на картинке).

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

#itertools
Подключаемся к серверу по ssh

Пакет paramiko позволяет устанавливать соединение с удаленными машинами по протоколу SSH2 и производить там все те же операции, если бы вы подключались через, например, утилиту ssh на линуксе.

Использовать модуль достаточно просто, пример основный методов на картинке выше. Кстати, интересный факт, Paramiko — это сочетание слов "параноик" и "друг" на языке эсперанто.

Устанавливается пакет привычным образом через пакетный менеджер pip. А документацию можете изучить тут.

#ssh
__missing__

Методing__

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

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

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

#Python #doc
3 трюка с itertools

Сегодня мы рассмотрим несколько функций из довольно полезного модуля, позволяющих эффективно работать с итерируемыми объектами. Начнём с очень простой функции – chain. Она позволяет "склеивать" несколько итерируемых элементов в один.

Далее, accumulate. Эта функция немного похожа на reduce, но вместо того, чтобы давать одно окончательное значение, она последовательно применяет функцию, заданную вторым аргументом (в данном случае min), к каждому последующему элементу по порядку: min(11), min(11, 3), min(11, 3, 9) и так далее.

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

#модули #itertools
Редирект вывода программы

В contextlib есть еще один прикольный контекстный менеджер — redirect_stdout, позволяющий перенаправить стандартный вывод программы.

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

Таким образом, данные из print() в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout.

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

#contextlib