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

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

@Python_community_developers_bot
加入频道
Использование функции 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
#реклама

Кажется, ты тоже это чувствуешь:

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

Мне это знакомо. Поэтому я веду канал, где:

Читаю всё подряд, чтобы ты читал только лучшее (иногда с мемами).
Пишу про факапы, страхи и синдром «я не тяну» — потому что сам с этим живу.
Рассказываю об идеях, проектах, карьерных поворотах — вдруг станет не так страшно что-то начать.
Иногда просто делюсь мыслями — чтобы стало чуть легче и понятнее, куда вообще всё катится.

Если тебе это знакомо — залетай. Канал живой, честный, по делу (и немного про то, как не сойти с ума)
👉 @ai_tism
Media is too big
VIEW IN TELEGRAM
Полезные модули Python

В этом ролике автор познакомит вас с полезными модулями Python. Вы научитесь работать со временем (модуль time), научитесь сохранять сложные объекты в файл и потом их оттуда считывать (модуль pickle), научитесь копировать объекты (модуль copy), научитесь работать со случайными числами (модуль random), научитесь определять системное ли слово (модуль keyword), а также узнаете как работать с системными командами (модуль sys).

Смотреть это видео на youtube: youtu.be/DEti1-BQpPU
Итерируемый счетчик

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

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

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

#itertools
Использование однострочных условий (тернарных операторов)

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

Тернарный оператор помогает упростить код, уменьшая количество строк и делая его более читаемым, особенно в ситуациях, где нужно быстро принять решение на основе простого условия.
Использование множества (set) для удаления дубликатов из списка

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

Этот способ особенно удобен, когда важно быстро избавиться от дубликатов, а порядок элементов не имеет значения. Он помогает сделать код компактным и эффективным.
howdoi

Зависли над какой-то проблемой и не можете вспомнить её решение? Нужно зайти на StackOverflow, но не хочется покидать терминал?

Тогда вам не обойтись без этого инструмента командной строки:

$ pip install howdoi

Задайте любой вопрос, и он постарается найти ответ на него
🔥 Полезные библиотеки Python

email2phonenumber
— инструмент OSINT, который позволяет вам получить номер телефона цели, просто имея его адрес электронной почты.

Установка:
$ pip3 install beautifulsoup4 requests


Использование:
$ python3 email2phonenumber.py scrape -e [email protected]


⚙️ GitHub/Инструкция

🎞 Demo видео

#python #github #soft #osint
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻 Полезные нейросети для фриланса

🔊 Создание логотипа
🔊 Перевод текста в аудио
🔊 Улучшение качества видео
🔊 Оживление изображений
🔊 Написание и проверка текста и д.р.

📂 Сохраняем

#cheatsheet #nn #soft