Python Hub - сборище Питонистов
الذهاب إلى القناة على Telegram
Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат
إظهار المزيد1 712
المشتركون
لا توجد بيانات24 ساعات
-97 أيام
-1330 أيام
أرشيف المشاركات
⛓⛓ Методы .isnumeric() и .isalpha() в Python ⛓⛓
➡️ Метод .isnumeric()
Метод .isnumeric() в Python используется для проверки, содержит ли строка только числа. Если все символы в строке являются числами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод очень полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только числа.
str1 = '12345'
print(str1.isnumeric()) # Вывод: True
str2 = '12345abc'
print(str2.isnumeric()) # Вывод: False
➡️ Метод .isalpha()
Метод .isalpha() в Python, с другой стороны, используется для проверки, содержит ли строка только буквы. Если все символы в строке являются буквами, этот метод возвращает значение True. В противном случае возвращается False. Этот метод также полезен при валидации ввода данных, когда вы хотите убедиться, что пользователь ввел только буквы.
str3 = 'abc'
print(str3.isalpha()) # Вывод: True
str4 = 'abc123'
print(str4.isalpha()) # Вывод: False💡 Использование модуля difflib в Python
Модуль difflib в Python - это мощный инструмент, который помогает разработчикам сравнивать последовательности. Он особенно полезен для сравнения текстовых данных и нахождения различий между ними.
➡️ Функция get_close_matches
Функция get_close_matches() используется для поиска наиболее похожих вариантов в последовательности. Это полезно, например, при реализации системы автодополнения, где нужно предложить пользователю наиболее вероятные варианты на основе его ввода.
Например:
import difflib
words = ['кот', 'собака', 'кит', 'слон']
difflib.get_close_matches('кот', words)
В этом примере функция возвращает: ['кот', 'кит'].
➡️ Функция ndiff
Функция ndiff() используется для сравнения двух последовательностей и выявления различий между ними. Она возвращает генератор, который производит строки, иллюстрирующие различия между последовательностями. Это полезно, например, при сравнении версий текстовых документов.
Например:
import difflib
str1 = "кот"
str2 = "кит"
diff = difflib.ndiff(str1, str2)
print('\\n'.join(diff))
В этом примере функция выводит:
к
- о
+ и
т
➡️ Функция SequenceMatcher
Функция SequenceMatcher() является более общей и мощной функцией, чем ndiff(). Она позволяет сравнивать любые две последовательности и определять степень их сходства.
Например:
import difflib
str1 = "кот"
str2 = "кит"
match = difflib.SequenceMatcher(None, str1, str2)
print(match.ratio())
В этом примере функция возвращает: 0.6666666666666666, что означает, что строки совпадают на 66.67%.Разбор 👨💻
Немного затянулось, сорри.
Как вы знаете (или не знаете, тогда знайте) метод .pop удаляет элемент по индексу.
Т.е. если бы мы написали, my_list.pop(1), то элемент JavaScript бы удалился из списка.
Но а что, если мы не прокинули индекс? Тогда выбирается последний элемент. В нашем случае - c#
Но почему ответ - это не список без последнего элемента.
Все дело в том, что мы принтуем не список, а результат выполнения функции .pop. В свою очередь, функция .pop возвращает удаленный элемент (последний элемент) (( C# ))
Разбор 👨💻
Немного затянулось, сорри.
Как вы знаете (или не знаете, тогда знайте) метод .pop удаляет элемент по индексу.
Т.е. если бы мы написали, my_list.pop(1), то элемент JavaScript бы удалился из списка.
Но а что, если мы не прокинули индекс? Тогда выбирается последний элемент. В нашем случае - c#
Но почему ответ -
🌴 Создание бинарного дерева в Python
Бинарное дерево - это иерархическая структура данных, в которой каждый узел имеет не более двух потомков: левый и правый. В этом блоге мы рассмотрим, как создать бинарное дерево в Python.
В бинарном дереве узел является основным элементом. Каждый узел имеет данные и ссылки на левого и правого потомков. В Python мы можем создать узел, определив класс Node с инициализатором, который устанавливает данные и оба потомка.
Пример кода:
class Node:
def __init__(self, data):
self.left = None
self.right = None
self.data = data
➡️ Создание бинарного дерева
После того как узел определен, мы можем создать бинарное дерево. Начальный узел известен как корень. Мы создаем бинарное дерево, добавляя новые узлы в качестве левого или правого потомка корня или любого другого узла.
Пример кода:
root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
➡️ Обход бинарного дерева
Обход - это процесс посещения каждого узла в дереве. Существуют различные методы обхода, включая прямой (Preorder), симметричный (Inorder) и обратный (Postorder) обход. В Python мы можем реализовать эти методы с помощью рекурсии или стеков.
Пример кода для прямого обхода:
def preorder_traversal(root):
if root:
print(root.data)
preorder_traversal(root.left)
preorder_traversal(root.right)✅️ Продолжим изучать AIOgram
😇 На этот раз попытался пояснить на пальцах, как работает FSM (машина состояний)
https://www.youtube.com/watch?v=tXbmRlAvGUo
🤔 Освещение модуля 'this' в Python
Модуль 'this' в Python - это встроенный модуль, который, когда импортируется, автоматически выводит 'The Zen of Python'. Это, по сути, набор правил и принципов, на которых строится разработка на Python. Они служат напоминанием о том, какой должна быть идеальная программа на Python, и хотя они не являются строгими правилами, они широко применяются и уважаются в сообществе Python.
Пример:
import this
После выполнения этого кода, вы увидите 'The Zen of Python' на вашем экране.Разбор 👨💻
Вызываем функцию rec, передавая туда значение 3.
Внутри функции идет проверка, где мы в return'e возвращаем результат n + новый вызов функции rec(n-1) —> rec(2)
Операция повторяется и мы возвращаем результат n + rec(n-1) —> n + rec(1)
Заходим заново в функцию и возвращаем n + rec(0) —> теперь после вызова сработает return 1, т.к. if проверяет что n==0.
После чего, идем замыкать рекурсию в обратную сторону.
n + rec(0) —> 1 + 1 —> 2
n + rec(1) —> 2 + 2 —> 4
n + rec(2) —> 3 + 4 —> 7
🤘Кто не спал, а хостинг на ночь и не на ночь глядя искал?
⏳ Чуть задержавшийся, но вышедший видос!
Гоу смотреть, оценивать, использовать)
https://youtu.be/kwFEeuzICjU
🔺 Исследование библиотеки retrying в Python
➡️ Установка
Библиотека
retrying не является встроенной библиотекой в Python, поэтому ее нужно установить отдельно. Команда pip install retrying должна быть выполнена в командной строке. После установки вы можете импортировать ее с помощью команды import retrying.
➡️ Использование
Библиотека retrying довольно проста в использовании. Основной функцией этой библиотеки является декоратор @retry, который мы можем применить к любой функции, которую мы хотим повторить. Это особенно полезно для задач, которые имеют шанс на отказ. Например, сетевые запросы могут потерпеть неудачу из-за временных сетевых проблем, и вместо того, чтобы сразу же терпеть неудачу, использование библиотеки retrying может позволить нашей программе попробовать снова. Простой пример будет выглядеть так:
from retrying import retry
@retry
def make_network_request():
# код для выполнения сетевого запроса
В этом примере, если функция make_network_request потерпит неудачу, она будет попробована снова благодаря декоратору @retry.
## Преимущества
Библиотека retrying предлагает ряд преимуществ. Она позволяет создавать более надежный и устойчивый код, особенно при работе с операциями, которые могут время от времени терпеть неудачу. Она также предоставляет различные варианты управления поведением повтора, такие как установка максимального числа попыток, указание времени ожидания между попытками или даже использование пользовательских условий для повтора. Это дает нам большую гибкость для обработки различных сценариев и требований.
https://pypi.org/project/retrying/❓❓❓ object в Python ❓❓❓
➡️ Синтаксис функции object
Функция object в Python не требует параметров при вызове. Она возвращает объект без функциональных особенностей, который не содержит полезных методов или атрибутов. Например, когда вы создаете объект x = object(), вызов dir(x) отобразит только базовые методы, которые являются стандартными для всех классов. Это связано с тем, что функция object является самым базовым типом.
x = object()
print(dir(x))
➡️ Случаи использования функции object
Функция object в Python обычно не используется для создания объектов, поскольку получаемый объект не имеет полезных методов. Однако она применяется в нескольких конкретных сценариях. Например, когда вам нужно создать нейтральный объект для сравнения, функция object оказывается полезной. Кроме того, она полезна, когда вы хотите реализовать истинное инкапсуляцию в Python.
➡️ Функция object и наследование
В контексте наследования функция object имеет большое значение. В Python каждый класс происходит от класса object, что делает его базовым классом для всех других классов. Даже когда класс явно не наследуется от какого-либо класса, он неявно наследуется от класса object. Таким образом, функция object играет критическую роль в механизме наследования Python, предоставляя стандартные методы и атрибуты для всех классов.
class MyClass:
pass
print(issubclass(MyClass, object)) # Вернет True, поскольку каждый класс является подклассом object📅 Продолжил пилить серию видосов по телеграм боту для расписания универа.
6️⃣ часть (думаю, что последняя) посвящена не скажу чему)) Посмотрите сами в видео!)
Лайк, коммент, критика приветствуется.
👌Можете предлагать идеи для некст проектов.
👌 И было бы интересно выкинуть этого бота в прод и собрать аналитику, актуальный ли проект?
https://youtu.be/A1mMBsM61ec
📸 Как делать скриншоты через Python?
➡️ Использование библиотеки PyAutoGUI
PyAutoGUI - это модуль Python для программного управления мышью и клавиатурой. Он также позволяет делать скриншоты. Для создания скриншота вам просто нужно вызвать функцию screenshot(). Это простой и быстрый способ сделать скриншот, но у него есть ограничения. Например, он не может делать скриншоты отдельных окон.
Пример кода на PyAutoGUI:
import pyautogui
# Создание скриншота
screenshot = pyautogui.screenshot()
# Сохранение скриншота в файл
screenshot.save("screenshot.png")
➡️ Использование библиотеки Pillow
Pillow - это форк оригинальной библиотеки PIL (Python Imaging Library). Он предоставляет широкий функционал для работы с изображениями, включая создание скриншотов. Для этого используется метод ImageGrab.grab(). Он позволяет делать скриншоты всего экрана или его отдельных областей, но, как и PyAutoGUI, не может делать скриншоты отдельных окон.
Пример кода на Pillow:
from PIL import ImageGrab
# Создание скриншота
screenshot = ImageGrab.grab()
# Сохранение скриншота в файл
screenshot.save("screenshot.png")
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
