Python Hub - сборище Питонистов
الذهاب إلى القناة على Telegram
Уголок счастья для любого питониста. Сотрудничество или заказы: @leshunist https://shcoder.dev - студия разработки ShcoderDevelopment https://t.me/pythonhub_chat - чат
إظهار المزيد1 751
المشتركون
-124 ساعات
-57 أيام
+330 أيام
أرشيف المشاركات
▶️ Нужен проект сборщика стажировок со многих сайтов? Может по каким-то фильтрам даже?
Какие вообще сайты кроме хабра и hh знаете, где можно искать стажировки?
https://www.youtube.com/watch?v=Q3PMuGaOQzY
🌀 Создать 2 одновременно работающих цикла в Python
➡️ Многопоточность в Python
Многопоточность - это метод, который позволяет коду выполняться параллельно. Это означает, что два или более куска кода могут работать одновременно, что делает обработку данных более эффективной. В Python для создания многопоточных программ можно использовать модуль threading. При использовании этого модуля, каждый цикл будет работать в своем собственном потоке, что позволяет им работать одновременно.
➡️ Как создать 2 одновременных цикла
Для создания двух одновременно работающих циклов вам потребуется создать два потока. Каждый поток будет выполнять свой собственный цикл. Вот пример того, как это может выглядеть:
import threading
import time
def loop1():
for i in range(10):
print('Loop 1:', i)
time.sleep(1)
def loop2():
for i in range(10):
print('Loop 2:', i)
time.sleep(1)
thread1 = threading.Thread(target=loop1)
thread2 = threading.Thread(target=loop2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()import threading
import time
def loop1():
for i in range(10):
print('Loop 1:', i)
time.sleep(1)
def loop2():
for i in range(10):
print('Loop 2:', i)
time.sleep(1)
thread1 = threading.Thread(target=loop1)
thread2 = threading.Thread(target=loop2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
В этом примере два цикла выполняются одновременно, каждый в своем собственном потоке.
Попробуйте скопировать и проверить у себя самостоятельно!👨💻🌴 Введение в двоичное дерево поиска (BST) с примерами на Python
BST - это древовидная структура данных, в которой каждый узел имеет максимум два потомка. Основное свойство BST заключается в том, что каждый узел на большее значение, чем все узлы в его левом поддереве и на меньшее значение, чем все узлы в его правом поддереве. Этот уникальный атрибут делает BST идеальным для быстрого поиска данных.
➡️ Пример BST на Python
class Node:
def __init__(self, key):
self.left = None
self.right = None
self.val = key
def insert(root, key):
if root is None:
return Node(key)
else:
if root.val < key:
root.right = insert(root.right, key)
else:
root.left = insert(root.left, key)
return root
def inorder(root):
if root:
inorder(root.left)
print(root.val),
inorder(root.right)
r = Node(50)
r = insert(r, 30)
r = insert(r, 20)
r = insert(r, 40)
r = insert(r, 70)
r = insert(r, 60)
r = insert(r, 80)
inorder(r)
В этом примере мы создаем BST с помощью Python. Мы определяем класс Node, который представляет узел в BST. Затем мы определяем функции для вставки нового узла и для обхода BST.
➡️ Преимущества и недостатки BST
BST имеют множество преимуществ, благодаря которым они широко используются. Они позволяют быстро осуществлять поиск, вставку и удаление данных. Однако BST также имеют некоторые недостатки. Например, если дерево не сбалансировано, время поиска может увеличиться.⛓⛓ Методы .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
