zen_of_python | Unsorted

Telegram-канал zen_of_python - Zen of Python

20144

Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL

Subscribe to a channel

Zen of Python

Как упростить работу с числами в Python

Небольшой совет, как сделать числа более читаемыми.

#видео

Читать полностью…

Zen of Python

Простыми словами: Бинарное дерево поиска

Бинарное дерево поиска (Binary Search Tree, или просто BST) — это структура данных, которая помогает легко и быстро находить, добавлять и удалять элементы. Давайте разберёмся, что это такое и как с ним работать, на простых примерах.

Представьте себе дерево. У каждого узла в этом дереве есть:
— значение (например, число);
— ссылка на левую «веточку» (левого ребенка);
— ссылка на правую «веточку» (правого ребенка).

Правило у этого дерева такое:
— все значения в левом поддереве меньше, чем значение в узле;
— все значения в правом поддереве больше, чем значение в узле.

Простейшие операции с BST

Вставка элемента

Если вы хотите добавить элемент в дерево, вы начинаете с самого верха. Сравниваете новое значение с корнем:
— если оно меньше, переходите влево;
— если больше, переходите вправо;
— повторяете, пока не найдете пустую коробочку (место), и вы поместите туда новое значение.

class Node:
def __init__(self, key):
self.key = key
self.left = None
self.right = None

def insert(root, key):
if root is None:
return Node(key)
if key < root.key:
root.left = insert(root.left, key)
else:
root.right = insert(root.right, key)
return root


Поиск элемента

Когда вы хотите найти элемент, вы снова начинаете с корня и сравниваете:
— если нашли — отлично, элемент найден!
— если меньше, идете налево.
— если больше, идете направо.
Повторяете, пока не найдете элемент или не убедитесь, что его нет в дереве.

def search(root, key):
if root is None or root.key == key:
return root
if key < root.key:
return search(root.left, key)
return search(root.right, key)


Удаление элемента

Удаление элемента немного сложнее, потому что есть три варианта:
— элемент — это лист (нет детей). Просто удаляем его;
— элемент имеет одного ребенка. Тогда просто заменяем его этим ребенком;
— элемент имеет двух детей. В этом случае мы находим минимальный элемент в правом поддереве и заменяем удаляемый элемент на него.

def deleteNode(root, key):
if root is None:
return root
if key < root.key:
root.left = deleteNode(root.left, key)
elif key > root.key:
root.right = deleteNode(root.right, key)
else:
if root.left is None:
return root.right
elif root.right is None:
return root.left
temp = minValueNode(root.right)
root.key = temp.key
root.right = deleteNode(root.right, temp.key)
return root

def minValueNode(node):
current = node
while current.left is not None:
current = current.left
return current


Обход дерева

Обход означает посещение всех узлов в дереве. Существует несколько способов делать это:

1. In-order (Левый-Корень-Правый): посещаем сначала левое поддерево, потом текущий узел, потом правое поддерево.
2. Pre-order (Корень-Левый-Правый): посещаем сначала текущий узел, потом левое поддерево, потом правое поддерево.
3. Post-order (Левый-Правый-Корень): посещаем сначала левое поддерево, потом правое поддерево, потом текущий узел.

Пример in-order обхода:
def inorder(root):
if root:
inorder(root.left)
print(root.key, end=' ')
inorder(root.right)


Давайте резюмируем. Бинарное дерево поиска — это отличный инструмент для быстрого и эффективного управления данными. С его помощью легко найти, добавить или удалить элемент, благодаря чёткой структуре и правилам. Теперь, когда вы знаете, что оно из себя представляет, сможете без труда использовать его в своих проектах

#простымисловами #bst

Читать полностью…

Zen of Python

«Я 10 лет писал на Python, и вот что я думаю»

Лёша Корепанов поделился своим мнением о разработке на Python, опираясь на свой 10-летний опыт. Получилось интересно и ёмко.

Согласны с ним?

#видео

Читать полностью…

Zen of Python

Шпаргалка для всех, кто только начинает изучать Python

Начался новый учебный год. И даже если вы уже окончили школу или универ, получать новые знания никогда не поздно.

Мы собрали для вас небольшую шпаргалку-roadmap, которая поможет вам сориентироваться в мире программирования и понять куда двигаться дальше.

#шпаргалка #roadmap

Читать полностью…

