Учебники

30) Интервью с Python: вопросы и ответы

1) Что такое Python? Каковы преимущества использования Python?

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

2) Что такое PEP 8?

PEP 8 — это соглашение о кодировании, набор рекомендаций о том, как написать код на Python более читабельным.

3) Что такое маринование и расслоение?

Модуль Pickle принимает любой объект Python и преобразует его в строковое представление и выгружает его в файл с помощью функции dump, этот процесс называется травлением. При этом процесс извлечения оригинальных объектов Python из сохраненного строкового представления называется unpickling.

4) Как интерпретируется Python?

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

5) Как память управляется в Python?

  • Память Python управляется частным пространством кучи Python. Все объекты Python и структуры данных находятся в частной куче. Программист не имеет доступа к этой частной куче, а интерпретатор заботится о этой частной куче Python.
  • Выделение пространства кучи Python для объектов Python выполняется менеджером памяти Python. Базовый API предоставляет программисту доступ к некоторым инструментам для написания кода.
  • В Python также есть встроенный сборщик мусора, который перерабатывает всю неиспользуемую память, освобождает память и делает ее доступной для кучи.

6) Какие инструменты помогают найти ошибки или выполнить статический анализ?

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

7) Что такое Python-декораторы?

Декоратор Python — это конкретное изменение, которое мы вносим в синтаксис Python, чтобы легко изменять функции.

8) В чем разница между списком и кортежем?

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

9) Как аргументы передаются по значению или по ссылке?

Все в Python является объектом, и все переменные содержат ссылки на объекты. Значения ссылок соответствуют функциям; в результате вы не можете изменить значение ссылок. Тем не менее, вы можете изменить объекты, если они изменчивы.

10) Что такое Dict и List?

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

11) Какие встроенные типы предоставляет Python?

Существуют изменяемые и неизменяемые типы встроенных типов питонов. Изменяемые встроенные типы.

  • Список
  • наборы
  • Словари

Неизменные встроенные типы

  • Струны
  • Кортеж
  • чисел

12) Что такое пространство имен в Python?

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

13) Что такое лямбда в Python?

Это анонимная функция с одним выражением, часто используемая как встроенная функция.

14) Почему у лямбда-форм в python нет операторов?

Лямбда-форма в python не имеет операторов, так как она используется для создания нового объекта функции, а затем возвращает их во время выполнения.

15) Что такое проход в Python?

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

16) В Python что такое итераторы?

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

17) Что такое unittest в Python?

Фреймворк модульного тестирования в Python известен как unittest. Он поддерживает совместное использование настроек, автоматическое тестирование, код завершения для тестов, объединение тестов в коллекции и т. Д.

18) В Python что такое нарезка?

Механизм выбора диапазона элементов из типов последовательности, таких как список, кортеж, строки и т. Д., Известен как нарезка.

19) Что такое генераторы в Python?

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

20) Что такое строка документации в Python?

Строка документации Python известна как docstring, это способ документирования функций, модулей и классов Python.

21) Как вы можете скопировать объект в Python?

Чтобы скопировать объект в Python, вы можете попробовать copy.copy () или copy.deepcopy () для общего случая. Вы не можете скопировать все объекты, но большинство из них.

22) Что такое отрицательный индекс в Python?

Последовательности Python могут индексироваться в положительных и отрицательных числах. Для положительного индекса 0 — первый индекс, 1 — второй индекс и так далее. Для отрицательного индекса (-1) — последний индекс, (-2) — второй последний индекс и т. Д.

23) Как вы можете преобразовать число в строку?

Чтобы преобразовать число в строку, используйте встроенную функцию str (). Если вы хотите восьмеричное или шестнадцатеричное представление, используйте встроенную функцию oct () или hex ().

24) В чем разница между Xrange и range?

Xrange возвращает объект xrange, а range возвращает список и использует ту же память, независимо от размера диапазона.

25) Что такое модуль и пакет в Python?

В Python модуль является способом структурирования программы. Каждый программный файл Python представляет собой модуль, который импортирует другие модули, такие как объекты и атрибуты.

Папка программы Python представляет собой пакет модулей. Пакет может иметь модули или подпапки.

26) Укажите, каковы правила для локальных и глобальных переменных в Python?

Локальные переменные : если переменной в любом месте тела функции назначается новое значение, оно считается локальным.

Глобальные переменные : те переменные, на которые ссылаются только внутри функции, являются неявно глобальными.

27) Как вы можете поделиться глобальными переменными между модулями?

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

28) Объясните, как вы можете сделать исполняемый файл Python Script в Unix?

Чтобы сделать исполняемый файл Python Script в Unix, вам нужно сделать две вещи:

  • Режим файла сценария должен быть исполняемым и
  • первая строка должна начинаться с # (#! / usr / local / bin / python)

29) Объясните, как удалить файл в Python?

С помощью команды os.remove (имя файла) или os.unlink (имя файла)

30) Объясните, как вы можете генерировать случайные числа в Python?

Чтобы генерировать случайные числа в Python, вам нужно импортировать команду как

импортировать случайный

