Zen of Python
20.1K subscribers
1.21K photos
161 videos
32 files
3.17K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Airbrake: мониторинг ошибок

Эта система мониторинга подключается к вашему проекту Django всего за четыре строки кода:


pip install -U pybrake

import pybrakenotifier = pybrake.Notifier(
project_id=123,
project_key='abcdefgh12345678')

Библиотека предлагает, помимо категоризации ошибок, ещё и аналитику (как меняется число ошибок от недели к неделе, как изменилось время ответа сервера и т.д.)

#airbrake #факты
👍7👎1
Запись логов в файл методом print()

В своём коротком видео ютьюбер @Indently показывает, как изменить статус выводимого print() текста на ошибку, чтобы усовершенствовать процесс отладки. Всего за 6 строк кода он создает возможность записывать время возникновения ошибки и кастомный текст, описывающий её.

#лучшиепрактики
💩29👍31
Удобная запись больших чисел в Python

Если уж и довелось использовать в коде большое число, то для улучшения его читаемости (в коде, не на выводе) можно использовать «экспоненциальную запись» (Scientific Notation). В своём минутном ролике @Indently показывает, какие принимаются разделители, кроме пробела.

#лучшиепрактики
4💩4
Гвидо ван Россум о создании Python за 4+ минуты

Короче, наверное, и не расскажешь. Создатель языка рассказал вкратце (на английском), что послужило предпосылкой для создания языка, причём здесь Амстердам и чем ему не угодили shell-скрипты.

#интервью
👏10👍2🔥2
Рейтинг лучших программистов в мире 2023

Объявляем баттл за звание лучшего программиста мира.

В сегодняшнем раунде участвуют две пары:
— Марк Цукерберг, создатель запрещённой в РФ компании против Павла Дурова, создателя Вконтакте и Telegram;
— Илон Маск, основатель SpaceX, владелец Twitter, соучредитель Neuralink и OpenAI против Сергея Брина, соучредителя Google.

#баттлпрограммистов
👎22💩12🔥3🤡2
Trafilatura: CLI-аналог BeautifulSoup

Интересный opensource-инструмент Trafilatura, предлагающий скрейпинг содержимого веб-страниц. По заверениям создателя, утилита пытается найти баланс между ограничением шума («левых» элементов на странице) и включением всех смыслонесущих частей.

Какие удобные утилиты для парсинга, кроме BS4, вы знаете? Поделитесь в комментариях.

#CLI
👍5🔥32
​Рейтинг лучших программистов в мире 2023: раунд 2

В первом раунде баттла победили Дуров и Брин, а сегодня за звание лучшего программиста в мире будут бороться новые пары.

Первая пара:
— Джеймс Гослинг, создатель Java;
— Бьёрн Страуструп, создатель С++;

Вторая пара:
— Гвидо ван Россум, создатель Python;
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript.

Давайте накидаем плюсов Гвидо ван Россуму! Ссылка на голосование

#баттлпрограммистов
🤡27👍3💩2💔1
Три способа выделить уникальные элементы списка

Частый запрос среди новичков по версии AnswerThePublic. Дополним привычное представление об удалении дубликатов парой трюков.

Допустим, у нас есть список:

list_inp = [100, 75, 100, 20, 75, 12, 75, 25]

set
set_res = set(list_inp)
print("The unique elements of the input list using set():\n")
list_res = (list(set_res))

not in
for item in list_inp:
if item not in res_list:
res_list.append(item)

numpy.unique
import numpy as np

res = np.array(list_inp)
unique_res = N.unique(res)

#лучшиепрактики
👍71
Загонка списка в print() без явного цикла

Допустим, нам нужно вывести инвентарь игрока:

inv = ['Железный меч',
'Исцеляющее зелье',
'Деревянный щит',
'Палка']

Сделать это можно с помощью f-строки и join():

>>> print(f"У вас есть: {', '.join(inv)}")
... У вас есть: Железный меч, Исцеляющее зелье, Деревянный щит, Палка

#лучшиепрактики
🔥24👍6🤡5👏1
Фичи из свежих релизов Python

Рассказываем в статье, какие новые функции появились в свежих релизах Python. Среди них прокачанный трейсинг ошибок и чтение TOML-конфигов.

#лучшиепрактики
👍4👎1
Latexify для перегонки кода на Python в LaTex

