Python Learning
33.5K subscribers
1.95K photos
8 videos
7 files
953 links
№ 4974297878

Обучающий канал по Python

Ссылка для друга - https://t.me/+I7jrAQKR5xAyYTAy

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Python_per_month
Download Telegram
Nested Sets (вложенные множества)

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

Каждая категория представлена объектом, содержащим поля "ID", "Название", "Левая граница" и "Правая граница". "Левая граница" и "Правая граница" определяют диапазон значений, которые охватывают поддерево данной категории.

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

*При изменении структуры дерева требуется обновление левых и правых границ всех связанных категорий.
👍91🔥1🎉1
Dash

Dash - это популярная библиотека для создания веб-приложений на Python.
Она позволяет разработчикам создавать интерактивные, аналитические приложения без необходимости использовать JavaScript.

Dash основан на Flask, Plotly и React, и предоставляет простой способ создания веб-приложений с использованием компонентов, таких как графики, таблицы и формы.

В этом примере мы создаем простое веб-приложение с использованием Dash. Приложение содержит поле ввода, кнопку отправки и контейнер для вывода результата. Мы определяем функцию update_output, которая вызывается при нажатии на кнопку "Submit". Функция возвращает текст, введенный пользователем, и выводит его в контейнере.
👍12🗿3
Что выведет этот код?
Anonymous Quiz
9%
1 2 3
59%
1 4 9
20%
Ничего
11%
Узнать ответ
👍15🤔5🔥41👨‍💻1
Отправка электронных писем

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

В приведенной выше реализации скрипт использует данные отправителя и получателя, а также тему и текст сообщения. Затем скрипт подключается к SMTP-серверу Gmail, форматирует сообщение и отправляет его с помощью метода sendmail() . Наконец, скрипт выводит сообщение, указывающее, что электронное письмо было успешно отправлено, и отключается от SMTP-сервера.

Подробнее про smtplib можно почитать здесь.
👍14😢1
Протоколы в Python

В Python 3.8. появилась новая примечательная возможность — протоколы (protocols). Протоколы — это альтернатива абстрактным базовым классам (abstract base classes, ABC). Они позволяют пользоваться структурной подтипизацией (structural subtyping), то есть — осуществлять проверку совместимости классов исключительно на основе анализа их атрибутов и методов.

Смотреть статью
👍112
Метаклассы

Метаклассы в Python - это классы, которые определяют создание, поведение и модификацию классов.
В языке Python метаклассы используются для манипуляции с классами как объектами.

В Python метаклассы определяются путем создания класса, который наследуется от type. type является метаклассом по умолчанию для всех классов в Python. При создании нового класса, интерпретатор Python проверяет наличие метакласса и, если он найден, использует его для создания класса.

В этом примере мы определяем метакласс MyMeta, который наследуется от type. Метод __new__ метакласса при создании класса и позволяет изменять атрибуты класса перед его созданием. В данном примере мы добавляем новый метод greeting в атрибуты класса.

Затем мы определяем класс MyClass, который использует метакласс MyMeta с помощью аргумента metaclass при его создании. Когда мы создаем экземпляр класса MyClass и вызываем метод greeting, будет выведено сообщение "Hello, World!".
👍132
👍2
Что выведет этот код?
Anonymous Quiz
42%
0 Martin
12%
id user
39%
Ошибку
7%
Узнать ответ
👍20🤔3🔥2
Данные о памяти

Благодаря пакету shutil можно получить информацию о памяти на жёстком диске. Метод disk_usage возвращает количество всей, занятой и свободной памяти в байтах. В примере кода для упрощения число поделено на 10 в 9-ой степени, чтобы вывести кол-во памяти в гигабайтах, а также лишняя дробная часть после второго знака отсекается с помощью format.
👍71🎉1
Разделители для целых чисел

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

Вместо запятой можно использовать нижнее подчеркивание. Например, 1_000_000 интерпретируется как целое число 1000000.
👍263
Асинхронные микросервисы на Python

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

Смотреть статью
👍101
Создание графиков

Речь пойдет о библиотеке Leather, которая используется для создания графиков. В отличие от ряда подобных библиотек, Leather способна взаимодействовать с широким разнообразием данных и выводить их через векторную графику.

В примере используются следующие функции:
leather.Chart() — создает график с заданным заголовком.
chart.add_dots() — добавляет точки на график. Также в ней можно указать функцию для определения цвета точек.
chart.to_svg() — позволяет сохранить график в формате .svg в указанный файл.

На втором изображении представлен результат работы программы.
👍121🎉1
Шпаргалка по Matplotlib

Matplotlib - библиотека на языке программирования Python для визуализации данных двумерной и трёхмерной графикой.
👍139
Matplotlib_cheat_sheet.png
402.2 KB
Версия в хорошем качестве
👍152
👍4
Что выведте этот код?
Anonymous Quiz
13%
3
65%
3.0
19%
Ошибку
3%
Узнать ответ
👍14🤔6🔥1
#Вопросы_с_собеседования

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

Примеры:

```duplicate_nums([1, 2, 3, 4, 3, 5, 6])
➞ [3]

duplicate_nums([81, 72, 43, 72, 81, 99, 99, 100, 12, 54])
➞ [72, 81, 99]

duplicate_nums([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
➞ None

```Примечания:
- никакое число не будет встречаться в nums трижды и более раз,
- если никакое число в nums не встречалось дважды, функция должна вернуть None.
👍16🎉2
Шпаргалка по ООП на Python
9👍2