20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Простыми словами: Структуры данных в Python
Мы немного забежали вперёд и уже разобрали две популярных структуры данных — BST и B-Tree. Но давайте немного откатимся назад и кратко разберём какие вообще структуры данных используются в Python помимо деревьев и чем они отличаются.
1. Списки (Lists)
Списки — это упорядоченные изменяемые коллекции, которые могут содержать элементы любого типа. Они поддерживают произвольный доступ по индексу и предоставляют множество встроенных методов для манипуляции элементами.
my_list = [1, 2, 3, "hello", 4.5]
my_tuple = (1, 2, 3, "hello", 4.5)
my_dict = {"name": "Alice", "age": 25, "city": "New York"}my_set = {1, 2, 3, 4, 5}collections.deque для эффективного выполнения операций на концах очереди.from collections import deque
my_queue = deque([1, 2, 3, 4, 5])
my_queue.append(6)
my_queue.popleft()
append() и pop().my_stack = [1, 2, 3, 4, 5]
my_stack.append(6)
my_stack.pop()
class Node:
def __init__(self, data):
self.data = data
self.next = None
self.prev = None
class DoublyLinkedList:
def __init__(self):
self.head = None
class TreeNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
# Пример простого графа с использованием словаря
graph = {
'A': ['B', 'C'],
'B': ['A', 'D', 'E'],
'C': ['A', 'F'],
'D': ['B'],
'E': ['B', 'F'],
'F': ['C', 'E']
}
Old but gold: Два простых способа преобразовать файл Python в EXE-файл
Если вы написали программу и хотите, чтобы ею могли пользоваться не только разработчики, но и простые пользователи, то стоит оформить её в удобном формате — сделать интерфейс и преобразовать файлы .exe, чтобы программу было удобно установить. Вот именно о последнем и пойдёт речь в этой статье.
Здесь вы узнаете, в каких случаях пригодится такое преобразование и как его можно сделать различными способами:
https://www.datacamp.com/tutorial/two-simple-methods-to-convert-a-python-file-to-an-exe-file
«Если сотрудник начал проситься в отпуск, то проще уже усыпить и завести нового»
Взято из флудильни
Мини-гайд по отправке сообщений из Google Таблицы или базы данных с Python
Полезное руководство для тех, кто хочет разобраться в том, как настроить автоматическую отправку уведомлений, например, о готовности заказа. В статье разбирается вариант с таблицами Google, но вы также найдёте там информацию для привязки кода к CMS.
Вышла Visual Studio Code 1.93
И это отличная новость, ведь теперь там есть поддержка профилей, если вам нужны разные конфигурации под различные задачи, а также улучшена поддержка Python. Наконец-то питонисты смогут по полной использовать этот редактор кода.
Подробнее о нововведениях в нашей статье.
#новости #vscode
Гайд по обработке данных с помощью Pandas
Отличное руководство для новичков и тех, кто постоянно работает с Pandas. В статье досконально описаны стандартные методы фильтрации, объединения, приведения типов и другие операции, но даже для гуру найдётся пара новых приёмов. Вау-эффект гарантирован.
#гайд #pandas
Берите на заметку — лучший алгоритм для устранения багов
#кек
Как оптимизации в CPython повлияли на скорость работы Python
Автор твита на картинке заметил странное поведение Python. Когда он вызывал встроенную функцию min, производительность кода была ниже, чем если реализованный метод в самом коде.
Да, его код был написан ещё на Python 2. Сейчас ситуация стала гораздо лучше. Но почему? Автор этой статьи провёл несколько бенчмарков и поделился выводами:
https://habr.com/ru/companies/beget/articles/839348/
Головоломка «Сапёр» на Python в 66 строк и её решение вероятностным алгоритмом
Автор статьи поставил себе задачу написать менее чем за 100 строк полноценную игру «сапёр». У него получилось уложиться в 66 строк, сделав игру, которая работает в консоли.
Посмотреть на реализацию можно в статье: https://habr.com/ru/articles/833494/
#gamedev
Смогли бы написать ещё короче?
Как упростить работу с числами в 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
def inorder(root):
if root:
inorder(root.left)
print(root.key, end=' ')
inorder(root.right)
«Я 10 лет писал на Python, и вот что я думаю»
Лёша Корепанов поделился своим мнением о разработке на Python, опираясь на свой 10-летний опыт. Получилось интересно и ёмко.
Согласны с ним?
#видео
Шпаргалка для всех, кто только начинает изучать Python
Начался новый учебный год. И даже если вы уже окончили школу или универ, получать новые знания никогда не поздно.
Мы собрали для вас небольшую шпаргалку-roadmap, которая поможет вам сориентироваться в мире программирования и понять куда двигаться дальше.
#шпаргалка #roadmap
С Днём знаний, друзья!
Мы все учились понемногу. Даже те, кто сегодня меняет сферу IT и целый мир.
В честь праздника подготовили для вас небольшой школьный альбом, в котором показали, что могли бы пожелать себе столпы IT-индустрии будучи выпускниками.
Топ пакетов для улучшения работы с Python
Сегодня для Python существует более 130 тысяч библиотек и каждый день появляются новые.
Поэтому найти действительно крутые становится всё сложнее. Мы попросили экспертов рассказать о наиболее востребованных инструментах и вот, что у нас получилось:
https://tproger.ru/articles/top-paketov-dlya-uluchweniya-raboty-s-python
#библиотека
Разбор паттерна Singleton в Python
Singleton (Одиночка) — это шаблон предоставления глобального доступа к состоянию, который гарантирует, что объект всегда будет один и тот же. Это один из первых паттернов, которые изучают разработчики.
В этом видео вы сможете разобраться в том, как именно он работает и для чего нужен. А также узнаете о Monostate.
#паттерны #singleton #видео
Большой каталог шпаргалок на все случаи жизни
Ловите репозиторий, где собраны более 30 шпаргалок на разные темы. Здесь найдут подсказки сетевики, фронтендеры, бэкендеры, линуксоиды и пользователи windows.
Если вам чего-то не хватило, то вы можете предложить свою шпаргалку в качестве контрибьютора.
#шпаргалки
Click — удобный инструмент для создания CLI на Python
Если вам нужно создать интерфейс командной строки для вашего проекта, то этот пакет позволит сделать это максимально просто.
Инструмент бесплатный и с отличной документацией: https://click.palletsprojects.com/en/8.1.x/
#инструменты #библиотека #cli
256 попугаев дней с начала года прошли!
А это значит, что наступил День программиста! Мы с друзьями приготовили для вас небольшой сюрприз. Переходите по ссылке и трясите коробку, чтобы забрать его: https://tprg.ru/aKie
Делитесь в комментариях, что вам выпало.
Вы всё ещё логируете через f-string? Тогда мы идём к вам
В этом видео вы узнаете об основной особенности логирования в Python, связанной с рендером строк. Вы изучите основные особенности стандартной Python библиотеки logging и получите «best practices» промышленного логирования.
После такого f-string, конечно, останутся в вашем арсенале. Но вот захотите ли вы их использовать также часто, как раньше?
#видео #основы #bestpractices
Простыми словами: B-дерево
В прошлом посте я рассказывал про бинарное дерево поиска. Теперь давайте разберём ещё одну популярную структуру данных.
B-дерево (B-tree) — это самобалансирующаяся структура данных, которая хранит данные в отсортированном виде, позволяя эффективно выполнять операции поиска, вставки и удаления. B-деревья часто используются в системах хранения данных, таких как базы данных и файловые системы, благодаря своей способности справляться с большими объемами данных и минимизировать количество операций чтения/записи на диске.
Структура B-дерева выглядит следующим образом:
1. Корень дерева: он содержит указатели на свои дочерние узлы.
2. Внутренние узлы: эти узлы содержат ключи и указатели на другие узлы дерева.
3. Листовые узлы: узлы на самом нижнем уровне дерева, которые содержат сами данные или указывают на них.
//пример бинарного дерева
[10, 20]
/ | \
[1, 2, 5] [15, 18] [25, 30, 35]
Toolfolio — все нужные инструменты для ИИ и не только в одном месте
Берите на заметку и не теряйте этот сервис. Здесь собраны полезные нейронки под любую задачу, куча бесплатных аналогов популярных программ, а также целые библиотеки плагинов для ваших любимых сервисов.
#инструменты
Простой Python-скрипт + ИИ = оптимизация ваших рабочих процессов
Формула простая, как и этот туториал, после которого вы сможете использовать голосовой ввод с автоматической транскрибацией речи в текст в любом поле ввода на вашем компьютере. Важной особенностью скрипта будет его работа в фоне и автоматический вызов голосом по необходимости.
«Галя, у нас отмена» — и можно начинать курсач с чистого листа. Попробуете?
#гайд #ии #интересное
Давайте проверим ваши знания работы бинарного дерева поиска. Посмотрите на изображение и ответьте на вопрос ниже.
#викторина #bst
встречайте — Bython!
Это проект, который заменяет все отступы в Python на фигурные скобки. Больше не нужно о них париться — если накосячите с табами и пробелами или перенесете кусок кода с другим стилем отступов, то ничего не сломается.
Если вам по каким-то причинам это надо, то ищите проект здесь.
@your_tech
Telegram Mini App. Как создать Web App с нуля
Mini Apps (или же Web Apps) — это относительно новый и удобный способ добавления веб приложения прямо в интерфейсе Telegram. Сегодня, когда в мессенджере появился свой магазин приложений, это стало особоенно актуально.
Особенность Mini Apps заключается в том, что они поддерживают авторизацию, платежи одной кнопкой и возможность работать с данными пользователя, открывшего мини-приложение.
В этом гайде вы научитесь создавать приложения, которые могут взаимодействовать с данными пользователя и разворачивать бота вместе с сайтом в облаке:
https://habr.com/ru/companies/amvera/articles/838180/
#бот #telegram #web
Юный Михаил Шуфутинский тоже был с компьютером на ты. Сегодня, 3-го сентября, он ждет ваших фотографий в комментариях, чтобы состарить их через нейронки.
#кек
@neuro_channel
Что такое Лямбда-выражения в Python и как они работают
Лямбда-выражения — это короткий способ создать безымянные функции прямо в месте их использования. Они полезны, когда вам нужна простая функция для одноразового использования, и вы не хотите определять её через стандартный синтаксис def.
Они имеют простой и компактный синтаксис:
lambda аргументы: выражение
add = lambda x, y: x + y
print(add(2, 3)) # Результат: 5
map:map применяет лямбда-выражение ко всем элементам в списке:numbers = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, numbers))
print(squares) # Результат: [1, 4, 9, 16]
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]
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.
Если бы вы могли вернуться в прошлое и дать совет юному себе, что бы вы сказали?
Читать полностью…
Большая шпаргалка по Python 3
В этом файле вы найдёте полезные заметки о примитивах, коллекциях, функциях и условиях. Сохраняйте в закладки, чтобы не потерять
#шпаргалка #основы