Zen of Python

С Днём знаний, друзья!

Мы все учились понемногу. Даже те, кто сегодня меняет сферу IT и целый мир.

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

Читать полностью…

Zen of Python

Топ пакетов для улучшения работы с Python

Сегодня для Python существует более 130 тысяч библиотек и каждый день появляются новые.

Поэтому найти действительно крутые становится всё сложнее. Мы попросили экспертов рассказать о наиболее востребованных инструментах и вот, что у нас получилось:

https://tproger.ru/articles/top-paketov-dlya-uluchweniya-raboty-s-python

#библиотека

Читать полностью…

Zen of Python

Кортежи в Python

Кортежи очень похожи на списки. Это тоже последовательность элементов, но при этом является неизменяемой.

В этой подборке собрали для вас некоторые полезные факты о них и методы для работы с ними.

#шпаргалка #кортежи

Читать полностью…

Zen of Python

«Я вчера провёл целый день на сайте для взрослых!»

Исключительно в целях саморазвития

@ithumor

Читать полностью…

Zen of Python

Преобразование речи в текст с помощью ИИ на Python

Нашёл для вас гайд, который можно реализовать за выходные. Идея в том, чтобы траскрибировать устную речь в текст, передавать его ChatGPT (или другой нейронке, если хотите) и получать ответ также устно на поставленные вопросы какому-либо персонажу, которого вы придумаете для ИИ.

Выглядит интересно, реализовывается не сложно. Подробности в статье:

https://nuancesprog.ru/p/21113/

#гайд #ии

Читать полностью…

Zen of Python

Кто-то обещал собрать промпты, но не собрал. Это сделал я — простые и рабочие промты в ChatGPT для разработчиков.

Читать полностью…

Zen of Python

История успеха: как таксист в тяжёлой депрессии стал Python-разработчиком

Как бы усердно вы не старались, наступает момент, когда мотивация падает. В этот период важно найти правильные способы эту мотивацию поднять. И истории успеха — один из них.

Да, разработчиком может стать каждый, если достаточно сильно захотеть и приложить нужное количество усилий. Своей историей поделился наш читатель и рассказал, как смог полностью изменить свою жизнь:

https://tproger.ru/articles/kak-taksist-v-depressii-stal-python-razrabotchikom-243041

#историяуспеха

Читать полностью…

Zen of Python

Какая из функций на картинке является чистой функцией?

#викторина

Читать полностью…

Zen of Python

AutoScraper и Flask: создание API для любого сайта менее чем за 5 минут

Создание API проще, чем вам кажется, если под рукой есть нужный инструмент. В этом руководстве вы убедитесь в этом.

Вы создадите собственный поисковый API электронной коммерции с поддержкой как eBay, так и Etsy без использования каких-либо внешних API. С помощью AutoScraper и Flask вам потребуется менее 20 строк кода для каждого сайта.

Подробнее:
https://nuancesprog.ru/p/9990/

#flask #api

Читать полностью…

Zen of Python

9 главных Python-библиотек на все случаи жизни

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

В этой подборке собрали для 9 библиотек, решающих самые разные задачи.

1. Requestspip install requests
2. Pillowpip install pillow
3. Asynciopip install asyncio
4. Tkinter
5. Pygamepip install pygame
6. NumPypip install numpy
7. TensorFlowpip install tensorflow
8. Matplotlibpip install matplotlib
9. BeautifulSouppip install beautifulsoup4

#подборка #библиотека

Читать полностью…

Zen of Python

Работаем с данными через GUI

Познакомившись с Bamboolib вы будете жалеть, что не узнали о ней раньше. Она позволяет работать с фреймами данных pandas через графический интерфейс, что сильно упрощает задачу.

Познакомиться с её возможностями подробнее и установить можно по ссылке:

https://pypi.org/project/bamboolib/#description

#библиотека #datascience #pandas

Читать полностью…

Zen of Python

встречайте — Bython!

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

Если вам по каким-то причинам это надо, то ищите проект здесь.

@your_tech

Читать полностью…

Zen of Python

Telegram Mini App. Как создать Web App с нуля

Mini Apps (или же Web Apps) — это относительно новый и удобный способ добавления веб приложения прямо в интерфейсе Telegram. Сегодня, когда в мессенджере появился свой магазин приложений, это стало особоенно актуально.

