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

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

@Python_community_developers_bot
加入频道
Измерение времени выполнения кода с использованием контекстного менеджера

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

Этот метод помогает автоматизировать замеры времени, делая код чище и удобнее для анализа производительности.
Media is too big
VIEW IN TELEGRAM
▶️ Enum | Перечисления в Python

Enum (перечисления) – это класс, который содержит константы и методы для работы с ними

Enum нужен там, где количество значений ограничено, если у вас есть 2+ констант, связанных по смыслу – это возможно хороший вариант для Enum.

Enum "ограничивает" выбор пользователя
Помогает пользователю понять возможные варианты
Позволяет легко добавлять или удалять значения

👀 Смотреть на YouTube
➡️ Многоточие в Python

🗣️ Многоточие Python – это последовательность из трех точек, часто используемая в естественных языках. Но чего вы, возможно, не знаете – это еще и валидный объект в Python:

>>> ...
Ellipsis


⚙️ Применяется он преимущественно в операциях нарезки матриц в NumPy. Однако можно использовать его вместо обычного pass в качестве плэйсхолдера в функции, которую еще не реализовали:

python        
def my_awesome_func():
...


✔️ Вот валидный код Python, и выглядит он теперь не так уж плохо.
Использование модуля os.path и pathlib для удобной работы с путями

Когда вы работаете с файлами и директориями, важно уметь легко и безопасно манипулировать путями к файлам. Модули os.path и pathlib в Python предоставляют удобные методы для работы с путями, объединения их, получения имени файла и расширения, а также проверки существования файла или директории.

Использование os.path и pathlib помогает сделать код более безопасным и понятным, упрощая работу с путями и снижая вероятность ошибок, связанных с неправильным использованием путей к файлам.
📣 Оптимизация в Python | Эффективное использование модуля threading и asyncio

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

Рассмотрим, как правильно завершать потоки при остановке приложения, чтобы избежать утечек ресурсов.
Научимся использовать пул потоков для распределения задач, что откроет доступ к мощным методам asyncio API, таким как gather, позволяющим дождаться результатов выполнения всех потоков.
Увидим, как эффективно интегрировать блокирующие API ввода-вывода, например, из библиотеки requests, в пул потоков, чтобы повысить производительность и сделать наше приложение более отзывчивым

🖥 Читать подробнее
➡️ wikipedia

У Wikipedia есть классное API, которое позволяет получить доступ к непревзойдённому источнику полностью бесплатной информации.

✔️ Модуль wikipedia делает доступ к этому API чуть ли чрезмерно удобным.

🗣️ Как и настоящий сайт, модуль предоставляет поддержку многих языков, разрешение многозначности страниц, получение случайной страницы и даже метод donate().
This media is not supported in your browser
VIEW IN TELEGRAM
😲 Tile-Upscaler — нейросеть, которая спасет ваши размытые фото прямо в браузере.

Главная фишка модели — апскейл картинки без изменения деталей. Возможности поражают: можно улучшить фото аж в 20 раз!

📂 Сохраняем и используем бесплатно ТУТ

#nn #soft
Быстрое получение основных статистических характеристик с использованием statistics или pandas

Если вам нужно получить основные статистические показатели (среднее, медиану, стандартное отклонение и т.д.) для набора данных, Python предлагает удобные инструменты для этого. Вы можете использовать модуль statistics для работы с небольшими наборами данных или pandas для анализа больших данных в DataFrame.

Использование statistics и pandas помогает упростить анализ данных и быстро получить необходимую информацию о числовом наборе, будь то список чисел или целый столбец данных в таблице.
Использование функции functools.lru_cache для кэширования результатов функции

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

Использование lru_cache помогает существенно сократить время выполнения программ, особенно в тех случаях, когда функция выполняет ресурсоемкие операции, и ее результаты можно использовать повторно.
⚙️ sh

Python — отличный скриптовый язык. Но иногда стандартные библиотеки os и subprocess вызывают только головную боль.

✔️ Библиотека sh может стать приятной альтернативой. Она позволяет вызывать любую программу как обычную функцию, что полезно для автоматизации различных задач исключительно с помощью Python.

🗣️ Библиотека sh поддерживает только платформы Linux и macOS; для работы на Windows вам придётся поискать другой инструмент.

🔗 Ссылочка на доку
👨‍💻 Дорожная карта Full-Stack разработчика

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

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

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

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

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

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

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

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

#doc #cheatsheet
📣 Головоломка «Сапёр» на Python в 66 строк и ее решение вероятностным алгоритмом

