zen_of_python | Unsorted

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

20687

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

Subscribe to a channel

Zen of Python

Простыми словами: defaultdict в Python

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

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

Рассмотрим простой пример, в котором мы создаем словарь с ключами и списками в качестве значений.

from collections import defaultdict

# Обычный словарь для сравнения
regular_dict = {}

# defaultdict с list в качестве значения по умолчанию
default_dict = defaultdict(list)

# Работа с обычным словарем
key = 'fruits'
if key not in regular_dict:
regular_dict[key] = []
regular_dict[key].append('apple')

# Работа с defaultdict
default_dict[key].append('banana')

print("Обычный словарь:", regular_dict)
# Результат: Обычный словарь: {'fruits': ['apple']}

print("defaultdict:", default_dict)
# Результат: defaultdict(<class 'list'>, {'fruits': ['banana']})


Как это работает?

1. Мы создаем defaultdict, указывая, что значением по умолчанию будет список (list). Это значит, что если ключ отсутствует, то для него автоматически создается пустой список.

2. Когда мы добавляем banana в default_dict под ключом fruits, defaultdict автоматически создает новый список для этого ключа, если он ещё не существует, и добавляет в него элемент.

Вы также можете использовать любую возвращаемую функцию для создания значений по умолчанию. Например, использовать int() для создания словаря, где 0 будет значением по умолчанию:

# defaultdict с int в качестве значения по умолчанию
int_default_dict = defaultdict(int)

int_default_dict['count'] += 1 # Прибавляем единицу к несуществующему ключу
print(int_default_dict) # Результат: defaultdict(<class 'int'>, {'count': 1})


У defaultdict есть ряд преимуществ, которые стоит учитывать:

1. Устраняет необходимость проверки наличия ключа перед манипуляцией над ним.
2. Предотвращает ошибки, связанные с отсутствующими ключами.
3. Позволяет легко определять различные значения по умолчанию для различных типов данных.

Напишите в комментариях, какую тему вам хотелось бы разобрать ещё?

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

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

Zen of Python

Бесплатный курс по Python от Google

Курсов по Python много, в том числе и бесплатных. Но этот выделяется тем, что его разработала компания Google, которая понимает какие знания требуются для работы, например, у них.

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

Начинаем по ссылке.

#курс

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

Zen of Python

Годнота для поклонников Python — в Steam в раннем доступе вышел симулятор разработки программного обеспечения JOY OF PROGRAMMING

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

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

#игры

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

Zen of Python

Простыми словами: DottedDict для работы со словарями

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

Зачем нужен DottedDict?

Обычные словари в Python требуют использования квадратных скобок для доступа к элементам. Когда у вас много вложенных словарей, это может стать неудобным и трудно читаемым. С DottedDict вы можете использовать точечную нотацию, как в объектах.

Прежде чем использовать DottedDict, его нужно установить. Это можно сделать с помощью pip:

pip install dotted-dict


Давайте рассмотрим простой пример использования DottedDict.

from dotted_dict import DottedDict

# Создание DottedDict
data = DottedDict({
"user": {
"name": "Alice",
"contact": {
"email": "alice@example.com",
"phone": "123-456-7890"
}
}
})

# Доступ к элементам с использованием точечной нотации
print(data.user.name) # Результат: Alice
print(data.user.contact.email) # Результат: alice@example.com


В этом примере мы создали DottedDict и получили доступ к вложенным элементам с использованием точечной нотации.

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

# Изменение значения
data.user.name = "Bob"
print(data.user.name) # Результат: Bob

# Добавление нового значения
data.user.contact.address = "123 Main St"
print(data.user.contact.address) # Результат: 123 Main St


Будете использовать?

❤️ — а я уже использую
👍 — конечно, как я раньше без этого жил
🤔 — а смысл?


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

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

Zen of Python

Экскурс в Rust для питонистов

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

В этом докладе Михаил Грачев рассказал, как Rust выглядит для разработчиков, которые уже хорошо умеют Ruby, Python или JS. Это не «введение в Rust для новичков», это обзор от опытного разработчика для других опытных разработчиков: ключевые отличия, на что стоит обращать внимания и где будет болеть.

#видео #доклад #rust

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

Zen of Python

tg2md — простая библиотека для парсинга постов из Telegram в Markdown

С помощью этого небольшого скрипта вы сможете быстро преобразовать все посты источника, включая медиафайлы, в файлы с markdown разметкой для дальнейшей работы с Jekyll.

Всё, что нужно — запустить файл с указанием источника данных и путь к конечному каталогу. Подробнее в репозитории проекта.

