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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
Почему Джанго?

Возможно, вы уже слышали, что Django назван в честь американского гитариста Джанго Рейнхардта. Один из соавторов фреймворка, Адриан Холоватый, вероятно, поспособствовал такому неймингу. Он обожает Рейнхардта и ведет YouTube-канал, посвящённый не только каверам на песни джазмена, но и трактует известные композиции по-новому.

Если вы тоже не знали, как называется жанр музыки из открывающей темы Спанчбоба, то добро пожаловать в мир джаз-мануша (цыганский джаз). На видео Адриан обыграл тему из «Братьев Марио».

#django
5💩4
Torrent-Search-Bot для магнитных ссылок на торренты

Готовый Telegram-бот для тех, кому лень включать VPN. Просто разверните его копию с помощью собственного токена от BotFather, и он будет слать в ответ magnet link.

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

#факты
👍71💩1
MATLAB vs. Python
🔥25💩3
В коде затык? Сообщество Zen of Python поможет

Мы пробуем рубрику «Грокаем вопрос» для Python-новичков и не только. Напишите в комментариях, с какой задачей вам нужно справиться. Мы выберем несколько самых интересных вопросов и постараемся обеспечить вас несколькими версиями ответов, в том числе с помощью подписчиков.

Пожалуйста, следуйте стандартам постановки вопроса в стиле Stack Overflow. Мы надеемся на ваше чувство эмпатии и взаимовежливости.

#грокаем
👍11
Faker: игрушечные данные

Библиотека позволяет сгенерировать dummy data: имена, адреса, lorem ipsum, даты и т.д.

$ faker address
968 Bahringer Garden Apt. 722
Kristinaland, NJ 09890

Поддерживает работу в командной строке:

faker [-h] [--version] [-o output]
[-l {bg_BG,cs_CZ,...,zh_CN,zh_TW}]
[-r REPEAT] [-s SEP]
[-i {package.containing.custom_provider otherpkg.containing.custom_provider}]
[fake] [fake argument [fake argument ...]]

Репозиторий на GutHub

#библиотека
❤‍🔥121👍1🌭1
Пятничный Win Share

Чем занимались на неделе, связанным с Python и IT в целом?

Поделитесь в комментариях.

#winshare
Gooey: из CLI-приложения в GUI

Gooey превратит вашу консольную программу в полноценное графическое приложение всего одной строкой кода.

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

#библиотека
🤔12👎1
atexit для завершающей логики

Хэндлер позволяет исполнять хуки при закрытии программы. Это подойдёт:

— для завершения ожидающих процессов;
— для отправки ожидающих сообщений в логи;
— для сохранения истории интерпретатора.

В примере ниже создаётся счётчик падений программы:

try:
with open('counterfile') as infile:
_count = int(infile.read())
except FileNotFoundError:
_count = 0

def incrcounter(n):
global _count
_count = _count + n

def savecounter():
with open('counterfile', 'w') as outfile:
outfile.write('%d' % _count)

import atexit

atexit.register(savecounter)

#факты
👍91
tqdm для прогресс-баров на Python

Если вы создаёте свою библиотеку или автоматизируете процессы с помощью bash-скриптов, отобразить ход исполнения запущенных команд можно с помощью tqdm.

Репозиторий на GitHub

#библиотека
👍9
FreezeGun: заморозка времени для тестов

С помощью библиотеки freezegun можно «заморозить» время до определённой точки, обеспечив точную проверку тестируемых функций.

Репозиторий на GitHub

#библиотека
🔥8💩3
Задача о вычурном регистре

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

Пример:
"Строка" => "СтРоКа"

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

Переданная строка будет состоять только из букв алфавита и пробелов. Пробелы будут присутствовать только в том случае, если слов несколько. Слова будут разделены одним пробелом.

#задача
👍51
SQL-запросы, которые вы рано или поздно погуглите

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

#SQL
GIL: зачем он нужен и как с ним жить

Тимлид Evrone Григорий Петров очень доступно знакомит с Глобальной блокировкой интерпретатора в своей 35-минутной лекции. С помощью видео можно узнать на доступном языке:

— как засыпают и просыпаются потоки;
— от чего защищает GIL;
— как GIL работает изнутри.

#GIL
🔥9👍1
Unicaps: API для решения CAPTCHA

Инструмент поддерживает несколько десятков видов капчи и асинхронность:

>>> from unicaps import CaptchaSolver, CaptchaSolvingService

>>> solver = CaptchaSolver(CaptchaSolvingService.TWOCAPTCHA, api_key="<API_KEY>")
>>> solved = solver.solve_image_captcha(open("captcha.jpg", "rb"), is_phrase=False, is_case_sensitive=True)

>>> solved.solution.text
... 'w93Bx'

>>> solved.report_good()
... True

Репозиторий на GitHub

#библиотека
🤣52👍1
whois для домена на Python

Библиотека позволяет выводить те же сведения о сайте, что и одноимённый сервис.

>>> import whois
>>> domain = whois.query('google.com')

>>> print(domain.__dict__)

... {
... 'expiration_date': datetime.datetime(2020, 9, 14, ... 0, 0),
... 'last_updated': datetime.datetime(2011, 7, 20, 0, 0),
... 'registrar': 'MARKMONITOR INC.',
... 'name': 'google.com',
... 'creation_date': datetime.datetime(1997, 9, 15, 0, 0)
... }

>>> print(domain.expiration_date)
... 2024-09-14 00:00:00

Репозиторий на GitHub

#библиотека
👍7
Типы копирования в Python

Лаконичная статья, рассказывающая о типах копирования (поверхностном и глубоком). С её помощью вы познакомитесь с разницей в поведении составляющих копируемого объекта, а также с поведением copy() / deepcopy().

#факты
🔥1
PyAutoGUI для снимков экрана

import pyautogui

screen = pyautogui.screenshot()
screen.save("my_image.png")

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

Репозиторий на GitHub

#библиотека
👍8❤‍🔥2
Книга «Django 3 на примерах» (2020)

Автор: Антонио Меле

Следуя за автором, вы создадите несколько проектов на базе фреймворка и познакомитесь с возможностями Django 3.

Репозиторий книги

#django
🌭6💩5👍4
Пятничный Win Share

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

#winshare
👍1👌1
PandaSQL, чтобы обращаться к датафрейму на SQL

Инструмент позволяет использовать язык запросов SQL для обработки табличных данных pandas:

Вместо
customers[customers["age"] <= 25]

Теперь можно фильтровать датафрейм так:

import pandasql as ps

sql_query = '''SELECT * FROM customers WHERE "age" <= 25'''
ps.sqldf(sql_query)

#библиотека
🤔18👍8🔥4💩3🦄3
drf_yasg: автоматическая документация API для Django

Начиная с Django 2.2, Django Rest Framework 3.10 и Python 3.6 вы можете автоматически генерировать документацию API Django REST Framework.

Репозиторий на GitHub

#django
6👎3👍1