Python вопросы с собеседований
24.8K subscribers
508 photos
16 videos
17 files
404 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
加入频道
⚡️ LinkedIn_AIHawk — это утилита на основе ИИ, созданная пользователем Reddit, для быстрого поиска работы.

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

Результаты впечатляют: за сутки автор отправил 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
Простой сравнительный график по алгоритмической сложности

@python_job_interview
👩‍💻 Как устроено преобразование типов в Python?

Преобразование типов — это преобразование объекта из одного типа данных в другой тип данных.

Неявное преобразование типов автоматически выполняется интерпретатором Python.

Python позволяет избежать потери данных в неявном преобразовании типов.

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

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

Что такое аннотация типов?

В простейшем случае аннотация содержит непосредственно ожидаемый тип. Аннотации для переменных пишут через двоеточие после идентификатора. После этого может идти инициализация значения. Например price: int = 5 Параметры функции аннотируются так же как переменные, а возвращаемое значение указывается после стрелки -> и до завершающего двоеточия. Например def indent_right(s: str, width: int) -> str:.
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 uv — менеджер пакетов нового поколения

Новый мощный менеджер пакетов создан, чтобы заменить привычный многим 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 более структурирован и легче читается по сравнению с кодом, где прописано большое количество вложенных условий.

#вопросы_с_собеседований
Обмен ключами и значениями словаря

Итак, насколько сложно поменять местами значения и ключи в словаре? Совсем несложно, по крайней мере, в Python.

Выше представлен действительно изящный способ манипулирования словарями.


#вопросы_с_собеседований
Зачем нужен модуль struct.Struct()?

Модуль struct позволяет преобразовывать между Python-значениями и C-структурами, представленными как объекты bytes. Компактные форматные строки описывают предполагаемые преобразования в/из Python-значений.

Синтаксис:
struct.Struct(format_string)

Аргументы:
format_string — строка формата, описывающая структуру.

@python_job_interview
💩 Какова разница между методами __getattr__ и __getattribute__?

Оба этих метода являются магическими.

🔘__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
🖥 ⚡️ Crawl4AI v0.2.77 🕷️🤖

Этот репозиторий на 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
⚡️Легкий способ получать свежие обновления и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:

МАШИННОЕ ОБУЧЕНИЕ: t.me/ai_machinelearning_big_data
C++ t.me/cpluspluc
Python: t.me/pro_python_code
Хакинг: t.me/linuxkalii
Devops: t.me/devOPSitsec
АНАЛИЗ Данных: t.me/data_analysis_ml
Javascript: t.me/javascriptv
C#: t.me/csharp_ci
Java: t.me/javatg
Базы данных: t.me/sqlhub
Linux: t.me/linuxacademiya
Python собеседования: t.me/python_job_interview
Мобильная разработка: t.me/mobdevelop
Docker: t.me/DevopsDocker
Golang: t.me/golang_interview
React: t.me/react_tg
Rust: t.me/rust_code
PHP: t.me/phpshka
Android: t.me/android_its
Frontend: t.me/front
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
МАТЕМАТИКА: t.me/data_math
Kubernets: t.me/kubernetc


💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://yangx.top/addlist/2Ls-snqEeytkMDgy
Папка FRONTEND: https://yangx.top/addlist/mzMMG3RPZhY2M2Iy

😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno

🎓954ГБ ОПЕНСОРС КУРСОВ: @courses
📕Ит-книги бесплатно: https://yangx.top/addlist/BkskQciUW_FhNjEy
🖥 Справочник-шпаргалка по методологиям и паттернам на Python

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

В этой статье мы изучим методологии программирования и паттерны проектирования на Python.

Я бы даже сказал, что это компиляция полезных материалов, справочник, большая шпаргалка по всем паттернам.

Читать

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Scientific Computing with Python — это бесплатный интерактивный курс от FreeCodeCamp, созданный для изучения анализа данных с помощью Python.

Основные темы включают:

▪️ работу со строками;
▪️ 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
Давайте проверим ваши знания работы бинарного дерева поиска. Посмотрите на изображение и ответьте на вопрос ниже.

#викторина #bst
🤫 Некоторые популярные методы аутентификации

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

🔵 Аутентификация с помощью токенов:
Использует сгенерированные токены, такие как JSON Web Tokens (JWT), которые обмениваются между клиентом и сервером, обеспечивая повышенную безопасность без необходимости отправки учетных данных с каждым запросом.
Идеально подходит для более безопасных и масштабируемых систем.

🔵 Аутентификация OAuth:
Позволяет сторонним приложениям получать ограниченный доступ к ресурсам пользователя без раскрытия учетных данных, выдавая токены доступа после аутентификации пользователя.
Подходит для ситуаций, требующих контролируемого доступа к ресурсам пользователя сторонними приложениями или сервисами.

🔵 Аутентификация с использованием API-ключей:
Назначает уникальные ключи пользователям или приложениям, которые отправляются в заголовках или параметрах; несмотря на простоту, может не обладать всеми преимуществами безопасности, как методы на основе токенов или OAuth.
Удобна для простого контроля доступа в менее чувствительных средах или для предоставления доступа к определённым функциям без необходимости предоставления разрешений, привязанных к конкретному пользователю.

💬 Какой метод аутентификации вы считаете наиболее эффективным с точки зрения обеспечения безопасности и удобства использования в ваших приложениях?

@python_job_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы работаете в области данных, вам предстоит пройти собеседование по SQL

Вот несколько кратких советов которые вы должны знать на собеседовании по SQL.

Начинающим
- Уметь объяснить различные типы объединений. Иногда я видел, что этот вопрос задается рекрутерами в качестве отборочного, чтобы убедиться, что они хотят взять вас на работу.
- Знать, когда в порядке выполнения операций в SQL используется HAVING, а когда WHERE.

Mid
- Понимать, как использовать оператор CASE внутри функции SUM или COUNT
- Знать, по крайней мере, 1-2 способа оптимизации запроса, и если вы решите, что одним из этих способов является создание индекса в таблице, то вы должны знать, какие плюсы и минусы есть у индекса.

Продвинутым
- Знать, как решить SQL задачу с использованием оконной функции и без нее.
- Понимать и уметь объяснить, что такое коррелированный подзапрос.
- Просто сошлитесь на то, что вы посмотрите на план выполнения запроса. Рекрутеры будут шокированы тем, что вы вообще знаете, что это такое.

@python_job_interview