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

Типы копирования в Python

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

#факты

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

Zen of Python

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

#библиотека

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

Zen of Python

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

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

#SQL

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

Zen of Python

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

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

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

#библиотека

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

Zen of Python

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)

#факты

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

Zen of Python

Пятничный Win Share

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

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

#winshare

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

Zen of Python

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

#факты

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

Zen of Python

Команда Мамбы тоже хочет вас поздравить с Днём Программиста!

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

Пусть поиск партнёра станет для вас таким же приятным и простым, как написание бота на Python, ведь Мамба дает промокод на 3 месяца VIP для новых участников: https://mamba.onelink.me/nlqB/ITHAPPY?erid=Kra243rjF

А ещё вы можете получить приятные подарки, если найдёте фирменные автомобили Мамбы около офисов крупных IT-компаний в Москве и решите, спрятанные там задачи!

Реклама АО "МАМБА" ИНН 7714548885

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

Zen of Python

Почему Джанго?

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

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

#django

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

Zen of Python

Продвинутая логика именования в Python

Разобрали на примерах, как и почему лучше называть различные объекты в Python. Там уже наметился небольшой спор, присоединяйтесь, если интересно. Будем рады вашим техникам именования.

Статья

#лучшиепрактики

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

Zen of Python

Задача на сложение матриц

Уровень: новичок

Напишите функцию (без использования numpy.matrix.sum()), которая складывает две квадратные матрицы и возвращает их сумму. Все элементы матриц — целочисленные значения.

matrixAddition(
[ [1, 2, 3],
[3, 2, 1],
[1, 1, 1] ],
// +
[ [2, 2, 1],
[3, 2, 3],
[1, 1, 3] ] )

// returns:
[ [3, 4, 4],
[6, 4, 4],
[2, 2, 4] ]

#задача

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

Zen of Python

Отложенная оценка аннотаций типов

PEP-563 представил отложенную оценку аннотаций типов. Это означает, что все ваши аннотации типов во время выполнения рассматриваются лишь как строки. Но это помешало работе pydantic и typeguard.

Однако если такое поведение вам все таки нужно, используйте annotations из модуля __future__:

def class_decorator(cls):
annotations = get_type_hints(cls) # raises NameError on 'C'
print(f'Annotations for {cls}: {annotations}')
return cls

@class_decorator
class C:
singleton: 'C' = None

#факты

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

Zen of Python

LookupError: родительский класс KeyError, IndexError

Основная цель этого промежуточного исключения — упростить отладку при возникновении любого из этих двух исключений:

try:
username = resp['posts'][-1]['authors'][0]['name']
except LookupError:
username = None

#лучшиепрактики

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

Zen of Python

Сможете расшифровать фразу со стартаперского?

«Фаундеры показали MVP по время питча — похоже, придётся сделать пивот, потому что с фримиумом мы не сможем свести unit-экономику».

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

В этой статье автор поделился опытом создания и развития первых проектов: https://tprg.ru/i4UN

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

Реклама Бексаев Николай Сергеевич ИНН 470308037337, erid:LjN8KF67Q

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

Zen of Python

beautifulsoup4 vs. Scrapy

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

#bs4 #scrapy

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

Zen of Python

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

#библиотека

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

Zen of Python

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

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

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

#GIL

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

Zen of Python

Задача о вычурном регистре

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

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

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

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

#задача

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

Zen of Python

tqdm для прогресс-баров на Python

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

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

#библиотека

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

Zen of Python

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

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

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

#библиотека

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

Zen of Python

Как устроиться в престижную компанию, когда тебе 18?

Несмотря на отсутствие большого опыта, есть возможность попасть в крупную IT-компанию, если проявить настойчивость и упорство.

Молодой специалист Александр поделился своей историей о том, как стал разработчиком, придумал идею проекта, опоздав на 40 минут на пару в колледже, и получил позицию в отделе AI Газпромбанка.

#карьера

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

Zen of Python

В коде затык? Сообщество Zen of Python поможет

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

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

#грокаем

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

Zen of Python

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

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

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

#факты

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

Zen of Python

Задачи с собеседований Amazon для Python-разработчиков

Составили подборку практических заданий собеседований в Amazon и других крупных IT-компаний для джунов и миддлов.

#карьера

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

Zen of Python

В проекте avito.code вышел завершающий ролик о паттернах конкурентного программирования в Go

Бэкенд-инженер Виталий Лихачёв объяснил принципы работы вычислительных паттернов (Future / Promise и Lazy Evaluation), а также команд Tee Channel и Ring Buffer. Понимание этих терминов позволит оптимизировать код и эффективнее работать с потоками данных.

Смотреть выпуск: https://tprg.ru/1grx

Реклама ООО «Авито Тех» LjN8K34WA

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

Zen of Python

Подборка головоломных логических задач с собеседований

Составили подборку из 10 логико-математических задач, которые задают на рабочих интервью в Microsoft, Google, Amazon, Yahoo и Infosys.

#карьера

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

Zen of Python

​Субботний Win Share

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

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

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

Zen of Python

pyvis: визуализация графов

Утилита позволяет создавать графы, настраивать размер нодов, их цвет и прочие характеристики:

>>> from pyvis.network import Network
>>> import networkx as nx

>>> nx_graph = nx.cycle_graph(10)
>>> nx_graph.nodes[1]['title'] = 'Number 1'
>>> nx_graph.nodes[1]['group'] = 1
>>> nx_graph.nodes[3]['title'] = 'I belong to a different group!'


>>> nt.show('nx.html')

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

#факты

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

Zen of Python

String Template: ещё один способ интерполировать

Класс Template модуля string позволяет использовать знак доллара для подстановки:

from string import Template
t = Template('Привет, $channel!')

t.substitute(dict(channel='@zen_of_python'))
# 'Hello, @zen_of_python'

Доводилось ли вам использовать Template? Поделитесь в комментариях, в каких ситуациях он работает лучше f-строк.

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

#факты

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

Zen of Python

1secmail: анонимная почта на Python

Автор видео описывает, как обратиться к API 1secmail.com на Python. В 13-минутном ролике вы узнаете:

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

#api

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