Библиотека собеса по Python | вопросы с собеседований
6.16K subscribers
602 photos
9 videos
297 links
Вопросы с собеседований по Python и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/6587aafa

Для обратной связи: @proglibrary_feeedback_bot
加入频道
Что такое async?

Async — это синтаксис для создания асинхронного кода на основе корутин.
Асинхронное программирование позволяет выполнять операции вне основного потока выполнения программы.

С помощью async def определяются асинхронные функции-корутины. Такие функции не выполняются сразу, а возвращают объект-корутину.
Для запуска корутин используется await. Это передает управление обратно в событийный цикл до завершения корутины.

Asyncio — стандартный модуль для работы с асинхронным кодом. Он содержит событийный цикл и различные классы.

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

*Корутины полезны для операций ввода/вывода, ожидания сети, обращения к БД — там, где нужно не блокировать основной поток.
Как сравниваются последовательности?

При сравнении происходит поэлементное (по порядку) сравнение элементов последовательностей.

Сначала сравниваются первые элементы, если они равны — вторые и т.д.

Если при сравнении очередных элементов, элемент одной последовательности оказался больше элемента другой — то результат сравнения определен.

Если дошли до конца одной последовательности, то большей считается более длинная.

Таким образом, сравнение идет поэлементно слева направо до тех пор, пока элементы равны или пока не закончится одна из последовательностей. Это называется лексикографическим порядком сравнения.
Что такое PyTorch?

PyTorch — это библиотека машинного обучения, разработанная Facebook. Она позволяет создавать нейронные сети и обучать их на графических процессорах, что ускоряет процесс обучения и улучшает точность моделей.

В этом примере мы загружаем датасет MNIST с рукописными цифрами, создаем простую нейронную сеть с двумя полносвязными слоями и функцией активации ReLU, обучаем ее с помощью стохастического градиентного спуска, а затем тестируем результат на отложенных данных.

При этом мы используем функцию потерь CrossEntropyLoss, которая подходит для задач классификации, и оптимизатор SGD.
🐍 У нас есть еженедельная email-рассылка, посвященная последним открытиям и тенденциям в мире Python.

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

👉Подписаться👈
Что такое коллизия?

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

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

Чтобы решить проблему коллизий, в Python используются разные стратегии, например:
— Цепочки: списки элементов внутри ячейки таблицы.
— Открытая адресация: подбор следующей свободной ячейки.
— Перехеширование: генерация нового хеша при коллизии.

Уменьшение коллизий позволяет повысить производительность операций с хеш-таблицами и словарями.
Для чего могут применять конструкцию try finally без except?

Конструкция try-finally без блока except может применяться в следующих случаях:

— Для закрытия файлов после работы с ними, даже если произошла ошибка.
— Для освобождения ресурсов, таких как сетевые соединения или блокировки.
— Для отмены каких-либо длительных операций или процессов в случае прерывания работы программы. Например, отмена запущенных потоков.
— Для логирования или уведомления о завершении блока кода, даже если в нем произошла ошибка.
— Для выполнения необходимой логики по завершении работы блока кода вне зависимости от результата, например сброс счетчиков.
В каких случаях можно обработать SyntaxError?

SyntaxError — это исключение, которое генерируется интерпретатором при обнаружении ошибки в синтаксисе кода.

Обработать это исключение можно в следующих случаях:

— При разборе и выполнении кода, сгенерированного пользователем в приложении (например, в песочнице).
— При динамическом изменении и выполнении кода с помощью eval() или exec().
— В REPL оболочках для обработки ошибок в интерактивном режиме.
— В инструментах для проверки и валидации кода на корректность синтаксиса.
— В интерпретаторах и компиляторах для информирования пользователя об ошибке.
— В системах автодополнения кода для обработки некорректного синтаксиса.
— В средствах отладки и трассировки для выявления ошибок в выполняемом коде.
Выведите список файлов в указанной директории

Ответ на картинке.
Как узнать размер в байтах?

Функция на картинке возвращает длину строки в байтах, что пригодится, когда нужно будет узнать размер строковой переменной в памяти.
Узнаем сколько осталось времени до следующего нового года?

С помощью следующего фрагмента кода мы узнаем как долго нам еще ждать наступления 2024 года.
Что делает встроенная функция help()?

Это простой способ получения доступа к документации без интернета для любой функции, ключевого слова или модуля. Работает и для внешних пакетов, но не всегда корректно.
Ключевое слово assert

Если нужно симулировать или выполнить отладку кода, чтобы узнать, что именно происходит на определенном этапе, то assert в Python отлично для этого подходят.

Именно инструмент отладки останавливает программу, как только возникает какая-то ошибка. Он также показывает, где именно она произошла.

В нашем примере мы проверяем будет ли массив пуст или нет.
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
Преобразование списка в словарь

В этом примере мы преобразуем список формата [key_1, value_1, key_2, value_2] в словарь {key_1: value_1, key_2: value_2}.

Пример преобразования представлен на картинке.
Генерируем ip адреса

С помощью следующего фрагмента кода мы можем с легкостью сгенерировать ip адрес.
Запустится ли этот код на Python 3? Если да, то что он выведет?

sys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет «True is False».

Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
Что такое SOLID?

SOLID — это акроним принципов объектно-ориентированного программирования, которые помогают писать гибкий, поддерживаемый и расширяемый код:

S — Single-responsibility principle (Принцип единственной ответственности).
O — Open-closed principle (Принцип открытости/закрытости).
L — Liskov substitution principle (Принцип подстановки Лисков).
I — Interface segregation principle (Принцип разделения интерфейса).
D — Dependency Inversion Principle (Принцип инверсии зависимостей).

Основные идеи SOLID:
— Каждый класс должен нести единственную ответственность.
— Классы должны быть открыты для расширения, но закрыты для модификации.
— Подклассы должны быть взаимозаменяемы со своими базовыми классами.
— Множество узких интерфейсов лучше, чем один широкий.
— Зависимости должны строиться на абстракциях, а не конкретных классах.
Как выполняется обработка исключений в Python?

Для обработки исключений Python предоставляет конструкцию из трех слов: try, except и finally.

Синтаксис выглядит примерно так:
try:
# попробовать сделать это
except:
# если блок try не сработал, попробовать это
finally:
# всегда делать это

На картинке представлен упрощенный пример такой конструкции. Здесь блок try терпит неудачу, поскольку мы не можем складывать целые числа со строками. Блок except устанавливает val = 10, а затем блок finally выводит complete.
Узнаем точное время с помощью Python

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

Функция exit создана для удобства работы в интерактивном режиме, но не рекомендуется использовать её внутри скриптов.

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

Использовать sys.exit() стоит, так как этот метод есть в стандартном модуле и всегда там доступен. А ещё это довольно явный и понятный способ завершения программы.