20070
Полный Дзен Пайтона в одном канале Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels Сайт: https://tprg.ru/site Регистрация в перечне РКН: https://tprg.ru/xZOL
Как создать надёжный софт, который будет работать в любых условиях?
29 апреля в 20:00 МСК на открытом вебинаре вы узнаете, как защитить свой код от проблем, которые могут возникнуть в реальной эксплуатации. А ещё:
— Как гарантировать отказоустойчивость приложений.
— Подходы к снижению влияния сбоев и ошибок в связанных сервисах.
— Основные приемы и инструменты для создания надежных систем.
Полезно для разработчиков, QA-инженеров и архитекторов.
Открытый урок пройдет в преддверие старта курса «Python Developer. Professional». Все участники получат скидку на обучение.
Регистрируйтесь прямо сейчас!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
python-docx | Обращаемся с MS Word
Если вам не избежать Microsoft Word, то этот инструмент позволяет создавать, изменять и извлекать данные из документов (то есть все вариации CRUD — create, read, update, delete) с форматом .docx. Любая деталь вплоть до форматирования.
Цена: бесплатно
Репозиторий проекта
«Книги изменившие мир писатели объединившие поколения»
@ithumor
Second-Me | Самый солипсисткий пет-проект
Если о биологическом бессмертии пока рассуждают футуристы, то цифровое уже вполне реально, если вы можете позволить себе содержать свою LLM. Проект позволяет натренировать на любых данных о вас (переписки в мессенджерах, личный дневник и любые другие данные в любом формате). Такой цифровой двойник сможет общаться за вас в случае чего.
Репозиторий проекта
#инструмент
@zen_of_python
Сегодня можно и spam, и eggs — и не только в коде!
С Пасхой, питонист!
@zen_of_python
В PyPI нашли библиотеку для MEXC, которая помогала… красть крипту у установивших
Вредоносный пакет ccxt-mexc-futures маскировался под легитимное расширение для автоматизации торговли криптовалютами. Пакет крал API-ключи пользователей и управлял их ордерами, перенаправляя запросы на поддельный сервер.
Воистину, в эпоху «Девятого вала контента» пропустить такой зловред при установке инструментария легче легкого.
#безопасность
@zen_of_python
Внимание: представлен Python-пакет, который делает импорт либ great again
Гений с ником Huan Xu выкатил TARIFF: open-source проект, который вводит «импортные пошлины» на Python-библиотеки. При импорте библиотека задерживается на заданный процент времени, а в консоли появляется гордое сообщение о тарифе.
Спасибо за внимание 🙏
#кек #оффтоп
Тест: Какой язык программирования тебе подходит
Небольшой опросник с целью определить «ваш» язык на основании айтишных интересов. Если вы новичок и без подсказок выйдете на Python — что ж, это судьба. Вопросики-то с подковыркой!
@zen_of_python
Ошибки и исключения в Python: в чём разница?
- Ошибки (errors) — это критические проблемы, такие как синтаксические ошибки, которые обнаруживаются до выполнения программы и не позволяют ей запуститься.
- Исключения (exceptions) — возникают во время выполнения программы при неожиданных ситуациях, например, при делении на ноль. Исключения можно перехватывать и обрабатывать в коде.
Распространённые ошибки
- SyntaxError — возникает при нарушении синтаксиса, например, при отсутствии закрывающей скобки:
print("Hello World" # Отсутствует закрывающая скобка
def greet():
print("Hello") # Отсутствует отступ
print("10" + 5) # Возникает TypeError
num = int("abc") # Возникает ValueError
data = {"name": "Alice"}
print(data["age"]) # Возникает KeyError
numbers = [1, 2, 3]
print(numbers[5]) # Возникает IndexError
result = 10 / 0 # Возникает ZeroDivisionError
with open("missing_file.txt", "r") as file:
content = file.read() # Возникает FileNotFoundError
Exception:
class CustomError(Exception):
pass
raise CustomError("Это пользовательское исключение!")
dayplot | Симпатичные хитмэпы
Библиотека позволяет строить тепловые карты а-ля GitHub Contributions. В одной статье забавно визуализировали с dayplot, как у Илона Маска е̶д̶е̶т̶ ̶к̶у̶к̶у̶х̶а̶, как растет число постов в X (ex-Twitter).
Проект на PyPi
#инструмент
@zen_of_python
Когда навайбкодил приложение в СhatGPT и уже подсчитываешь миллионы своего стартапа.
То самое приложение:
airflow-ai-sdk | Оркестрация на откуп GPT
Этот репозиторий позволяет создавать DAG в Airflow и управлять таковыми с помощью ИИ-ассистентов на ваш выбор (хоть ChatGPT, хоть Claude).
Админ ликует, ведь Airflow без должной информационной поддержки легк становится той еще занозой.
Репозиторий проекта
#инструмент
@zen_of_python
Квиз про качество кода в Python
Небольшая англоязычная викторина на 13 вопросов, посвященная читаемости, переиспользованию, масштабируемости и другим параметрам качества. Подготовиться можно с помощью статьи.
#квиз
@zen_of_python
picows | WebSocket-клиенты
Если вам хочется развеяться в рамках Python и «переключиться на железо», эта библиотека как раз позволяет создавать WebSocket-клиенты.
Это такая программа или компонент, который устанавливает постоянное двустороннее соединение, позволяя обмениваться данными в реальном времени без необходимости повторных запросов.
Репозиторий проекта
#инструмент
@zen_of_python
help(): что вы о ней не знали
Это несправедливо забытый инструмент для глубокого понимания не только встроенных объектов ЯП, но и вашего проекта. Она позволяет получать информацию о функциях, модулях, объектах, символах, ключевых словах и темах. В посте вас ждут небанальные примеры ее использования.
— Передача класса или его экземпляра в help() отображает документацию класса и его методов. Даже если класс самописный.
— Ключевые слова: чтобы освежить свои познания про тот или иной оператор, тоже подойдет help():
>>> help('for')
The "for" statement
*******************
The "for" statement is used to iterate over the elements of a sequence
(such as a string, tuple or list) or other iterable object:
for_stmt ::= "for" target_list "in" starred_list ":" suite
["else" ":" suite]
>>> help('keywords')
Here is a list of the Python keywords. Enter any keyword to get more help.
False class from or
...
>>> help('symbols')
Читать полностью…
Here is a list of the punctuation symbols which Python assigns special meaning
to. Enter any symbol to get more help.
!= + <<= _
...
А какие убойные книги про Python и окололежащее вы знаете? Поделитесь в комментариях.
Читать полностью…
Боюсь спросить, как выглядит Pascal Pascal
#кек
@zen_of_python
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
py.checkio.org | Игра для освоения языка
При поддержке JetBrains сделали годную игру про Python. Там вы познакомитесь с основными концепциями языка на примерах и закрепите знания с помощью небольших задачек. Можно даже отнести игру к жанру RPG. Пожалуй, самый нескучный способ учиться.
На сайт игры
#обучение
@zen_of_python
Positron | IDE для «поклонников данных»
Это перспективная среда разработки, которая предлагает:
— удобную среду для обращения с ноутбуками локально;
— поддержку тысяч плагинов, включая ИИ-копайлоты;
— темную тему;
— фокус на Python и R и многое другое.
Несмотря на некоторые ограничения, она активно развивается и может стать отличной альтернативой существующим решениям.
Самое оно побаловаться, когда PyCharm выбесил, в очередной раз «заморозившись».
#инструмент
@zen_of_python
Настраиваем паука для сбора данных: как работает фреймворк Scrapy
В Tproger разобрали основные компоненты этого популярного скрейпера — пауки, пайплайны и middleware на примерах. Если продукт действительно хорош, то для него не жалко и на разных ЯП клиенты писать.
#инструмент
@zen_of_python
Курс по основам API
Интерфейсы, протоколы, какие-то странные URL — всё это звучит сложно, пока не разложить по полочкам. А ведь API — штука, с которой сейчас сталкиваются почти все, кто так или иначе работает с IT.
Быстро понять, что такое API, как он устроен и где пригодится — можно даже без программирования. В этом базовом курсе собраны простые объяснения, реальные примеры и даже чуть-чуть практики в Insomnia. Разобраться в теме проще, чем кажется — особенно после такого разбора.
Ссылка на курс
#курс #api #general #начинающим #ru
Подкаст про Python на YouTube | новости языка за март
Еще один выпуск MoscowPython, на сей раз про:
— PEP 751 и его новый формат лог-файлов;
— улучшения в синхронных функциях;
— подтверждение навыков Python на платформе Минцифры;
— GPT для питонической разработки и многое другое.
Самое оно, чтобы с пользой провести время у экрана, когда обедаешь. Разжевано и будет понятно даже новичкам.
#факт
@zen_of_python
Сравниваем Pandas, Polars и PySpark: что выбрать аналитику?
В Tproger сравнили три популярных библиотеки: Pandas, Polars и PySpark. В статье вы узнаете про производительность, удобство использования и возможности работы с большими наборами каждой из них.
#факт
@zen_of_python
Вышел Django 5.2
В этом релизе представлены следующие ключевые нововведения:
— Автоматический импорт всех моделей в оболочке Django;
— Поддержка составных первичных ключей с использованием django.db.models.CompositePrimaryKey;
— Упрощенное переопределение BoundField на уровне формы, поля или проекта.
Про CompositePrimaryKeyCompositePrimaryKey позволяет создавать первичные ключи, состоящие из нескольких полей, что особенно полезно при моделировании связей многие-ко-многим.
from django.db import models
class Product(models.Model):
name = models.CharField(max_length=100)
class Order(models.Model):
reference = models.CharField(max_length=20, primary_key=True)
class OrderLineItem(models.Model):
pk = models.CompositePrimaryKey("product_id", "order_id")
product = models.ForeignKey(Product, on_delete=models.CASCADE)
order = models.ForeignKey(Order, on_delete=models.CASCADE)
quantity = models.IntegerField()
OrderLineItem использует составной первичный ключ, состоящий из полей product_id и order_id. Это гарантирует уникальность каждой комбинации продукта и заказа. Ранее для достижения подобного поведения приходилось использовать дополнительные настройки или сторонние библиотеки.
Как обойтись без requirements.txt для скрипта-одиночки, или чем хорош uv
Стандарт PEP 723 и менеджер зависимостей uv упростили обращение со скриптами-одиночками. Теперь мы можем встраивать метаданные о зависимостях прямо в скрипты, что устраняет необходимость в requirements.txt или менеджерах пакетов.
Рассмотрим на простом примере скрипта wordlookup.py. Он извлекает определения слов из API словаря. Этот скрипт использует библиотеку httpx для выполнения асинхронных запросов. Вот как выглядит основной код:import argparseimport asyncioimport jsonimport osimport textwrapimport httpxasync def fetch_word_data(word: str) -> list: """Получает данные слова из API словаря.""" url = f"https://api.dictionaryapi.dev/api/v2/entries/en/{word}" async with httpx.AsyncClient() as client: response = await client.get(url) response.raise_for_status() return response.json()async def main(word: str): """Получает и выводит определения для данного слова.""" data = await fetch_word_data(word) if data: print(f"Определения для '{word}':") for entry in data: for meaning in entry.get("meanings", []): part_of_speech = meaning.get("partOfSpeech") definitions = meaning.get("definitions", []) if part_of_speech and definitions: print(f"\n{part_of_speech}:") for definition_data in definitions: definition = definition_data.get("definition") if definition: print(f"- {definition}")if __name__ == "__main__": parser = argparse.ArgumentParser(description="Получить определения слова.") parser.add_argument("word", type=str, help="Слово для поиска.") args = parser.parse_args() asyncio.run(main(args.word))
Чтобы добавить зависимость httpx в наш скрипт, мы можем использовать команду uv:uv add --script wordlookup.py httpx
После выполнения этой команды в верхней части скрипта будут добавлены метаданные о зависимостях, что позволит uv автоматически управлять установкой необходимых библиотек при запуске скрипта.
Запускаем скрипт:uv run wordlookup.py <слово>
При первом запуске uv создаст изолированную виртуальную среду и установит все необходимые зависимости. В дальнейшем uv будет использовать уже созданную среду.
#факт
@zen_of_python
Как понять партиционирование: DWH для гуманитариев
На Tproger объяснили различные типы партиционирования — диапазонное, списковое и хешевое с примерами применения. Если вы подступились к действительно объемным базам, или просто столкнулись с постфиксом _* в BigQuery или других подобных продуктах, статья поможет разобраться.
#основы #sql
@zen_of_python