TGViewer
Channel Public Channel
Zen of Python

Zen of Python

@zen_of_python

Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Subscribers
18.8K
Photos
1.5K
Videos
202
Links
3.7K

Showing posts older than #2638 · Back to latest

Older Posts 20 shown
Post #2637 4.88K
​Упрощённый оператор if

Порой вместо множественных сравнений с использованием or:

m = 3

if m == 1 or m == 2 or m == 3 or m == 4:
print("m равен 1 / 2 / 3 / 4")

Эффективнее использовать in:

if m in [1, 2, 3, 4]:
print("m входит в диапазон [1, 4]")

#лучшиепрактики
  • 👍 13
  • 💩 13
  • ❤‍🔥 6
  • ❤ 2
  • 🥰 1
Post #2636 4.79K
​Модуль warnings для кастомных предупреждений

Встроенная утилита позволяет тонко настраивать всевозможные ворнинги под ваш код:

def deprecation(message):
warnings.warn(message, DeprecationWarning, stacklevel=2)

Документация

#факты
  • 👍 9
  • ❤ 2
Post #2635 4.54K
​Субботний Win Share

Что хорошего получилось у вас в сфере Python и IT в целом за неделю?

Поделитесь в комментариях.
Post #2634 4.82K
​PlotAI для вёрстки графиков на Matplotlib

Возможно, вы уже знаете, что LLM-модели вроде GPT неплохо справляются с построением различных диаграмм. Теперь можно упростить создание графиков на Python с помощью PlotAI:

— пользователь предоставляет датафрейм;
— PlotAI создаёт промт для LLM, который содержит первые пять записей и запрашивает код Python;
— возвращенный код Python выполняется, и отображается график.

Ссылка на репозиторий GitHub

#dataviz
  • 👍 4
  • 😁 2
Post #2630 4.74K
​Dara для Decision-Making-приложений

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

Ссылка на репозиторий

#dataviz
Post #2629 5.46K
​​В Excel появился Python

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

«Вы можете исследовать данные в Excel, используя библиотеки Python, а затем подводить формулы, диаграммы и сводные таблицы Excel для дальнейшего развития своих идей», — объясняет Стефан Киннестранд, генеральный менеджер по современным работам в Microsoft. «Теперь вы можете выполнять расширенный анализ данных в знакомой среде Excel, обращаясь к Python непосредственно в MS Excel».

Установка дополнительных модулей не требуется.

#excel
  • 👀 21
  • 🔥 8
  • 🤔 4
  • 👍 2
  • ❤ 1
Post #2628 4.71K
Всем привет! Сегодня мы запускаем новую версию нашего сайта tproger.ru, поэтому могут наблюдаться сбои и ошибки

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

Спасибо за понимание.
  • 👌 11
  • 💩 5
  • 😁 4
  • 👍 3
  • 🔥 1
Post #2627 5.07K
​Бессмертие объектов

В Python 3.12 в рамках CPython некоторые объекты, такие как None, True и False действуют как глобальные синглтоны (паттерны, ограничивающие возможность создания объектов данного класса одним экземпляром). Они совместно используются интерпретатором вместо того, чтобы каждый раз создавать их новые копии.

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

Что означает "бессмертие" (immortality) и как оно решает эту проблему, читайте в англоязычной статье на mail.python.org.

#факты
  • 👍 21
Post #2626 5.01K
  • 😁 33
  • 💩 18
  • 👍 1
  • 🔥 1
Post #2625 5.52K
​Вышел Python 3.11.5

Новая версия:
— точнее указывает на причину ошибки в трейсбеке;
— позволяет использовать файлы.toml для конфигов;
— позволяет группировать задачи с asyncio и многое другое.

Ссылка на дистрибутив

#факты
  • ❤‍🔥 18
  • 👍 5
  • 🔥 2
Post #2624 5.25K
​NaN – число с плавающей запятой

И это довольно нелогично:

import math

>>> sorted([5.0, math.nan, 10.0, 0.0])
... [5.0, nan, 0.0, 10.0]

