Python Streamlet: элементы, о которых вам следует знать в 2024 году
https://www.youtube.com/watch?v=oUm_f3ziPNw
@python_job_interview
https://www.youtube.com/watch?v=oUm_f3ziPNw
@python_job_interview
✅ Проблема с all
all в Python — это специальный атрибут модуля, определяющий список имен (функций, классов, переменных), которые будут экспортированы при использовании конструкции from module import *. Если all не задан, экспортируются все имена, которые не начинаются с подчеркивания.
❌ Однако проблема заключается в том, что all не является строгим ограничением, и разработчики все равно могут напрямую импортировать другие элементы. Это делает его скорее рекомендацией, чем обязательным правилом.
💡 Автор данной статьи предлагает способы более строгого контроля импорта. Подробности можно узнать здесь.
@python_job_interview
all в Python — это специальный атрибут модуля, определяющий список имен (функций, классов, переменных), которые будут экспортированы при использовании конструкции from module import *. Если all не задан, экспортируются все имена, которые не начинаются с подчеркивания.
❌ Однако проблема заключается в том, что all не является строгим ограничением, и разработчики все равно могут напрямую импортировать другие элементы. Это делает его скорее рекомендацией, чем обязательным правилом.
💡 Автор данной статьи предлагает способы более строгого контроля импорта. Подробности можно узнать здесь.
@python_job_interview
140_python_exercises.pdf
1.7 MB
Решение для более чем 140 основных Python задач, которые часто встречаются на собеседованиях
@python_job_interview
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Проектирование API — это не только работа над функциональностью, но и выбор правильной архитектуры для удовлетворения ваших потребностей.
Вот шесть архитектурных проектов API, с которыми должен быть знаком каждый разработчик:
— Самая популярная архитектура для веб-сервисов.
— Использует HTTP-запросы для связи.
— Не сохраняет состояние и обеспечивает легкую масштабируемость и гибкость.
— Язык запросов для вашего API.
— Позволяет клиентам запрашивать именно то, что им нужно, не больше и не меньше.
— Идеально подходит для оптимизации сетевых запросов.
— Протокол для обмена структурированной информацией в веб-сервисах.
— Известен своими строгими стандартами и встроенной обработкой ошибок.
— Часто используется в приложениях корпоративного уровня.
- Высокопроизводительная среда с открытым исходным кодом.
- Использует HTTP/2 для транспорта и буферы протоколов в качестве языка описания интерфейса.
- Отлично подходит для микросервисов и общения в реальном времени.
- Обеспечивает двустороннюю связь между клиентом и сервером.
- Идеально подходит для приложений реального времени, таких как чат-приложения и обновления в реальном времени.
- Позволяет осуществлять непрерывный обмен данными без накладных расходов HTTP.
- Легкий протокол обмена сообщениями для небольших датчиков и мобильных устройств.
- Ориентирован на минимальное использование полосы пропускания и заряда батареи.
- Обычно используется в приложениях IoT (Интернет вещей).
#doc #cheatsheet #api
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
✍️ Шпаргалка по PyTest
PyTest — это, пожалуй, самый популярный фреймворк для тестирования кода на Python. Данная шпаргалка охватывает следующие темы:
▪️Запуск тестов с разными опциями (-s, -v и другими).
▪️Использование фикстур и параметризации для создания многоразовых тестов.
▪️Работа с маркерами.
🔗 Ссылка на шпаргалку
@python_job_interview
PyTest — это, пожалуй, самый популярный фреймворк для тестирования кода на Python. Данная шпаргалка охватывает следующие темы:
▪️Запуск тестов с разными опциями (-s, -v и другими).
▪️Использование фикстур и параметризации для создания многоразовых тестов.
▪️Работа с маркерами.
🔗 Ссылка на шпаргалку
@python_job_interview
⚡️ LinkedIn_AIHawk — это утилита на основе ИИ, созданная пользователем Reddit, для быстрого поиска работы.
Программа адаптирует ваше резюме под описания вакансий и автоматически рассылает их.
Результаты впечатляют: за сутки автор отправил 1000 резюме, что привело к 50 приглашениям на собеседования. Бот не только корректирует резюме, но и самостоятельно отвечает на вопросы HR-менеджеров от вашего имени.
Установка:
▪ Github
@python_job_interview
Программа адаптирует ваше резюме под описания вакансий и автоматически рассылает их.
Результаты впечатляют: за сутки автор отправил 1000 резюме, что привело к 50 приглашениям на собеседования. Бот не только корректирует резюме, но и самостоятельно отвечает на вопросы HR-менеджеров от вашего имени.
Установка:
bash
$ git clone https://github.com/feder-cr/LinkedIn_AIHawk_automatic_job_application
$ cd LinkedIn_AIHawk_automatic_job_application
$ pip install -r requirements.txt
▪ Github
@python_job_interview
Проверяем отсутствие общих элементов множества и последовательности
Метод sets.isdisjoint() позволяет проверить множество sets на отсутствие общих элементов с последовательностью other. Метод возвращает True, если множество sets не имеет общих элементов с итерируемым объектом other, если имеются общие элементы то вернет False.
Синтаксис:
sets.isdisjoint(other)
Параметры:
other — объект поддерживающий итерацию (кортеж, символ или подстрока).
sets — множество frozenset или set.
@python_job_interview
Метод sets.isdisjoint() позволяет проверить множество sets на отсутствие общих элементов с последовательностью other. Метод возвращает True, если множество sets не имеет общих элементов с итерируемым объектом other, если имеются общие элементы то вернет False.
Синтаксис:
sets.isdisjoint(other)
Параметры:
other — объект поддерживающий итерацию (кортеж, символ или подстрока).
sets — множество frozenset или set.
@python_job_interview
👩💻 Как устроено преобразование типов в Python?
▪Преобразование типов — это преобразование объекта из одного типа данных в другой тип данных.
▪Неявное преобразование типов автоматически выполняется интерпретатором Python.
▪Python позволяет избежать потери данных в неявном преобразовании типов.
▪Явное преобразование типов также называется приведением типов, типы данных объекта преобразуются с использованием предопределенной функции.
▪При приведении типов может произойти потеря данных, поскольку мы приводим объект к определенному типу данных.
Что такое аннотация типов?
В простейшем случае аннотация содержит непосредственно ожидаемый тип. Аннотации для переменных пишут через двоеточие после идентификатора. После этого может идти инициализация значения. Например price: int = 5 Параметры функции аннотируются так же как переменные, а возвращаемое значение указывается после стрелки -> и до завершающего двоеточия. Например def indent_right(s: str, width: int) -> str:.
▪Преобразование типов — это преобразование объекта из одного типа данных в другой тип данных.
▪Неявное преобразование типов автоматически выполняется интерпретатором Python.
▪Python позволяет избежать потери данных в неявном преобразовании типов.
▪Явное преобразование типов также называется приведением типов, типы данных объекта преобразуются с использованием предопределенной функции.
▪При приведении типов может произойти потеря данных, поскольку мы приводим объект к определенному типу данных.
Что такое аннотация типов?
В простейшем случае аннотация содержит непосредственно ожидаемый тип. Аннотации для переменных пишут через двоеточие после идентификатора. После этого может идти инициализация значения. Например price: int = 5 Параметры функции аннотируются так же как переменные, а возвращаемое значение указывается после стрелки -> и до завершающего двоеточия. Например def indent_right(s: str, width: int) -> str:.
This media is not supported in your browser
VIEW IN TELEGRAM
Новый мощный менеджер пакетов создан, чтобы заменить привычный многим pip. Как ни странно, написан он на Rust, что позволяет ему работать значительно быстрее привычных менеджеров.
Пока неизвестно сможет ли он стать новым стандартом, покажет время. Но попробовать и узнать подробнее обо всех особенностях можно уже сейчас по ссылке:
https://astral.sh/blog/uv-unified-python-packaging
#pip #uv #инструмент
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
✍️ Что такое match-case в Python
Конструкцию match-case ещё называют pattern matching (сопоставление с шаблонами). Суть её заключается в следующем:
✅ Оператор match принимает выражение и сравнивает его значение с последовательными шаблонами, заданными как один или несколько блоков case.
Код с match-case более структурирован и легче читается по сравнению с кодом, где прописано большое количество вложенных условий.
#вопросы_с_собеседований
Конструкцию match-case ещё называют pattern matching (сопоставление с шаблонами). Суть её заключается в следующем:
✅ Оператор match принимает выражение и сравнивает его значение с последовательными шаблонами, заданными как один или несколько блоков case.
Код с match-case более структурирован и легче читается по сравнению с кодом, где прописано большое количество вложенных условий.
#вопросы_с_собеседований
Обмен ключами и значениями словаря
Итак, насколько сложно поменять местами значения и ключи в словаре? Совсем несложно, по крайней мере, в Python.
Выше представлен действительно изящный способ манипулирования словарями.
#вопросы_с_собеседований
Итак, насколько сложно поменять местами значения и ключи в словаре? Совсем несложно, по крайней мере, в Python.
Выше представлен действительно изящный способ манипулирования словарями.
#вопросы_с_собеседований
Зачем нужен модуль struct.Struct()?
Модуль struct позволяет преобразовывать между Python-значениями и C-структурами, представленными как объекты bytes. Компактные форматные строки описывают предполагаемые преобразования в/из Python-значений.
Синтаксис:
struct.Struct(format_string)
Аргументы:
format_string — строка формата, описывающая структуру.
@python_job_interview
Модуль struct позволяет преобразовывать между Python-значениями и C-структурами, представленными как объекты bytes. Компактные форматные строки описывают предполагаемые преобразования в/из Python-значений.
Синтаксис:
struct.Struct(format_string)
Аргументы:
format_string — строка формата, описывающая структуру.
@python_job_interview
Оба этих метода являются магическими.
__getattr__
class Missing:
attr = 42
def __getattr__(self, name):
print(f"In __getattr__, asked for {name}")
return 73
m = Missing()
print(m.attr) # 42
print(m.xyz) # In __getattr__, asked for xyz; 73
Пример кода выше показывает, как метод используется для обработки запроса несуществующего атрибута xyz.
__getattribute__
class Always:
attr = 42
def __getattribute__(self, name):
print(f"In __getattribute__, asked for {name}")
return 73
a = Always()
print(a.attr) # In __getattribute__, asked for attr; 73
print(a.xyz) # In __getattribute__, asked for xyz; 73
Здесь же можно увидеть, что метод используется для обработки запросов всех атрибутов, как существующих (attr), так и несуществующих (xyz).
__getattribute__
— это метод, который управляет всеми запросами атрибутов, тогда как __getattr__
вызывается, когда __getattribute__
не находит атрибут. #вопросы_с_собеседований
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Этот репозиторий на GitHub позволяет легко парить веб-страницы и получать выходные данные в форматах, удобных для LLM (JSON, очищенный HTML, markdown).
Особенности
• Поддерживает одновременный обход нескольких URL-адресов
• Извлекает и возвращает все медиатеги (изображения, аудио и видео)
• Извлекает все внешние и внутренние ссылки
• Извлекает метаданные со страницы
• Настраиваемые перехватчики для аутентификации, заголовков и изменений страницы перед сканированием
▪Github: https://github.com/unclecode/crawl4ai
▪Colab: https://colab.research.google.com/drive/1sJPAmeLj5PMrg2VgOwMJ2ubGIcK0cJeX?usp=sharing
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - unclecode/crawl4ai: 🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Don't be shy, join here: https://dis…
🚀🤖 Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper. Don't be shy, join here: https://discord.gg/jP8KfhDhyN - unclecode/crawl4ai
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
МАШИННОЕ ОБУЧЕНИЕ: t.iss.one/ai_machinelearning_big_data
C++ t.iss.one/cpluspluc
Python: t.iss.one/pro_python_code
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/devOPSitsec
АНАЛИЗ Данных: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
Базы данных: t.iss.one/sqlhub
Linux: t.iss.one/linuxacademiya
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Docker: t.iss.one/DevopsDocker
Golang: t.iss.one/golang_interview
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
Собеседования МЛ: t.iss.one/machinelearning_interview
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
МАШИННОЕ ОБУЧЕНИЕ: t.iss.one/ai_machinelearning_big_data
C++ t.iss.one/cpluspluc
Python: t.iss.one/pro_python_code
Хакинг: t.iss.one/linuxkalii
Devops: t.iss.one/devOPSitsec
АНАЛИЗ Данных: t.iss.one/data_analysis_ml
Javascript: t.iss.one/javascriptv
C#: t.iss.one/csharp_ci
Java: t.iss.one/javatg
Базы данных: t.iss.one/sqlhub
Linux: t.iss.one/linuxacademiya
Python собеседования: t.iss.one/python_job_interview
Мобильная разработка: t.iss.one/mobdevelop
Docker: t.iss.one/DevopsDocker
Golang: t.iss.one/golang_interview
React: t.iss.one/react_tg
Rust: t.iss.one/rust_code
PHP: t.iss.one/phpshka
Android: t.iss.one/android_its
Frontend: t.iss.one/front
Big Data: t.iss.one/bigdatai
Собеседования МЛ: t.iss.one/machinelearning_interview
МАТЕМАТИКА: t.iss.one/data_math
Kubernets: t.iss.one/kubernetc
💼 Папка с вакансиями: t.iss.one/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.iss.one/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.iss.one/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.iss.one/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://t.iss.one/addlist/mzMMG3RPZhY2M2Iy
😆ИТ-Мемы: t.iss.one/memes_prog
🇬🇧Английский: t.iss.one/english_forprogrammers
🧠ИИ: t.iss.one/vistehno
🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://t.iss.one/addlist/BkskQciUW_FhNjEy
Когда вы уже написали несколько своих небольших пет-проектов, вы начинаете понимать что чистый код, архитектура и другие паттерны программирования начинают иметь смысл. В масштабируемых, командный или коммерческих проектах это несет особую ценность. Изучив эти принципы, новички получат представление о построении надежных, гибких и легко тестируемых приложений, что позволит им сохранить ясность кодовой базы и возможность ее сопровождения по мере роста их проектов.
В этой статье мы изучим методологии программирования и паттерны проектирования на Python.
Я бы даже сказал, что это компиляция полезных материалов, справочник, большая шпаргалка по всем паттернам.
▪ Читать
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Основные темы включают:
▪️ работу со строками;
▪️ List Comprehension;
▪️ основы алгоритмического дизайна;
▪️ структуры данных;
▪️ классы и объекты.
Цель курса — дать учащимся прочные навыки для работы с научными данными и их обработкой, используя Python.
🔗 Ссылка на курс
#курс #python
@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
— Порождающие паттерны:
🔹Abstract Factory: Family Creator — Создает группы взаимосвязанных объектов.
🔹Builder: Lego Master — Пошагово создает объекты.
🔹Prototype: Clone Maker — Создает копии полностью подготовленных объектов.
🔹Singleton: One and Only — Создаёт объект, который существует в единственном экземпляре.
— Структурные паттерны:
🔹Adapter: Universal Plug — Соединяет объекты с разными интерфейсами.
🔹Bridge: Function Connector — Связывает то, как объект работает, с тем, что он делает.
🔹Composite: Tree Builder — Формирует древовидные структуры из простых и сложных частей.
🔹Decorator: Customizer — Добавляет новые возможности объектам, не изменяя их основную структуру.
🔹Facade: One-Stop-Shop — Представляет всю систему через один упрощенный интерфейс.
🔹Flyweight: Space Saver — Эффективно использует небольшие, многократно используемые объекты.
🔹Proxy: Stand-In Actor — Представляет другой объект, управляя доступом или действиями.
— Поведенческие паттерны:
🔹Chain of Responsibility: Request Relay — Передает запросы через цепочку объектов до тех пор, пока он не будет обработан.
🔹Command: Task Wrapper — Превращает запрос в объект, готовый к выполнению.
🔹Iterator: Collection Explorer — Доступ к элементам коллекции по одному.
🔹Mediator: Communication Hub — Упрощает взаимодействие между различными классами.
🔹Memento: Time Capsule — Сохраняет и восстанавливает состояние объекта.
🔹Observer: News Broadcaster — Уведомляет классы о изменениях в других объектах.
🔹Visitor: Skillful Guest — Добавляет новые операции в класс, не изменяя его.
Please open Telegram to view this post
VIEW IN TELEGRAM