#библиотека #инструменты #telegram

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

Zen of Python

10 простых способов ускорить код на Python

Только ленивый не шутил про скорость работы Python. Да, зачастую он оказывается менее производительным, чем другие языки. Однако, существуют способы, которые позволяют значительно повысить скорость при выполнении сложных вычислений или даже обработке больших объёмов данных.

В этой статье собраны 10 таких способов. Читайте и сохраняйте, чтобы не забыть.

#советы

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

Zen of Python

Как создать аудиоплеер на Python с помощью FFmpeg

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

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

#петпроект #статья #ffmpeg

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

Zen of Python

Простыми словами: yield в Python

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

Когда функция с yield вызывается, она возвращает объект-генератор. Этот объект можно итерировать (перебирать) для получения значений, которые функция «производит» по мере необходимости.

Предположим, у нас есть функция, которая возвращает числа от 1 до 3:

def simple_generator():
yield 1
yield 2
yield 3

# Получаем генератор
gen = simple_generator()

# Итерируем генератор
for value in gen:
print(value)

# Результат:
# 1
# 2
# 3


Как это работает:

1. Функция simple_generator использует yield для возврата значений.
2. Каждый вызов yield приостанавливает выполнение функции и возвращает значение.
3. На следующий вызов итерации выполнение функции продолжается с места, где оно было приостановлено последним yield.

А теперь представьте, что вам нужно обработать очень большой список чисел, но вы хотите сделать это постепенно, по одному числу за раз. В этом случае генератор с yield идеально подходит.

Например, для фильтрации четных чисел:

def get_even_numbers(numbers):
for number in numbers:
if number % 2 == 0:
yield number

big_list = range(1000000) # Большой диапазон чисел

# Используем генератор для получения четных чисел
even_numbers = get_even_numbers(big_list)

# Печатаем первые 10 четных чисел
for _ in range(10):
print(next(even_numbers))

# Результат:
# 0
# 2
# 4
# 6
# 8
# 10
# 12
# 14
# 16
# 18


Преимущества использования yield:

1. Экономия памяти. Генератор не загружает все данные в память сразу, а генерирует элементы по мере необходимости.
2. Упрощение кода. Использование yield упрощает написание функций, которые должны постепенно возвращать результаты.
3. Меньше кода для обработки больших наборов данных. Генераторы позволяют легко работать с большими данными без необходимости вручную управлять промежуточными структурами данных.

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

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

Zen of Python

Создание красивого Desktop-приложения на Python

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

Автор поделился своим опытом и ощущениями от разработки десктопного приложения на Python с помощью customtkinter. Он также рассказал о своих болях, которые вызвал у него этот проект.

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

#customtkinter #windows

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

Zen of Python

Забирайте бесплатный курс по Python от института биоинформатики

Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Он является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.

Начать бесплатно можно по ссылке.

#курс

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

Zen of Python

Никто:

Я, написавший «Hello, World» на Python жду оффер на 150к:

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

Zen of Python

Что такое docstring в Python

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

#видео

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

Zen of Python

Stealth-Requests — библиотека для анонимного скреппинга веб-страниц

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

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

Более подробно обо всех возможностях можно прочитать на странице проекта.

#инструменты #веб

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

Zen of Python

«База данных» в гугл таблицах для телеграм-бота

Практически все боты используют какое-нибудь хранилище информации. Чаще всего применяются базы данных, но иногда их использование может быть избыточным, особенно если вам не нужны ACID-транзакции и есть желание менять данные руками в максимально простом интерфейсе.

В таком случае можно воспользоваться простыми google-таблицами. Как именно, рассказали в статье.

#telegram #google

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

Zen of Python

Инструмент дня: Решатель капчи от Google на Python

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

Ближе к делу! Этот инструмент написан на Python и всё, что он делает — решает капчу от reCAPTCHA. Но не графическую, а аудио. Но в этом утилита сама разберётся, главное её установить и запустить.

Подробности о проекте и инструкция по установке в репозитории.

#инструменты #captcha

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

Zen of Python

Создание полного Fast-API сервиса с фронтендом и деплоем за полчаса

Статья для тех, кто устал от теории и хочет получить нужную практику. Вы разработаете полноценный веб-сервис с фронтендом и бэкендом. В проекте используется фреймворк FastApi , сервис WebSim, который сгенерирует для вас фронтенд и библиотеку CurlFetch2Py, которая будет выполнять основную логику приложения.

В итоге у вас получится приложение, которое будет принимать на входе CURL или FETCH строку и будет трансформировать её в Python код. Подробнее в статье:

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

