Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Немного затянулось, сорри.
Как вы знаете (или не знаете, тогда знайте) метод .pop удаляет элемент по индексу.
Т.е. если бы мы написали, my_list.pop(1), то элемент JavaScript бы удалился из списка.

Но а что, если мы не прокинули индекс? Тогда выбирается последний элемент. В нашем случае - c#

Но почему ответ - это не список без последнего элемента.

Все дело в том, что мы принтуем не список, а результат выполнения функции .pop. В свою очередь, функция .pop возвращает удаленный элемент (последний элемент) (( C# ))
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
💡 Использование модуля 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%.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
Методы .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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🌴 Введение в двоичное дерево поиска (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 также имеют некоторые недостатки. Например, если дерево не сбалансировано, время поиска может увеличиться.


То есть, по сути, это сортированное дерево, поиск в котором легко выполнить, из-за того, что оно упорядочено.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1
🌀 Создать 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()


В этом примере два цикла выполняются одновременно, каждый в своем собственном потоке.


Попробуйте скопировать и проверить у себя самостоятельно!👨‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Функция getsizeof() модуля sys возвращает размер объекта object в байтах. Объект может быть любым типом объекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
😮 6 простых советов по написанию чистого кода

➡️ 1. Пишите читабельный код

➡️ 2. Используйте понятные слова для обозначения переменных, функций и методов

➡️ 3. Пишите код так, чтобы любая функция или метод выполняли только одну задачу

➡️ 4. Используйте комментарии в качестве пояснений

➡️ 5. Будьте последовательны

➡️ 6. Регулярно проверяйте свой код

А какие принципы используете вы? Какие считаете занудством?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
🔥 Самые популярные языки программирования и разметки, используемые вместе с Python 🔥

👋 Сегодня обсудим, какие языки программирования и разметки чаще всего используют в связке с нашим любимым Python 🐍.

JavaScript 🌐

Используется для фронтенда в веб-разработке. Вместе с Python (Django, Flask) JavaScript позволяет создавать динамичные и интерактивные веб-приложения. Вспомните такие связки как Django + React или Flask + Vue.js.

HTML & CSS 🎨

Без этих языков никуда, когда речь идет о веб-разработке. HTML отвечает за структуру, а CSS за стиль ваших страниц. Python часто используется для генерации HTML-кода и работы с CSS-стилями.

SQL 🗄

Язык запросов к базам данных. Python имеет отличные библиотеки для работы с SQL, такие как SQLAlchemy и SQLite. Любое серьезное приложение не обходится без взаимодействия с базами данных.

Markdown 📄


Легкий язык разметки для написания документации. Блоги, README файлы на GitHub и многое другое часто пишется на Markdown. Отлично подходит для документирования кода на Python.

YAML/JSON 📑


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


💬 А какие связки используете вы? Пишите в комментариях! 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
Видели, что NVIDIA теперь занимает второе место в списке самых дорогих компаний мира, уступая лишь Microsoft?
👍5
🐍 Топ-5 сайтов, о которых должен знать Python-разработчик 🌐


1. Stack Overflow 💡

Stack Overflow — это один из крупнейших ресурсов для программистов, где вы можете задать любой вопрос, связанный с программированием, и получить ответ от профессионалов. Это настоящий кладезь знаний, где вы найдёте решение для большинства проблем, с которыми может столкнуться Python-разработчик.

🔗 Перейти на Stack Overflow


2. Real Python 📘

Real Python — это ресурс, созданный специально для тех, кто хочет глубже изучить Python. Здесь вы найдете качественные туториалы, статьи и видеоуроки от опытных разработчиков. Real Python охватывает широкий спектр тем: от основ до продвинутых техник программирования.

🔗 Перейти на Real Python


3. GitHub 🐙

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

🔗 Перейти на GitHub


4. PyPI (Python Package Index) 📦

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

🔗 Перейти на PyPI


5. Python Documentation 📚


Python Documentation — это официальный сайт с документацией по Python. Здесь вы найдете полное описание всех встроенных функций, модулей и библиотек Python. Документация регулярно обновляется и является авторитетным источником информации для всех уровней разработчиков.

🔗 Перейти на Python Documentation
3
Как вам идея провести конкурс на самый смешной IT'шный мем? 😁

Что бы вы хотели в качестве приза? 🥇
Как провести голосование? (реакции/опрос) 📊

Было бы прикольно ввести такую постоянную традицию, скажем, раз в месяц. Как вам идея? 🤔🤔🤔
👍91
🔍 CV2: Ваш ключ к компьютерному зрению с Python 🐍


Что такое CV2? 🤔

CV2 — это модуль OpenCV, открытая библиотека для обработки изображений и видео. Она поддерживает множество языков программирования, но наиболее активно используется в Python. CV2 предлагает широкий спектр функций для анализа и манипуляции изображениями и видеопотоками.

Основные функции CV2 🔧

1. Загрузка и сохранение изображений 🖼

import cv2

# Загрузка изображения
image = cv2.imread('path_to_image.jpg')

# Сохранение изображения
cv2.imwrite('output_image.jpg', image)


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

2. Отображение изображений 🖥

cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()


Отличный способ быстро визуализировать изображения в отдельном окне.

3. Изменение размеров изображения 📏

resized_image = cv2.resize(image, (width, height))


Полезно для подготовки данных к анализу или просто для уменьшения размера файла.
👍31🥰1