Библиотека питониста | Python, Django, Flask
40.3K subscribers
2.81K photos
80 videos
51 files
4.4K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🌎 ТОП-10: рейтинг лучших зарубежных работодателей в IT

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

1️⃣ Red Hat
2️⃣ Gainsight
3️⃣ Box
4️⃣ MathWorks
5️⃣ ServiceNow
6️⃣ Marvell Technology
7️⃣ CrowdStrike
8️⃣ Fortinet
9️⃣ NetApp
🔟 Genentech

👉 Читать статью
👍42🔥2
Операции над множествами в Python

Приводим список полезных операторов, которые помогают работать с множествами.

s = {3}
z = {3, 4, 5, 6}


✔️& — пересечениe
print(s & z) # -> {3}


✔️| — объединение
print(s | z) # -> {3, 4, 5, 6}


✔️- — разность множеств
print(s - z) # -> set()


✔️^ — cимметрическая разность множеств
print(s ^ z) # -> {4, 5, 6}


✔️in — проверяет, входит ли элемент в множество
print(5 in z) # -> True


✔️<= — является ли первое множество подмножеством второго
print(s <= z) # -> True 


✔️< — является ли первое множество правильным подмножеством второго
print(s < z) # -> True 


✔️>= — является ли первое множество надмножеством второго
print(s >= z) # -> False


✔️> — является ли первое множество правильным надмножеством второго
print(s > z) # -> False
👍58🔥32
🐍⚙️ Python или Rust: что выбрать для анализа данных и машинного обучения

Хоть Python давно стал основным языком машинного обучения и анализа данных, у него есть конкуренты. На этот раз поговорим про Rust. Он гораздо сложнее Python, но у него есть два важных преимущества — высокая производительность, сопоставимая с C/C++, и надёжный механизм обеспечения безопасности. В статье сравниваем два языка подробнее.

👉Читать статью
😁15👍9🔥4👏3
🏆 Топ-10 Python-библиотек 2023 года

С 2015 года ребята из компании Tryolabs выпускают списки лучших библиотек для Python. Это новый топ за 2023 год. Критерии отбора неизвестны, но посмотреть всё равно интересно — можно найти что-то полезное для себя.

💛LiteLLM — обеспечивает бесшовную интеграцию с различными языковыми моделями, позволяя использовать унифицированный формат как для ввода, так и для вывода вне зависимости от применяемой LLM.
💛PyApp — упрощает распространение и установку Python-приложений. Это достигается за счёт встраивания Python в самоустанавливающийся пакет, совместимый со всеми операционными системами.
💛Taipy — позволяет дата-сайентистам создавать интерактивный Web UI для ML-продуктов.
💛MLX — это библиотека от Apple для машинного обучения на процессорах Apple Silicon.
💛Unstructured — набор инструментов для предварительной обработки текста.
💛ZenML и AutoMLOps — два мощных инструмента для создания MLOps-пайплайнов.
💛WhisperX — библиотека для распознавания речи, способная обнаружить нескольких говорящих и менее склонная к галлюцинациям.
💛AutoGen — позволяет создавать LLM-приложения с несколькими агентами, способными общаться друг с другом для решения задач.
💛Guardrails — помогает заставить LLM возвращать структурированные, качественные ответы определённого типа.
💛Temporian — библиотека для простой и эффективной предобработки и фича-инжиниринга временных данных в Python.
👍20🔥3
👩‍💻 Объясняем, почему строчка 5>4 == True выведет False

Это цепочка сравнений. Выражение можно переписать как 5 > 4 and 4 == True. В первом сравнении получим True, а во втором — False. True and False — это False.

Закрепим знания тестом. В опросе ниже укажите, что выведет следующий код:

a = 5
b = 3
c = 5

print(a == c > b <= (a — 2))
11👍5🔥1
Выберите верный вариант
Anonymous Quiz
66%
True
34%
False
🤔13👍7👏3
🐍 Фреймворк FastStream для эффективной обработки очереди сообщений

Это наследник FastKafka. FastStream упрощает процесс написания продюсеров и консьюмеров для очередей сообщений, автоматически выполняя весь парсинг, работу в сети и генерацию документации.

Преимущества фреймворка:
Поддерживает Kafka, RabbitMQ, NATS, Redis.
Использует возможности Pydantic для сериализации и валидации входящих сообщений.
Управляет зависимостями с помощью встроенной системы DI FastStream.
Полностью совместим с FastAPI.
Оптимизирован для автоматической генерации кода с использованием GPT и Llama.

