Python - Советы, библиотеки, гайды
19.6K subscribers
1.17K photos
25 videos
6 files
590 links
Всё для Python программиста :3
Готовый код, советы, лайфхаки, годные библиотеки, уроки и многое другое!

Автор - Абрахам (@priler)

РКН: https://kurl.ru/uXZzR
Download Telegram
Дескрипторы — мощный инструмент, позволяющий контролировать доступ к атрибутам объектов классов.

Дескрипторы представляют собой специальные объекты, определяющие дандер-методы, такие как __get__, __set__ и __delete__, которые управляют чтением, записью и удалением значений атрибутов. Дескрипторы часто используются для создания вычисляемых атрибутов, валидации входных данных и других аспектов, связанных с атрибутами класса.

В примере выше создается класс CelsiusToFahrenheit, который является дескриптором. Этот дескриптор определяет методы __get__ и __set__, которые контролируют доступ к атрибуту fahrenheit. Метод __get__ вызывается при попытке чтения атрибута, а метод set - при попытке записи значения атрибута.

Затем создается класс Temperature, у которого есть атрибут _celsius для хранения температуры в градусах Цельсия. В этом классе создается атрибут класса fahrenheit, который использует дескриптор CelsiusToFahrenheit.

При чтении значения атрибута fahrenheit, вызывается метод __get__ дескриптора, который выполняет преобразование температуры из градусов Цельсия в градусы Фаренгейта. При записи значения в атрибут fahrenheit, вызывается метод __set__, который выполняет обратное преобразование и сохраняет значение в атрибут _celsius.
👍273🤔2
Кажется, началось...
😱100🌚13🤯7👍3😁32🤡1
🐥 Задача по Python #40

Описание

Напишите функцию rgb_to_hex(r: int, g: int, b: int) -> str, которая принимает значения красного (r), зеленого (g) и синего (b) компонентов цвета (каждое в диапазоне от 0 до 255) и возвращает строку, представляющую цвет в HEX формате.

Примеры
rgb_to_hex(255, 192, 0) # ffc000
rgb_to_hex(0, 128, 255) # 0080ff

Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
👍262❤‍🔥2🔥1🤡1
Появилась статья, которая объясняет что происходит когда запускаешь print("hello world") на Python :3
👍53🤯7🌚6🔥3🤡3😁21
__future__ — модуль, который позволяет программистам использовать функции и синтаксис, которые будут введены в будущих версиях языка. Это позволяет постепенно адаптировать свой код к новым изменениям и синтаксическим конструкциям, даже если текущая версия Python их ещё не поддерживает.

В примере выше мы импортировали async_annotations из модуля future, чтобы использовать аннотации типов для асинхронных функций. В более ранних версиях Python (до 3.5), асинхронные операции с использованием синтаксиса async/await не были поддержаны. Модуль future с атрибутом async_annotations позволяет добавить синтаксическую поддержку асинхронных операций с аннотациями типов для более ранних версий Python. Это может быть полезным, если вы хотите поддерживать код, который будет работать и в более старых версиях Python до перехода на более новые версии.

Подробнее тут :3
👍221
Как же жизненно 🌚
🌚141😁18👍10💯42🤯2🤡2
Суровая реальность 😔
Please open Telegram to view this post
VIEW IN TELEGRAM
💯75😢25👍8🌚6❤‍🔥1
textwrap — стандартный модуль, предоставляющий инструменты для форматирования и обертывания текста в удобочитаемый вид.

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

В примере выше мы использовали функцию shorten модуля textwrap чтобы сократить текст до желаемой длины

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

Подробнее тут :3
👍254❤‍🔥1🌚1
Ребят, мне нужен сетевой специалист с опытом работы в Python... Срочно...
👍106😁40🌚84🏆4😱1
🍳 Задача по Python #41

Описание

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

Примеры
reverse_indices([1, 2, 3, 4, 5, 6], 2) # [3, 2, 1, 4, 5, 6]

Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
🔥121👍1
🧠 Заметили ошибку в коде? Знаете, как исправить?

Даже если нет, мы поможем разобраться! Погрузитесь в мир программирования с Яндекс Лицеем! Прокачайтесь в Python, Go, Django и многом другом 🚀
🤡73👍3512❤‍🔥7🔥52🌚2💯1
Кажется, найден минус Python 😳
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76😢14🔥3😁3🤡32
В мире Python есть нечто волшебное и загадочное, что позволяет вам создавать магию в собственных классах.. Они называются "магическими методами" 😱

Эти специальные методы начинаются и заканчиваются двумя подчеркиваниями, и они предоставляют нам управление над различными аспектами объектов и операций.

Представим что у нас есть класс Vector, который представляет собой вектор(🤯) в двумерном пространстве. Для добавления двух векторов вам, возможно, захочется использовать оператор + но как объяснить Python, как складывать объекты этого класса? 😦

Здесь-то нам и пригодятся магические методы. При использовании оператора +, Python автоматически ищет метод add() в объектах, чтобы выполнить соответствующее действие. Для нашего класса Vector, мы можем определить метод add() для определения сложения векторов(см. пример выше)

P.S. init это метод, который автоматически вызывается при создании нового экземпляра класса. Он используется для инициализации начальных значений атрибутов объекта и принимает как минимум один аргумент(в данном случае self), который ссылается на сам объект.
👍53😐61🤡1
У Яндекс-Лицея появилась такая реклама. Напишите какая ошибка будет при запуске такой функции 🌚
👍42😐19🤡112❤‍🔥21
В современном программировании одна из самых ценных валют - это время 🤑💷

Модуль multiprocessing предоставляет инструменты для параллельного выполнения кода, позволяя использовать многопроцессорные системы и ускоряя выполнение задач.

Допустим, у нас есть задача по обработке большого количества файлов, и мы хотим выполнить обработку каждого файла параллельно для ускорения процесса. Для этого у модуля multiprocessing есть класс Pool, который управляет пулом рабочих процессов. Мы можем разделить задачу на подзадачи и выполнять их параллельно с использованием пула.

В примере выше мы используем пул процессов для одновременной(почти. GIL, всё такое) обработки файлов(по комментариям, думаю, всё понятно)

Подробнее тут :3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2832❤‍🔥2
Пожал руку(?) легенде 😎
😁148🌚14🍓7👍65🤔4🎉1
🐥 Задача по Python #42

Описание

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

Примеры
count_unique_elements([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])  # 4
count_unique_elements(['apple', 'banana', 'apple', 'cherry']) # 3
count_unique_elements([]) # 0

Свой вариант решения в комментарии 💭
Кодом делиться через
pastebin.org или repl.it.

#задачи
🔥14👍3🤡3
А чё всмысле 🌚
🌚150😁25🤡14👍7🤔51🎉1
GeoPandas — библиотека для работы с геоданными.

GeoPandas предоставляет инструменты для обработки геометрических данных, анализа пространственных отношений и визуализации геоданных. GeoPandas строится на базе библиотек Pandas, Shapely и Matplotlib, что делает её удобным инструментом для работы с геоданными.

В примере выше мы загружаем данные о границах стран из GeoPandas. Затем мы выбираем границу Канады и применяем операторы assert для проверки геометрии:
• canada.geometry.is_empty.any() - проверяет, есть ли пустые геометрии. Если граница Канады имеет пустые геометрии, будет вызвано исключение AssertionError.
• canada.geometry.is_valid.all() - проверяет, что все геометрии действительны. Если какая-либо геометрия недействительна, будет вызвано исключение AssertionError.

Ставится командой ⚙️ pip3 install geopandas
Документация и примеры кода здесь :3
👍28❤‍🔥44🌚1