Уникальная в своём роде утилита, позволяющая конвертировать код в формулы. Поддерживает Pythons 3.7+.

Какие инструменты, упрощающие верстку LaTeX, вы знаете? Поделитесь в комментариях.

#факты
👍18🔥9
Интервью с Гвидо ван Россумом из Оксфорда

В своём англоязычном интервью создатель Python рассказал про:

— предпосылки создания языка (причем здесь язык C и shell-скрипты);
— сохранение мотивации;
— женщин в Python;
— предполагаемое будущее языка;
— крупные проблемы ЯП и другие интересные темы.

#факты
👍8
Перенос строки

С помощью наклонной черты \ (backslash) можно разрывать длинный код на несколько строк:

a_variable = True
b_variable = True
c_variable = False

if a_variable == True \
and b_variable == True \
and c_variable == False:
print('Like for more!")

#факты
👍17👎106
Autopep: наводим порядок в коде

Интересный чистильщик кода autopep8 приведёт ваш файл.py к читаемому и корректному состоянию:

pip install --upgrade autopep8
autopep8 --in-place filename.py

Помимо привычных возможностей, вроде корректировки отступов:
— конвертация многострочных комментариев из # в ''';
— разделяет код на строки согласно кастомной максимальной допустимой длине.

#факты
👍72😁1
Простейшее объяснение, зачем нужны Dunder-методы

Допустим, у нас есть класс Fruit с названием и ценой, плюс некие собственные методы.

class Fruit:
def __init__(self, name, cost):
self.name = name
self.cost = cost

def method(self):
pass

Напрямую создавать экземпляры, передавая название и цену, не получится. НЯ ужно использовать магический метод __str__():

def __str__(self):
return f'{self.name}, €{self.cost}'

И теперь, если мы создадим экземпляр класса Fruit:

banana = Fruit('Banana', 10.5)

то он «схватит» аргументы в нужном режиме:

>>> print(banana)
... Banana, €10.5

#лучшиепрактики
💩16👍15👎42😁1
Как применяется _ (нижнее подчёркивание)

1. Для читаемости больших чисел:
num = 9_000_000
binaryNum = 0b0_101
hexNum = 0x5_4fa

2. Для удержания в памяти временного «бесхозного» объекта. Если в Jupyter Notebook в ячейке один произвести операцию сложения:

4 + 5

то вызвать результат этого сложения в ячейке № 2 можно с помощью _:

>>> _
... 9

#лучшиепрактики
👍7
Рейтинг лучших программистов в мире 2023: полуфинал

В сегодняшнем раунде участвуют две пары:

— Бьёрн Страуструп, создатель С++;
— Билл Гейтс, сооснователь Microsoft.

— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Линус Торвальдс, создатель Linux.

Ссылка на голосование

#баттлпрограммистов
💩25🏆3👍1
Способ выделить уникальные элементы списка: фильтр Блума

Фильтр Блума позволяет быстро определить, не входит ли элемент в заданное множество. Операции вставки и проверки выполняются за постоянное время, независимо от размера множества. Библиотека bloom-filter как раз и помогает реализовать такую функциональность:

# Инициируем экземпляр фильтра
bloom = BloomFilter(max_elements=10000, error_rate=0.1)

# Проверка на наличие "test-key"
assert "test-key" in bloom is False

#лучшиепрактики
👍8❤‍🔥1🔥1
Ребят, ищем пишущего IT-редактора блогов в Tproger

Условия: удалёнка, фултайм

Что делать:
— искать темы, которые понравятся клиентам и заинтересуют читателей;
— вникать в эти темы настолько, чтобы говорить с экспертами примерно на одном языке;
— проводить интервью и собирать фактуру;
— превращать фактуру в статью, которую захочется читать и репостить;
— дорабатывать статью вместе с экспертами и менеджерами клиента.

Требования:
— пишешь логично и ёмко, видишь стилистические и речевые ошибки в тексте.
— быстро находишь и проверяешь информацию (в том числе в англоязычных источниках).
— любишь общаться с экспертами и умеешь их разговорить.
— спокойно реагируешь на комментарии, но можешь отстоять свою позицию, если правка неуместна.
— тактично вносишь правки, чтобы автор не расстраивался, а был благодарен за помощь.
— знаешь, что такое ключевое слово, мета-описание и зачем нужен Wordstat.

Чтобы откликнуться, заполняйте анкету.
👍41👎1🤩1💩1