🧑‍💻Репозиторий фреймворка на GitHub
✍️Блогпост о возможностях FastStream
👍20🔥5🎉1
Вопросы с собеседований, гайды и полезные материалы: собрали свежий #дайджест по Python

🩷 Добавление логирования и уведомлений в веб-проекты на Flask
В статье подробно рассказывается, как создать страницы ошибок и улучшить пользовательский опыт.
🩷 Реальное применение match/case
Статья о том, где может пригодиться конструкция match/case (появилась в Python 3.10).
🩷 100 вопросов для подготовки к собесу Python
Автор статьи на Хабре составил подборку из вопросов с собеседований на позицию джуна Python-разработчика.
🩷 Сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?
Тем временем на том же Хабре разворачиваются баталии по поводу того, что происходит внутри среды исполнения Python для выполнения простого действия — a + b. Указанная по ссылке статья — ответ на недавний пост одного из пользователей.
🩷 Замыкания и декораторы в Python: часть 1 — замыкания
Автор попытался объяснить концепцию замыканий.
10👍4
👏 Вышел Mypy 1.8 — новая версия статического анализатора типов для Python

В Mypy 1.8 добавлены некоторые новые функции, улучшена производительность и исправлены баги.

Вот что было улучшено:
🔸 сообщения об ошибках для super проверок, добавлено больше тестов.
🔸 проверки типов: изменения в обработке isinstance, дополнительные условия для @final и TypedDict.
🔸 Stubtest: лучшая обработка нестандартных значений по умолчанию, поддержка декоратора @type_check_only.

🧑‍💻Прочесть обо всех изменениях можно здесь
👍12
🤓 Нашли репозиторий с большим количеством шпаргалок по Python на русском языке

Есть PDF-ки по:
▫️типам данных;
▫️функциям;
▫️декораторам;
▫️итераторам и генераторам;
▫️различным модулям;
▫️ООП и многому другому.

🔗Изучить можно по этой ссылке
24🔥9👍4
🥚🐔 Что было раньше — курица или яйцо: у Python есть свой ответ на этот вопрос
#memes
😁82🤔2
🐍 Что делает класс ChainMap() модуля collections

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

✏️Лучше всего посмотреть на примере:
d1 = dict(a=1, b=3)
d2 = dict(a=2, b=4, c=6)

from collections import ChainMap

chain = ChainMap(d1, d2)
print(chain['a']) # -> 1
print(chain['c']) # -> 6

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

✏️Обновление или вставка в ChainMap затрагивают только первый входной словарь. Снова посмотрим на примере:
chain['c'] = -1
print(d1) # -> {'a': 1, 'b': 3, 'c': -1}
print(d2) # -> {'a': 2, 'b': 4, 'c': 6}

#код
👍232
🪜 8 уровней использования конструкции match/case в Python

Начиная с Python 3.10 в языке есть структурное сопоставление с шаблоном (structural pattern matching). В новой статье на Medium приводится восемь примеров использования сопутствующей конструкции match/case: от элементарного до продвинутого.

☑️ Простое сопоставление шаблонным строкам
Например, можно избежать многократного использования условных конструкций:
def handle_http_status(status_code):
match status_code:
case 200:
return "Success!"
case 400:
return "Bad Request"

print(handle_http_status(200)) # -> Success!

☑️ Использование подчёркивания для остальных случаев
def handle_http_status(status_code):
match status_code:
case 200:
return "Success!"
case 400:
return "Bad Request"
case _:
return "Unknown Status"

☑️ Комбинирование нескольких паттернов в один случай
Приведённый выше пример можно усложнить:
def handle_http_status(status_code):
match status_code:
case 200:
return "Success!"
case 400 | 401 | 403 | 404:
return "Client Error"

print(handle_http_status(404)) # -> Client Error

☑️ Использование оператора as, чтобы улучшить логирование
def handle_http_status(status_code):
match status_code:
case 200:
return "Success!"
case 400 | 401 | 403 | 404 as Err:
return f"Client Error:{Err}"

print(handle_http_status(404)) # -> Client Error:404

☑️ Cопоставление шаблонным кортежам и спискам
def execute_command(command):
match command:
case ("print", message):
print(f"{message}")
case ["save", filename, data]:
print(f"Saving {data} to {filename}")
case ("delete", filename):
print(f"Deleting {filename}")
case ('todo', *something):
print(f"To do: {' '.join(something)}")
case _:
print("Unknown Command")