Особенность Mini Apps заключается в том, что они поддерживают авторизацию, платежи одной кнопкой и возможность работать с данными пользователя, открывшего мини-приложение.

В этом гайде вы научитесь создавать приложения, которые могут взаимодействовать с данными пользователя и разворачивать бота вместе с сайтом в облаке:

https://habr.com/ru/companies/amvera/articles/838180/

#бот #telegram #web

Читать полностью…

Zen of Python

​​Юный Михаил Шуфутинский тоже был с компьютером на ты. Сегодня, 3-го сентября, он ждет ваших фотографий в комментариях, чтобы состарить их через нейронки.

#кек

@neuro_channel

Читать полностью…

Zen of Python

Что такое Лямбда-выражения в Python и как они работают

Лямбда-выражения — это короткий способ создать безымянные функции прямо в месте их использования. Они полезны, когда вам нужна простая функция для одноразового использования, и вы не хотите определять её через стандартный синтаксис def.

Они имеют простой и компактный синтаксис:

lambda аргументы: выражение


Примеры использования:

1. Простая лямбда-функция

Рассмотрим пример лямбда-выражения, которое складывает два числа:
add = lambda x, y: x + y
print(add(2, 3)) # Результат: 5


2. Лямбда с функцией map:

Функция map применяет лямбда-выражение ко всем элементам в списке:
numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, numbers))
print(squares) # Результат: [1, 4, 9, 16]


3. Лямбда с функцией filter:

Функция filter использует лямбда-выражение для фильтрации элементов списка:
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # Результат: [2, 4, 6]


4. Лямбда с функцией sorted:

Лямбда-выражение можно использовать для сортировки сложных структур данных, таких как списки кортежей:
students = [("Alice", 25), ("Bob", 20), ("Charlie", 23)]
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students) # Результат: [('Bob', 20), ('Charlie', 23), ('Alice', 25)]


Лямбда-выражения часто используются как ключевые функции в методах сортировки, нахождения максимума/минимума и других высокоуровневых операций:
# Сортировка списка строк по их длине
words = ["apple", "banana", "cherry", "date"]
sorted_words = sorted(words, key=lambda word: len(word))
print(sorted_words) # Результат: ['date', 'apple', 'banana', 'cherry']


Стоит учитывать, что лямбда-выражения имеют некоторые ограничения:
— они могут содержать только одно выражение;
— их сложно отлаживать, так как они не имеют имени и часто используются на месте;
— использование на месте иногда может ухудшить читаемость кода.

Преимущества:
— компактность и простота;
— идеально подходят для одноразовых функций;
— хорошо интегрируются с функциями высшего порядка, такими как map, filter и sorted.

Недостатки:
— если используются неуместно, могут ухудшить читаемость кода;
— не подходят для сложных логик.

#простымисловами

Читать полностью…

Zen of Python

Если бы вы могли вернуться в прошлое и дать совет юному себе, что бы вы сказали?

Читать полностью…

Zen of Python

Большая шпаргалка по Python 3

В этом файле вы найдёте полезные заметки о примитивах, коллекциях, функциях и условиях. Сохраняйте в закладки, чтобы не потерять

#шпаргалка #основы

Читать полностью…

Zen of Python

uv — менеджер пакетов нового поколения

Новый менеджер пакетов создан, чтобы заменить привычный многим pip. Как ни странно, написан он на Rust, что позволяет ему работать значительно быстрее привычных менеджеров.

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

https://astral.sh/blog/uv-unified-python-packaging

#pip #uv #инструмент

Читать полностью…

Zen of Python

Что выведет код на изображении ниже?

#викторина

Читать полностью…

Zen of Python

Простыми словами: Основные концепции ООП

Понять объектно-ориентированное программирование на старте изучения может быть сложно. Поэтому мы постараемся объяснить вам основные концепции максимально простым языком.

Для начала разберёмся с тем, что же такое объекты, а затем пройдёмся по основным концепциям — наследованию, абстракции, инкапсуляции и полиморфизму:

Классы и объекты

Класс — это своего рода чертёж или шаблон, по которому создаются объекты. Это как кулинарный рецепт, который описывает, какие ингредиенты (свойства) и шаги (методы) нужно использовать.

Объект — это конкретный экземпляр класса. Если класс — это рецепт, то объект — это готовое блюдо по этому рецепту.

