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
Способ выделить уникальные элементы списка: фильтр Блума

Фильтр Блума позволяет быстро определить, не входит ли элемент в заданное множество. Операции вставки и проверки выполняются за постоянное время, независимо от размера множества. Библиотека 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
Финал баттла программистов

Выберите тех, кого вы лично считаете лучшим программистом мира, но помните: не ориентируйтесь на их популярность, востребованность или устоявшиеся топы лучших программистов. В этом турнире важны только народная любовь и ваша субъективная оценка.

За первое и второе место будут бороться:
— Бьёрн Страуструп, создатель С++;
— Линус Торвальдс, создатель Linux.

За третье и четвёртое место будут бороться:
— Андерс Гейлсберг, создатель Turbo Pascal, Delphi, C# и TypeScript;
— Билл Гейтс, сооснователь Microsoft.

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

#баттлпрограммистов
💩8🤡5👍2
Превратить кортеж в словарь одной строкой? Легко!

Допустим, у нас есть кортеж, где каждое значение – строка из двух символов:

values = ('a1', 'b2', 'c3')

Если “навесить” функцию dict():

print(dict(values))

то в результате мы получим словарь с разделёнными на «ключ – значение» парами:

{'a': '1', 'b': '2', 'c': '3'}

#лучшиепрактики
🤮18🤡5💩4👍2👎2
Подборка актуальных вакансий

Middle / Senior Backend-разработчик (Python) в Гринатом
Где: удалённо
Опыт: от 3 лет

Программист-разработчик Python в Гринатом
Где: удалённо
Опыт: от 2 лет

QA Automation (Python) в Иннотех
Где: удалённо
Опыт: от 3 лет

Data Scientist в Открытие
Где: Москва, можно удалённо
Опыт: от 2 лет

Team Lead Python-разработчик в Гринатом
Где: удалённо
Опыт: от 5 лет

Data Engineer в Гринатом
Где: Москва
Опыт: от 3 лет

Senior Python-разработчик в МТС
Где: Москва, можно удалённо
Опыт: от 4 лет

#вакансии #работа
👍4👎4💩3
Преобразование русской речи в текст

В статье вы узнаете, как осуществить транскрибацию русской речи в текст при помощи Python и библиотеки vosk с использованием Deep Learning.

#texttospeech
👍5🔥2
Обработка больших файлов в Python с использованием параллельных процессов

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

В статье вы узнаете, как сократить время обработки с помощью multiprocessing, joblib и tqdm.

#multiprocessing
🔥6
Как выбрать тему для PyCharm

Рано или поздно большинство разработчиков приходят к осознанию — удобство IDE влияет на многое: скорость решения затыка, среднюю длительность беспрерывной работы, удобство настройки интерфейса. Так что сегодня мы рассказали в статье о темах для PyCharm, об их видах и процессе установки.

#pycharm
🤣9🤔7👎3👍2
Бенчмаркинг Python 3.10 vs. 3.11: на 64% быстрее?

Благодаря подписчику @Trizalio мы можем поделиться с вами прекрасной статьёй: сравнение производительности разных версий Python.

Автор статьи запускает разные версии ЯП в Docker и использует утилиту pyperformance, чтобы вычислить время исполнения аналогичных скриптов.

#факты
14👍5😨3
This media is not supported in your browser
VIEW IN TELEGRAM
Типичный курс Python для начинающих be like:
😁49🤡6👍5💩3🙏2
Прекрасная утилита для написания регулярок

Если судить по названию, то ihateregex.io написал человек, сытый по горло непрозрачностью регулярных выражений. Так и появилась замечательная веб-утилита, которая иллюстрирует, что значит тот или иной компонент регулярки.

При просмотре скрина легче не особо становится, но вся прелесть инструмента раскрывается, когда вы пишете выражение с нуля. И, что важно, с такими паттернами прекрасно дружит библиотека re, дополнительной подгонки не требуется.

#regex
👍10🔥3💩1
Как быстро найти отличия в длинных похожих строках

Чтобы сравнить две строчные последовательности (например, генов):

seq1 = 'atgcttcggcaagactcaaaaaata'
seq2 = 'atscttcsscaagactaaaaaaata'