execute_command(("print", "Hello, Yang Zhou!")) # -> Hello, Yang Zhou!

☑️ Сопоставление шаблонным словарям
def handle_user_action(action):
match action:
case {"type": "login", "username": user, "password": pw}:
return f"Login attempt by {user} with password {pw}"
case {"type": "logout", "username": user}:
return f"User {user} logged out"
case {"type": "signup", "username": user, "email": email}:
return f"New signup by {user} with email {email}"
case _:
return "Unknown action"


print(handle_user_action({"type": "login", "username": "Yang Zhou", "password": "123456"})) # -> Login attempt by Yang Zhou with password 123456

☑️ Использование дополнительных условий
def handle_user_op(action):
match action:
case "login" if user_not_logged_in():
return "User needs to log in"
case "login":
return "Already logged in"
case "logout":
return "Logging out"
case _:
return "Unknown action"

☑️ Сопоставление шаблонным классам
class Circle:
def __init__(self, radius):
self.radius = radius

class Rectangle:
def __init__(self, length, width):
self.length = length
self.width = width

def process_shape(shape):
match shape:
case Circle(radius=r):
return f"Processing a circle with radius {r}"
case Rectangle(length=l, width=w):
return f"Processing a rectangle with length {l} and width {w}"


🔗Прочитать оригинал статьи можно по этой ссылке
👍504
🔍Насколько легко «войти в айти»?

Мы продолжаем собирать ваши истории о смене профессии и трудоустройстве в IT, чтобы написать большую аналитическую статью.

👉Если вы еще не рассказывали о своем опыте, пройдите короткий опрос по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11
🐍🧫 Создаём игру «Жизнь» Джона Конвея на Python

Напишем алгоритм эволюции клеточных автоматов и разработаем интерфейс командной строки (CLI) для взаимодействия с игрой.

👉Читать статью
👍17😁2
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

В ней:
● Новые возможности в последних версиях Python
● Работа с базами данных и SQL в Python
● Веб-разработка на Django и Flask
● Машинное обучение и анализ данных с помощью Python
● Автоматизация и работа с API на Python
● Тестирование и отладка кода на Python
● Задачи для новичков с решениями

👉Подписаться👈
❤‍🔥4👍2
p1i8awsivji51.jpeg
580.7 KB
✍️Небольшая шпаргалка по дебаггингу в Python

Вот алгоритм действий при ситуации, когда код не работает:

Начните с вопроса: появляется ли ошибка при запуске скрипта?

✔️ Если да:
Посмотрите на тип ошибки. Вот основные:
🔤AttributeError — возникает, когда вы пытаетесь вызвать метод не на том объекте;
🔤SyntaxError — вы где-то ошиблись с синтаксисом;
🔤NameError — используете имя, которое пока не определено;
🔤TypeError — пытаетесь делать что-то с неподходящим по типу объектом;
🔤IOErro — пытаетесь открыть файл, который не существует;
🔤IndentationError — ошибка отступа;
🔤KeyError — пытаетесь обратиться по ключу, которого нет в словаре.

✖️Если нет:
Посмотрите, есть ли в коде циклы (петли) или условные выражения (if). Исходя из ответа на этот вопрос, проводите дальнейший анализ.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172
🐍 Подборка инструментов для самостоятельного парсинга веб-страниц на Python

Requests
Конечно же, нельзя не упомянуть эту библиотеку для выполнения HTTP-запросов. Сама по себе она не является инструментом для парсинга, но часто используется в сочетании с Beautiful Soup.
Beautiful Soup
Библиотека предназначена для извлечения данных из веб-страниц. Она использует анализатор кода HTML и XML и даёт доступ к данным.
Scrapy
Фреймворк для автоматического сбора структурированных данных из веб-страниц. В нём есть всё, что нужно, в том числе модуль для отправки HTTP-запросов и извлечения данных из HTML-страницы.
PySpider
Ещё один фреймворк для веб-парсинга.
Selenium
Инструмент автоматизации браузера. Позволяет написать программу, которая будет как человек открывать нужные веб-страницы и взаимодействовать с ними.
Регулярные выражения, re
Также отметим, что регулярки могут пригодиться для поиска определённых шаблонов в тексте на сайте.

👇А какими полезными инструментами пользуетесь вы?
👍137
💬 Чему бы вы хотели научиться?

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

#интерактив
5