Pythoner
الذهاب إلى القناة على Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
إظهار المزيد6 777
المشتركون
-724 ساعات
-277 أيام
-4930 أيام
أرشيف المشاركات
6 774
🐍В Python вы можете объявить несколько присваиваний в одном выражении, разделяя их запятой. Это удобно, если вам нужно присвоить нескольким переменным одно и то же значение или присвоить несколько значений различным переменным.
⬆️В примере выше значение 1 будет присвоено переменной
a, значение 2 - переменной b, и значение 3 - переменной c.
➡️Объявление нескольких присваиваний в одном выражении упрощает код и улучшает его читаемость, особенно в случаях, когда значения должны быть инициализированы или обменены между переменными.6 774
🐍Функция
math.gcd() является частью модуля math в Python и используется для вычисления наибольшего общего делителя (НОД) двух чисел. Наибольший общий делитель двух чисел - это наибольшее число, которое делит оба числа без остатка.
⬆️В данном примере, math.gcd() вычисляет наибольший общий делитель для чисел 24 и 36, который равен 12.
➡️Функция math.gcd() также может принимать большее количество аргументов для вычисления их наибольшего общего делителя.6 774
🖥Celery - это асинхронный распределенный диспетчер задач для Python. Он позволяет выполнять асинхронные задачи в фоновом режиме, позволяя вашему приложению эффективно обрабатывать длительные задачи, такие как отправка email уведомлений, генерация отчетов, обработка изображений и другие операции, которые могут быть вынесены за пределы основного приложения.
Основные концепции Celery:
➡️. Задачи (Tasks): задачи представляют собой независимые операции, которые нужно выполнить асинхронно.
➡️ Рабочие узлы (Workers): рабочие узлы - это процессы или потоки Python, которые могут выполнять задачи. Они могут быть запущены на одном или нескольких серверах.
➡️ Брокер сообщений (Message Broker): брокер сообщений используется для передачи сообщений между приложением и рабочими узлами. Celery поддерживает различные брокеры, такие как RabbitMQ, Redis, Amazon SQS и другие.
➡️ Задания по расписанию (Periodic Tasks): Celery поддерживает запуск задач по расписанию, что позволяет автоматизировать выполнение повторяющихся задач.
6 774
🐍
PyAutoGUI - это библиотека Python, которая позволяет автоматизировать взаимодействие с графическим пользовательским интерфейсом (GUI) на экране. С помощью PyAutoGUI вы можете выполнять различные действия, такие как перемещение мыши, клики, ввод текста, нажатие клавиш, создание скриншотов и многое другое.
Вот некоторые основные возможности PyAutoGUI:
➡️ Управление мышью: Вы можете перемещать курсор мыши, кликать мышью в различных местах экрана, делать скриншоты и многое другое.
➡️ Управление клавиатурой: PyAutoGUI позволяет эмулировать ввод с клавиатуры, например, ввод текста и нажатие клавиш.
➡️ Определение положения объектов на экране: Библиотека позволяет определять координаты объектов на экране, что полезно при автоматизации задач.
➡️ Работа с окнами программ: PyAutoGUI предоставляет функционал для работы с окнами программ, такой как перемещение и изменение размеров окон.
➡️ Скриншоты: Вы можете делать скриншоты экрана и определять, что находится на экране в определенной области.
➡️ Определение цвета пикселя: Библиотека позволяет определять цвет пикселя на экране, что может быть полезно для определения элементов интерфейса.
👀Будьте осторожны при использовании PyAutoGUI, так как автоматизация взаимодействия с GUI может вызвать неожиданные результаты. Однако, эта библиотека может быть очень полезной в автоматизации рутинных задач или тестировании программного обеспечения.6 774
🐍Модуль
calendar в Python предоставляет функционал для работы с календарем и датами. С его помощью вы можете получить информацию о календаре для любого месяца и года, форматировать даты, определять дни недели и многое другое.
Вот некоторые основные функции и классы модуля calendar:
➡️calendar.dayname**: Список названий дней недели на английском языке.
➡️ **calendar.monthname: Список названий месяцев на английском языке.
➡️ calendar.monthcalendar(year, month): Возвращает список списков, представляющих календарь для указанного месяца в указанном году. Каждый список представляет неделю, а недели с пустыми значениями в начале и/или конце месяца содержат значения 0.
👀Модуль calendar очень полезен для работы с датами и календарем в Python, и он позволяет легко получать информацию о днях недели, месяцах, годах и других календарных данных.
➡️ calendar.weekday(year, month, day): Возвращает день недели для указанной даты (0 - понедельник, 6 - воскресенье).
➡️ calendar.isleap(year): Проверяет, является ли указанный год високосным.
➡️. calendar.TextCalendar: Класс, который предоставляет методы для вывода календаря текстом.6 774
🐍Vibora - это быстрый и мощный асинхронный веб-фреймворк для Python, который предназначен для разработки высокопроизводительных веб-приложений. Он основан на асинхронном сервере uvloop и является оптимизированным для работы с асинхронным вводом-выводом, что позволяет обрабатывать тысячи запросов в секунду.
Основные особенности Vibora:
➡️ Высокая производительность: благодаря использованию асинхронного ввода-вывода и оптимизированному серверу uvloop, Vibora обеспечивает высокую скорость обработки запросов.
➡️ Минимализм и простота: Vibora имеет минималистичный и простой в использовании синтаксис, что упрощает разработку веб-приложений.
➡️ Поддержка HTTP/1.1 и HTTP/2: Vibora поддерживает как HTTP/1.1, так и HTTP/2, что позволяет использовать передачу данных через множество потоков для улучшения производительности веб-приложений.
➡️ Встроенная поддержка маршрутизации: Vibora предоставляет мощные средства для определения и обработки URL-адресов и запросов.
➡️Поддержка плагинов: Vibora позволяет расширить функциональность фреймворка за счет использования плагинов.
⬆️В примере выше мы создаем простое веб-приложение с одним маршрутом, который возвращает "Hello, Vibora!" при запросе корневого URL. Затем мы запускаем приложение на порту 8000.
6 774
🐍С помощью DataCleaner вы можете легко выполнить ряд операций по очистке данных, что поможет вам улучшить качество данных и сделать их более подходящими для анализа и построения моделей машинного обучения.
➡️Таким образом, использование DataCleaner в Python поможет вам быстро и эффективно обработать данные, улучшить их качество и подготовить для дальнейшего анализа.
6 774
➡️В Python абстрактный класс реализуется с помощью модуля abc (Abstract Base Classes).
⬆️В данном примере класс Animal является абстрактным, так как содержит абстрактный метод speak. Классы Dog и Cat наследуются от класса Animal и реализуют метод speak. Класс Animal нельзя инстанциировать напрямую, он служит лишь базовым классом для других классов.
6 774
🐍Зачем создавать копию объекта в Python?
В мире программирования на Python, одна из важнейших концепций, которую необходимо понять, это создание копий объектов. Это особенно полезно, когда вы не хотите изменять первоначальный объект, но вам нужно внести изменения в его копию.
➡️ Поверхностное и глубокое копирование
Существуют два типа копирования в Python - поверхностное и глубокое. Поверхностное копирование создает новый объект, но заполняет его ссылками на оригинальные дочерние объекты. Глубокое копирование, с другой стороны, создает новый объект и рекурсивно добавляет копии дочерних объектов оригинала. Выбор между этими двумя зависит от ваших конкретных потребностей.
➡️ Избегание неожиданных побочных эффектов
Когда вы работаете с изменяемыми объектами, такими как списки или словари, изменение копии может повлиять на оригинал. Это может привести к неожиданным побочным эффектам в вашем коде. Создание копии объекта позволяет вам вносить изменения без воздействия на оригинальный объект.
➡️ Повышение производительности кода
Создание копий объектов может помочь улучшить производительность вашего кода. Когда вы работаете с большими объектами или структурами данных, изменение оригинала может быть ресурсоемким процессом. Создание копии и работа с ней, вместо оригинала, может сэкономить время и ресурсы.
6 774
🐍Функция islice()
islice() — это функция, которая является частью модуля itertools и используется для извлечения определенного количества элементов из итерируемого объекта.
Она позволяет получить подмножество элементов из последовательности без необходимости создавать новую последовательность.
Синтаксис функции islice() выглядит следующим образом:
islice(iterable, start, stop, step)
6 774
🐍В каком случае лучше использовать
while , чем for?
➡️Использование цикла while в Python целесообразно в случае, когда число итераций заранее неизвестно или зависит от условий во время выполнения программы. Например, когда нужно повторять определенные действия до тех пор, пока не будет выполнено определенное условие.
➡️С другой стороны, цикл for удобно использовать, когда известно количество итераций, например, когда нужно перебрать все элементы в списке или выполнить действия определенное количество раз.
➡️Таким образом, в исходном коде лучше использовать цикл while, когда требуется гибкость в управлении итерациями, а цикл for - для ситуаций, когда количество итераций известно заранее.6 774
🐍Snowballstemmer
Библиотека
Snowballstemmer предоставляет функциональность стемминга, то есть преобразования слов в их базовую форму.
Эта библиотека реализует алгоритм Портера, который является одним из наиболее известных алгоритмов стемминга. Snowballstemmer поддерживает алгоритмы стемминга для 15 языков, включая русский.
*Стемминг применяется в поисковых системах для расширения поискового запроса пользователя, является частью процесса нормализации текста.6 774
🎲 Рандомен ли random.randint в Python? Как он работает под капотом?
Одной из наиболее часто используемых функций для генерации случайных чисел является функция
random.randint(). Но насколько случайными являются числа, которые генерирует эта функция?
➡️ Рандомен ли random.randint?
С точки зрения программирования, идеальной случайности не существует. Даже функция random.randint() в Python генерирует так называемые псевдослучайные числа. Это значит, что хотя числа кажутся случайными, они на самом деле генерируются с использованием определенного алгоритма, который может повторяться при определенных условиях.
➡️ Как работает random.randint?
Функция random.randint() использует алгоритм Мерсенна Твистер, который является одним из наиболее широко используемых алгоритмов для генерации псевдослучайных чисел. Он основан на математических принципах и генерирует последовательности чисел, которые в действительности предсказуемы, если известно достаточно много предыдущих чисел в последовательности.
➡️ Влияет ли seed на random.randint?
Значение seed играет важную роль в генерации псевдослучайных чисел в Python. Если вы используете функцию random.seed() с определенным значением перед вызовом random.randint(), вы будете получать одну и ту же последовательность "случайных" чисел каждый раз, когда вы запускаете свой код. Это может быть полезно для отладки и воспроизводимости результатов.6 774
🟢 Сортировка слиянием в Python
Сортировка слиянием - это один из наиболее эффективных алгоритмов сортировки, который используется в программировании. Он основан на принципе "разделяй и властвуй", что позволяет ему достичь быстрого времени выполнения.
➡️ Принцип работы
Сортировка слиянием работает путем разделения неотсортированного массива на две половины, сортировки каждой из них отдельно, а затем слияния двух отсортированных массивов обратно в один. Это делается рекурсивно, что означает, что процесс разделения и слияния продолжается, пока весь массив не будет отсортирован.
➡️ Реализация в Python
В Python сортировка слиянием может быть реализована с помощью стандартной библиотеки. Функция
merge_sort принимает список в качестве аргумента и возвращает отсортированный список. Она делит список на две половины, рекурсивно вызывает себя для каждой половины, а затем объединяет два отсортированных списка в один.
def merge_sort(arr):
if len(arr) <= 1:
return arr
mid = len(arr) // 2
left_half = merge_sort(arr[:mid])
right_half = merge_sort(arr[mid:])
return merge(left_half, right_half)
def merge(left, right):
merged = []
left_index = 0
right_index = 0
while left_index < len(left) and right_index < len(right):
if left[left_index] <= right[right_index]:
merged.append(left[left_index])
left_index += 1
else:
merged.append(right[right_index])
right_index += 1
merged += left[left_index:]
merged += right[right_index:]
return merged
➡️ Преимущества и недостатки
Сортировка слиянием имеет несколько ключевых преимуществ. Во-первых, она эффективна, с временем выполнения O(n log n). Во-вторых, она стабильна, что означает, что она сохраняет исходный порядок равных элементов. Однако у нее есть и недостатки. Она требует дополнительное пространство для хранения промежуточных результатов, что может быть проблемой для больших данных.6 774
❓ Разбор
Создали объект класса. В поле b (a.b) лежит число 3. В поле c, объекта a, мы создаем значение 5.
// - операция целочисленного деления. 5 // 3 —> 1 (3 помещается в 5 целиком только 1 раз)
Ответ: 1
6 774
Repost from Книжный Python
10 тяжёлых истин о работе программиста, про которые никто не предупреждает❗️
В этой статье автор имея большой опыт работы в этой отрасли,покажет новичкам какова жестокая реальность.Расскажет как о хороших аспектах, так и поделится неприятными истинами.
📖Статья
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