можно использовать комбинацию zip() и enumerate(). Первая сопоставит символы с одинаковыми индексами, а вторая – присвоит каждой паре символов порядковый номер (здесь всего 24):

zip_seqs = zip(seq1, seq2)
enum_seqs = enumerate(zip_seqs)

Чтобы найти отличающиеся символы, достаточно сравнить символы попарно:

for i, (a, b) in enum_seqs:
if a != b:
print(f'index: {i}')

... index: 2
... index: 7
... index: 8
... index: 16

#лучшиепрактики
12👍3👌3
Django: ваш первый проект

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

В данном руководстве вы найдёте инструкцию по настройке проекта Django, которая будет полезна на первых этапах работы.

#django
👍2
Что полезного в свежей версии Python: необязательные элементы TypedDict

Существует такой интересный конструкт typing.TypedDict.Он позволяет добавлять подсказки о типах данных словарю:

class Point2D(TypedDict):
x: int
y: int
label: str

a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
b: Point2D = {'z': 3, 'label': 'bad'} # Не пройдет проверку

Теперь TypedDict имеет необязательные элементы:

class Movie(TypedDict):
title: str
year: NotRequired[int]

m1: Movie = {"title": "Black Panther", "year": 2018} # OK
m2: Movie = {"title": "Star Wars"} # OK (год необязателен)
m3: Movie = {"year": 2022} # Ошибка (не заполнено обязательное поле)

Спасибо подписчику @Trizalio за годную подсказку.

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

#лучшиепрактики
👍231
Большая книга примеров Python

Прекрасный гайд под авторством Марченко Антона – преподавателя МГУ. Книга знакомит с основной терминологией языка на доступных примерах. Это издание напоминает расшифровку документации и отличается упором на понятность. Помимо прекрасной подборки частоиспользуемых понятий, это ещё и способ подготовится к собеседованию на Junior Python Developer.

#обучение
👍19🔥6
Скончался создатель VIM, Брам Муленаар

Семья разработчика сообщила, что Брам ушёл из жизни 3 августа. Он посвятил значительную часть своей жизни развитию и совершенствованию Vim и с гордостью глядел на достижения сообщества.

Vim — это редактор с открытым исходным кодом. За время своего существования он получил множество наград и по-прежнему остается одним из самых популярных текстовых редакторов.

:wq!

#vim
😢102🫡83💩2
Свой API на Django

Полуторачасовая серия уроков, посвящённая созданию своего API (Application Programming Interface). Этот урок хорош тем, что объясняет не только логику вёрстки API, но и помогает развернуть проект на Django с нуля.

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

#api #django
👌13👍1
Подгрузка файлов на CDN c Python

CDN (Content Delivery Network) — распределённая система хранения данных, которая предоставляет собой набор серверов, отдающих файлы по принципу близости к пользователю.

pip install cdnupload
cdnupload /website/static s3://static-bucket --key-map=statics.json

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

#cdn
👍7
Как бороться с прокрастинацией

Необычная англоязычная статья с talent500.co о работе с откладыванием задач у программистов. Помимо стандартных рекомендаций вроде планирования наперёд там вы найдёте ещё пару необычных техник от психоаналитиков.

#карьера
👍10
SQL: вставка новых записей в БД или обновление существующих

Почти сразу при появлении SQL в работе появляется потребность обновлять базу. Однако вручную выслеживать, кто в большом наборе есть, а кого добавлять, — трата времени.

Запрос ниже добавляет новых сотрудников в перечень персонала. Если запись с таким именем уже существует, то эта инъекция обновит ее:

db = # WITH new_employees AS (
SELECT *
FROM (
VALUES ('George', 'Sales', 'Manager', 1000),
('Jane', 'R&D', 'Developer', 1200)
) AS t(name, department, role, salary)
)
INSERT INTO employees (name, department, role, salary)
SELECT name,
department,
role,
salary
FROM new_employees ON CONFLICT (name) DO
UPDATE
SET department = EXCLUDED.department,
role = EXCLUDED.role,
salary = EXCLUDED.salary
RETURNING *;

#SQL
👍9❤‍🔥1👎1🔥1