20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
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
#библиотека
Кортежи в Python
Кортежи очень похожи на списки. Это тоже последовательность элементов, но при этом является неизменяемой.
В этой подборке собрали для вас некоторые полезные факты о них и методы для работы с ними.
#шпаргалка #кортежи
Большой каталог шпаргалок на все случаи жизни
Ловите репозиторий, где собраны более 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
В этом файле вы найдёте полезные заметки о примитивах, коллекциях, функциях и условиях. Сохраняйте в закладки, чтобы не потерять
#шпаргалка #основы
uv — менеджер пакетов нового поколения
Новый менеджер пакетов создан, чтобы заменить привычный многим pip. Как ни странно, написан он на Rust, что позволяет ему работать значительно быстрее привычных менеджеров.
Сможет ли он стать новым стандартом, покажет время. Но попробовать и узнать подробнее обо всех особенностях можно уже сейчас по ссылке:
https://astral.sh/blog/uv-unified-python-packaging
#pip #uv #инструмент