Писать головоломку будем оп нескольким требованиям:
Программа представляет собой консольный вариант головоломки Сапёр. Игровое поле печатается в stdout, колонки и поля нумеруются, каждый шаг консоль очищается от предыдущих данных.
При запуске программа принимает в качестве аргументов размер поля (ширину и высоту) и количество мин. По умолчанию, без передачи аргументов, создается игровое поле размером 10x10 с 10 минами.
Управление происходит путем передачи команд в стандартный ввод (stdin) в формате row col.
Первым ходом нельзя проиграть, т.е. ячейка, выбранная в первом ходе, не должна содержать мину. Также соседние ячейки не должны содержать мины.
Победа засчитывается, когда на игровом поле все незаминированные ячейки раскрыты, поражение – когда игрок открывает ячейку с миной. Последним ходом выводится соответствующее сообщение о победе или поражении и полностью открытое игровое поле.
Необходимо реализовать алгоритм решения головоломки. На каждом шаге программа печатает текущее состояние игры с сопутствующей справочной информацией

🖥 Читать подробнее
Использование оператора else с циклом for или while

В Python циклы for и while могут содержать блок else, который выполняется, если цикл завершился без прерывания (без использования break). Это мощная, но часто забываемая возможность, которая позволяет элегантно обрабатывать случаи, когда цикл проходит полностью.

Использование else с циклами помогает избежать лишних проверок и делает код более логичным, особенно в ситуациях, когда важно знать, был ли цикл завершен естественным образом или был прерван.
Media is too big
VIEW IN TELEGRAM
▶️ Список и кортеж

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

Использование кортежей:
Используй [] для создания пустого списка ({} для словаря)
Если заранее известен размер, то не используй append (для 8000 добавлений выделяется 8600 ячеек памяти)
Используй листкомпс
Не пытайся заменять список кортежом, там где идет изменение размера

👀 Смотреть на YouTube
⚙️ __repr__

При определении класса или объекта полезно добавлять «официальный» способ представления объекта строкой. Например:

>>> file = open('file.txt', 'r')
>>> print(file)
<open file 'file.txt', mode 'r' at 0x10d30aaf0>


✔️ Это сильно упрощает отладку. Вот всё, что вам нужно сделать:

class SomeClass:
def __repr__(self):
return "<какое-то описание>"

some_instance = SomeClass()

# выводит <какое-то описание>
print(some_instance)


Метод __repr__() позволяет определять строковое представление, предназначенное для программиста и удобное при использовании во время отладки, а метод __str__() позволяет определять понятное пользователю строковое представление, которое можно отображать в интерфейсе программы.
Итерируемый счетчик

Еще один классный итератор из itertools — это count, который генерирует бесконечную последовательность чисел.

В аргументах можно задать значения start и step: первый отвечает за начальное значение, а второе за шаг, как и в range.

Обычно count редко используют с циклом for. Чаще можно встретить случаи с функциями типа zip или map.

#itertools
Использование enumerate() для работы с индексами в цикле

Когда вы работаете с итерацией по спискам или другим последовательностям и вам нужно получить не только элемент, но и его индекс, enumerate() — идеальный инструмент.

Использование enumerate() помогает избавиться от лишнего кода и ошибок, связанных с управлением индексами, делая итерацию по последовательностям удобнее и эффективнее.
⚙️ Перегрузка операторов

В Python есть поддержка перегрузки операторов — одной из тех штук, о которых говорят все настоящие computer-scientis’ы.

✔️ На самом деле идея проста. Когда-нибудь задумывались, почему Python позволяет использовать оператор + как для сложения чисел, так и для конкатенации строк? За этим как раз и стоит перегрузка операторов.

🗣️ Вы можете определять объекты, которые используют стандартные символы операторов любым образом. Это позволяет применять их в контексте объектов, с которыми вы работаете.
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Правильные инструменты разработки могут сэкономить вам драгоценное время, энергию и, возможно, ваши выходные.

Вот список под разные задачи:


1. Среды разработки
Помогут значительно облегчить вам жизнь.

2. Диаграммы
Демонстрируйте свои идеи наглядно с помощью инструментов для создания диаграмм.

3. Инструменты ИИ
ИИ может повысить вашу производительность.

4. Хостинг и развертывание
Изучите решения для хостинга для размещения ваших приложений.

5. Качество кода
Качественный код отличает вас. Используйте различные инструменты, чтобы гарантировать первоклассное качество кода.

6. Безопасность
Безопасность имеет решающее значение. Используйте, чтобы защитить свою работу.

7. Ведение заметок
Ваши заметки отражают ваши знания. Оптимизируйте ведение с помощью этих инструментов.

8. Дизайн
Поднимите визуальную игру на новый уровень с помощью инструментов дизайна.

📂 Сохраняем и используем

#soft #cheatsheet
✍️ TextBot — нейросеть которая поможет сгенерировать, дополнить, улучшить или отрерайтить текст на любую тему.

Кроме того умеет писать код, поможет с SEO, проверит орфографию и поднимет уникальность.

И всё это бесплатно 😎

📂 Сохраяем и пробуем ТУТ

#soft #nn