class Кот:
def __init__(self, имя):
self.имя = имя

def мяукать(self):
print(f"{self.имя} говорит: Мяу!")

мой_кот = Кот("Мурзик")
мой_кот.мяукать()


1. Наследование

Наследование позволяет создавать новый класс на основе существующего. Это как брать основу от одного рецепта и добавлять свои изменения.

class Животное:
def дышать(self):
print("Дышу")

class Кот(Животное):
def мяукать(self):
print("Мяу!")

кот = Кот()
кот.дышать()
кот.мяукать()


2. Абстракция

Абстракция — это концепция, позволяющая скрыть сложность системы, выделяя только ключевые аспекты и упрощая взаимодействие с объектами. Это как пользоваться телевизором: вы знаете, какие кнопки нажимать, но не обязаны понимать, как работает вся электроника внутри.

3. Инкапсуляция

Инкапсуляция — скрытие внутренней реализации объекта от внешнего мира и предоставление доступа только через определённые методы. Это как секретный ингредиент у шеф-повара, который скрыт от всех, кроме него.

class Кот:
def __init__(self, имя):
self.__имя = имя # сокрыто (private)

def получить_имя(self):
return self.__имя

def мяукать(self):
print(f"{self.__имя} говорит: Мяу!")

кот = Кот("Мурзик")
print(кот.получить_имя())
кот.мяукать()


4. Полиморфизм

Полиморфизм позволяет использовать один интерфейс для разных типов объектов. Это как использовать одного и того же шеф-повара, чтобы готовить по разным рецептам.

class Животное:
def издать_звук(self):
pass

class Кот(Животное):
def издать_звук(self):
print("Мяу!")

class Собака(Животное):
def издать_звук(self):
print("Гав!")

животные = [Кот(), Собака()]

for животное in животные:
животное.издать_звук()


Само собой тема ООП гораздо более обширна и содержит множество различных нюансов, которые не описать в одном посте. Но даже эти знания помогут вам в дальнейшем проще и быстрее разобраться во всех тонкостях.

Если вам понравился пост, поставьте ❤️ и мы обязательно расскажем о чём-то ещё.

#простымисловами #ооп

Читать полностью…

Zen of Python

Небольшой курс по созданию бота для Discord

В этой серии роликов вы узнаете, как:

— подготовить все необходимые файлы для работы бота;
— работать с командами для чат-бота;
— фильтровать и анализировать;
— работать с серверной частью;
— подключать и настраивать БД.

После подробного изучения у вас будут все необходимые знания для создания ботов любой сложности.

❤️ — наконец-то подробный гайд для Discord
🗿 — кто вообще пользуется Discord? Даёшь гайд для Telegram

#discord #бот #видео #курс

Читать полностью…

Zen of Python

Команда Tproger (это мы) ищет менеджера по продажам (это вы)

Нужно будет всё то, что обычно делают «продажники»: искать клиентов, вести коммерческие переговоры и восстанавливать коннект с нашими старыми клиентами. Мы предлагаем хорошую зарплату, гибрид и причастность к крутому медиа о программировании. 

Отклик оставляйте тут: https://tprg.ru/l1rP

#вакансии #работа

Читать полностью…

Zen of Python

4 совета как писать циклы for на Python

В этом небольшом видео вы изучите практические примеры циклов for и их альтернативные решения, которые будут работать намного быстрее, и при этом сделают ваш код чище.

Здесь будут примеры с enumerate, zip, list comprehension и генераторами Python.

Видео взято отсюда: https://youtu.be/HIWfeIHocUc

#видео #for #советы

Читать полностью…

Zen of Python

Как работает Python: раскрываем магию программирования на Python

Python сегодня один из самых востребованных языков, который помогает решать задачи в самых разных областях. Но задумывались ли вы, как он работает?

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

https://blog.gopenai.com/how-python-works-unveiling-the-magic-behind-python-programming-c95ab99f1ee3

Читать полностью…

Zen of Python

Что будет выведено при выполнении следующего кода на картинке?

Варианты ответа ниже.

#викторина #списки

Читать полностью…

Zen of Python

Полезная шпаргалка по Pandas

В этом файле вы найдёте несколько страниц полезных шпаргалок по базовым командам и конкретным задачам.

#шпаргалка #pandas

Читать полностью…
Subscribe to a channel