random.random ()

Это возвращает случайное число с плавающей запятой в диапазоне [0,1)

31) Объясните, как вы можете получить доступ к модулю, написанному на Python из C?

Вы можете получить доступ к модулю, написанному на Python из C, следующим способом:

Module = = PyImport_ImportModule («<modulename>»);

32) Упоминать использование оператора // в Python?

Это оператор деления по полу, который используется для деления двух операндов с результатом как частное, показывающее только цифры перед десятичной запятой. Например, 10 // 5 = 2 и 10.0 // 5.0 = 2.0.

33) Укажите пять преимуществ использования Python?

  • Python включает в себя огромную стандартную библиотеку для большинства интернет-платформ, таких как электронная почта, HTML и т. Д.
  • Python не требует явного управления памятью, так как сам интерпретатор выделяет память для новых переменных и автоматически их освобождает
  • Обеспечить удобочитаемость благодаря использованию квадратных скобок
  • Легко учиться для начинающих
  • Наличие встроенных типов данных экономит время и усилия на программирование от объявления переменных.

34) Упоминание об использовании функции разделения в Python ?

Использование функции разделения в Python заключается в том, что она разбивает строку на более короткие строки с использованием определенного разделителя. Это дает список всех слов, присутствующих в строке.

35) Объясните, что такое Flask и его преимущества ?

Flask — это веб-фреймворк для Python, основанный на лицензии BSD «Werkzeug, Jinja 2 и благие намерения». Werkzeug и jingja — две из его зависимостей.

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

36) Укажите, в чем разница между Джанго, Пирамидой и Колбой?

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

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

Как и Pyramid, Django можно использовать и для больших приложений. Включает ORM.

37) Укажите, что такое Flask-WTF и каковы их особенности?

Flask-WTF предлагает простую интеграцию с WTForms. Особенности включают в себя для Flask WTF являются

  • Интеграция с wtforms
  • Безопасная форма с токеном csrf
  • Глобальная защита CSRF
  • Интернационализация интеграции
  • Поддержка рекапчи
  • Загрузка файлов, которая работает с Flask Uploads

38) Объясните, как обычно работает скрипт Flask?

Обычный способ работы скрипта фляги:

  • Либо это должен быть путь импорта для вашего приложения
  • Или путь к файлу Python

39) Объясните, как вы можете получить доступ к сеансам во Flask?

Сессия в основном позволяет запоминать информацию от одного запроса к другому. В колбе используется подписанный файл cookie, чтобы пользователь мог просматривать содержимое сеанса и изменять его. Пользователь может изменить сеанс, только если у него есть секретный ключ Flask.secret_key.

40) Является ли Flask моделью MVC и если да, приведите пример, показывающий модель MVC для вашего приложения?

По сути, Flask — это минималистичный фреймворк, который ведет себя так же, как и MVC. Таким образом, MVC идеально подходит для Flask, и шаблон для MVC мы рассмотрим в следующем примере.

из колбы импортная колба

app = Flask (_name_)

@ App.route ( «/»)

Def hello ():

вернуть «Hello World»

app.run (debug = True)

В этом коде твой,

  • Конфигурационная часть будет

из колбы импортная колба

app = Flask (_name_)

  • Просмотр части будет

@ App.route ( «/»)

Def hello ():

вернуть «Hello World»

  • Пока вы модель или основная часть будет

app.run (debug = True)

41) Объясните соединение с базой данных в Python Flask?

Flask поддерживает приложение на основе базы данных (RDBS). Такая система требует создания схемы, которая требует передачи файла shema.sql в команду sqlite3. Поэтому вам нужно установить команду sqlite3, чтобы создать или инициировать базу данных во Flask.

Flask позволяет запрашивать базу данных тремя способами

  • before_request (): они вызываются перед запросом и не передают аргументов
  • after_request (): они вызываются после запроса и передают ответ, который будет отправлен клиенту
  • teardown_request (): они вызываются в ситуации, когда возникает исключение, и ответ не гарантируется. Они вызываются после того, как ответ был построен. Им не разрешено изменять запрос, а их значения игнорируются.

42) У вас есть несколько серверов Memcache под управлением Python, на которых один из серверов memcacher выходит из строя, и на нем есть ваши данные. Будет ли он когда-нибудь пытаться получить ключевые данные с этого одного отказавшего сервера?

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

43) Объясните, как можно минимизировать простои сервера Memcached в вашей разработке Python?

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

44) Объясните, что такое эффект Dogpile? Как вы можете предотвратить этот эффект?

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

45) Объясните, как Memcached не должен использоваться в вашем проекте Python?

  • Распространенное злоупотребление Memcached — использовать его как хранилище данных, а не как кеш
  • Никогда не используйте Memcached в качестве единственного источника информации, необходимой для запуска вашего приложения. Данные всегда должны быть доступны из другого источника.
  • Memcached — это просто хранилище ключей или значений и не может выполнять запросы к данным или перебирать содержимое для извлечения информации.
  • Memcached не предлагает никакой формы безопасности ни в шифровании, ни в аутентификации.