#webdev #fastapi

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

Zen of Python

100 вопросов с собеседований Python. Полный разбор реальных вопросов

Этот обширный набор вопросов охватывает различные аспекты языка программирования Python, включая базовые понятия, структуры данных, ООП, асинхронное программирование, веб-разработку и многое другое.

Изучите этот список, чтобы узнать, к чему быть готовым и как лучше подготовиться к собеседованию по Python.

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

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

Zen of Python

Популярные алгоритмы машинного обучения на Python

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

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

#ml #алгоритмы

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

Zen of Python

Вопросы для подготовки к Python Developer интервью

Ловите большую шпаргалку, в которой вы найдёте ответы на более чем 100 вопросов, встречающихся на интервью. Автор этого репозитория лично собирал вопросы и ответы на них, что заслуживает отдельного уважения.

А если хотите прочитать в формате книги, то скачивайте .epub, прикреплённый к посту.

#шпаргалка

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

Zen of Python

Обучайся ИТ и строй карьеру уже во время учебы

Это возможно в «Школе 21» — школе цифровых технологий, проекте Сбера

Вот лишь несколько особенностей:
— обучение в школе бесплатное, от тебя нужна только мотивация
— 100% выпускников работают в крутых ИТ-компаниях
— стажировка входит в образовательный трек
— во время обучения соберешь портфолио и получишь реальный опыт

Кампусы школы открыты уже в 13 городах России и работают 24/7.

Узнавай больше и подавай заявку на сайте «Школы 21» уже сейчас!

Реклама. Заказчик АНО "Школа 21" ИНН 7736316133

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

Zen of Python

Как автоматизировать инфраструктуру с помощью Terraform и Ansible

Terraform и Ansible — два популярных инструмента, которые помогают автоматизировать инфраструктуру и управлять ей. Первый позволяет настраивать ресурсы, реализовывать масштабируемость и удобное управление цифровыми активами компании. А второй осуществляет доставку, развертывание и обслуживание продуктов на серверах.

В этой статье мы рассказали в чем их особенности и как их можно интегрировать в разработку.

#devops #ansible #terraform

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

Zen of Python

Что должен знать каждый разработчик Python: 8 основных технологий

У каждого разработчика имеется свой набор технологий и инструментов, которые он использует в своей работе. Их выбор осуществляется в течение всего профессионального пути. Но есть и те, которые нужно знать каждому, не выбирая что-то одно.

В этой статье речь пойдёт о 8 таких технологиях, без которых никак не обойтись в работе в любой сфере от инжиниринга до бекенда.

#советы

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

Zen of Python

Упрощаем запуск Python-приложений с помощью одной библиотеки

PyOxidizer — это инструмент, который позволяет вам создавать автономные исполняемые файлы с вшитым Python.

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

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

#библиотека

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

Zen of Python

Как устроен жизненный цикл запросов в Django

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

#django #веб

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

Zen of Python

Использование подчеркивания в коде на Python

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

Этими знаниями делится автор статьи по ссылке. Не поленитесь прочитать.

#основы

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

Zen of Python

Simba: Симуляция десятков тысяч частиц в потенциале Леннарда-Джонса

Как вам эта симуляция? Красивая? Вы можете создать такую же благодаря проекту, который создал автор этой статьи. Причём работает она на чистом Python с GPU-ускорением.

Узнать подробнее о проекте и попробовать его можно в статье.

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

Zen of Python

​​Гарвардский курс по веб-разработке на Python и JS

Курс HarvardX: CS50's Web Programming продолжает легендарный CS50, фокусируясь на разработке веб-приложений с Python, JavaScript и SQL. Тут разбирают дизайн БД, масштабируемость, безопасность и UI.

В процессе обучения есть и практические проекты, среди которых создание API, интерактивных интерфейсов и использование облачных сервисов GitHub и Heroku.

Одним словом — годнота

#курс #web #js #python #en

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

Zen of Python

Что объединяет спорт, e-commerce и цифровые технологии? Правильно, кокос

А точнее Кокос Hackathon 2024, который пройдёт в период с 3 по 18 октября. Хакатон пройдёт в онлайн-формате так что каждый сможет побороться за призовой фонд в размере 1 000 000 рублей независимо от вашей локации.

Вас ждут два трека:

1. Разработка веб-платформы для ФК и болельщиков футбола.
2. Разработка платформы для оценки вероятности действий пользователя.

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

Это #партнёрский пост

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

Zen of Python

Почему not not value БЫСТРЕЕ bool в Python

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

#видео

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