>>> 3 < math.nan
... False
>>> 3 > math.nan
... False

>>> min(3, math.nan)
... 3
>>> min(math.nan, 3)
... nan

Будьте осторожны и используйте math.isnan() для проверки на равенство NaN.

#факты
  • 👍 9
Post #2623 5.42K
​Асинхронное варение MongoDB в Python

Уютный доклад старшего разработчика компании Элитриум Даниила Неслуховского c недавней яндексовской конференции Pytup.

За эти 50 минут можно вспомнить типы БД, узнать про Object Mapping, Beanie и прочие компоненты.

Запись трансляции (доклад на 04:32)

#mongodb
  • 🥰 5
  • 🔥 1
Post #2622 5.74K
http-status-codes.png780.4 KB
Шпаргалка состояний HTTP-запросов для тех, кто любит requests, и не только.

#http
  • 🔥 10
  • 👍 1
Post #2621 5.31K
​InstaAPI — low-code конструктор API

С помощью InstaAPI вы сможете легко создавать собственные API.

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

#API
  • 🤔 6
  • 👍 2
Post #2620 5.19K
​math.fsum: получаем сумму float без «осложнений»

Тип float печально известен своей неточностью. Когда вы складываете два числа, результат может содержать небольшую ошибку. И чем больше чисел, тем выше ошибка:

sum([0.8] * 1_000)
# 799.9999999999887 вместо 800

Если вы хотите устранить это недоразумение, используйте math.fsum():

import math

math.fsum([.8] * 1_000)
# 800.0

#math
  • 👍 20
  • ❤ 1
Post #2619 5.07K
​Генерируем HTML с Python

Библиотека yattag позволяет создавать HTML-страницы прямо внутри Python-кода:

from yattag import Doc

doc, tag, text = Doc().tagtext()

with tag('div', id='photo-container'):
doc.stag('img', src='/salmon-plays-piano.jpg', klass="photo")

print(doc.getvalue())

В результате мы получаем самозакрывающиеся теги:

<div id="photo-container"><img src="/salmon-plays-piano.jpg" class="photo" /></div>

Профиль на PyPi

#html
  • 👎 4
  • 👍 3
Post #2618 4.97K
​Основные принципы ООП: полиморфизм

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

#ООП
  • 👍 7
  • 👾 2
Post #2617 4.89K
​ItsDangerous: защита данных

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

pip install -U itsdangerous

>>> from itsdangerous import URLSafeSerializer
>>> auth_s = URLSafeSerializer("secret key", "auth")
>>> token = auth_s.dumps({"id": 5, "name": "itsdangerous"})
>>>
>>> print(token)

...eyJpZCI6NSwibmFtZSI6Iml0c2Rhbmdlcm91cyJ9.6YP6T0B
  • 👍 7
Post #2616 4.78K
​pyproject.toml вместо pyproject.cfg

В PEP-518 предложили хранить конфиги для всех инструментов в файле pyproject.toml, в разделе tool.TOOL_NAME. Например:

[tool.mypy]
файлы = ["мой_проект"]
версия_python = 3.8

На данный момент почти все популярные инструменты так или иначе поддерживают pyproject.toml в качестве конфигурационного файла: mypy, pytest, cover, isort, bandit, tox и т. д. Единственное исключение — flake8.

До .toml многие инструменты использовали setup.cfg для той же цели, но этот формат имеет несколько недостатков: он плохо стандартизирован, и единственным поддерживаемым типом значений является строка.

#PEP
  • ❤ 9
  • 👍 2
Post #2615 4.89K
​sqlite3 для работы с БД

В Python существует встроенный модуль для работы с базой на SQLite с поддержкой большинства команд:

import sqlite3

# Подключимся к базе orders
conn = sqlite3.connect('orders')
cur = conn.cursor()

# Отобразим всю таблицу addons
cur.execute('SELECT * FROM addons')
cur.fetchone()

#SQL
  • 👍 6
  • 😁 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →