DEV Community

Cover image for 101 вопрос Python-разработчику
𝘼𝙄𝙊𝘽𝙊𝙔
𝘼𝙄𝙊𝘽𝙊𝙔

Posted on

101 вопрос Python-разработчику

1) Что такое python?
2) В каком году написана первая статья про python?
3) Какие типы данных есть в python? На какие классы делятся?
4) Что такое лямбда-функция? Какое у неё назначение?
5) Что такое PEP 8?
6) Как получить документацию по атрибутам объекта?
7) Что такое docstring?
8) В чём разница между типами list и tuple?
9) Может ли быть индекс списка отрицательным?
10) Что значит конструкция pass?
11) Чем отличаются многопоточное и многопроцессорное приложение?
12) Как просмотреть методы объекта?
13) Что такое *args и **kwargs в определении функции?
14) Python полностью поддерживает ООП?
15) Что такое globals() и locals()?
16) Что хранится в атрибуте dict?
17) Как проверить файл .py на синтаксические ошибки, не запуская его?
18) Зачем в python используется ключевое слово self?
19) Что такое декоратор? Как написать собственный?
20) Что может быть ключом в словаре?
21) В чём разница между пакетами и модулями?
22) Как перевести строку, содержащую двоичный код (1 и 0), в число?
23) Для чего используется функция init?
24) Что такое слайс(slice)?
25) Как проверить, что один кортеж содержит все элементы другого кортежа?
26) Почему пустой список нельзя использовать как аргумент по умолчанию?
27) Что такое @classmethod, @staticmethod, @property?
28) Что такое синхронный код?
29) Что такое асинхронный код? Приведите пример.
30) Каким будет результат следующего выражения?

>>> -30 % 10
Enter fullscreen mode Exit fullscreen mode

31) Для чего нужен метод id()?
32) Что такое итератор?
33) Что такое генератор? Чем отличается от итератора?
34) Для чего используется ключевое слово yield?
35) Чем отличаются iter и next?
36) Что такое контекстный менеджер?
37) Как сделать python-скрипт исполняемым в различных операционных системах?
38) Как сделать копию объекта? Как сделать глубокую копию объекта?
39) Опишите принцип работы сборщика мусора в python
40) Как использовать глобальные переменные? Это хорошая идея?
41) Для чего в классе используется атрибут slots?
42) Какие пространства имен существуют в python?
43) Как реализуется управление памятью в python?
44) Что такое метаклассы и в каких случаях их следует использовать?
45) Зачем нужен pdb?
46) Каким будет результат следующего выражения?

>>> [0, 1][10:]
Enter fullscreen mode Exit fullscreen mode

47) Как создать класс без слова class?
48) Как перезагрузить импортированный модуль?
49) Напишите декоратор, который будет перехватывать ошибки и повторять функцию максимум N раз.
50) Каким будет результат следующего выражения?

>>> len(' '.join(list(map(str, [[0], [1]]))))
Enter fullscreen mode Exit fullscreen mode

51) Python — легкий язык. Согласны?
52) Какие проблемы есть в python?
53) Когда будет выполнена ветка else в конструкции try...except...else?
54) Поддерживает ли python множественное наследование?
55) Как dict и set реализованы внутри? Какова сложность получения элемента? Сколько памяти потребляет каждая структура?
56) Что такое MRO? Как это работает?
57) Как аргументы передаются в функции: по значению или по ссылке?
58) С помощью каких инструментов можно выполнить статический анализ кода?
59) Что будет напечатано в результате выполнения следующего кода?

import sys
arr_1 = []
arr_2 = arr_1
print(sys.getrefcount(arr_1))
Enter fullscreen mode Exit fullscreen mode

60) Что такое GIL? Почему GIL всё ещё существует?
61) Опишите процесс компиляции в python.
62) Как тиражировать python код?
63) Что такое дескрипторы? Есть ли разница между дескриптором и декоратором?
64) Почему всякий раз, когда python завершает работу, не освобождается вся память?
65) Что будет напечатано в результате выполнения следующего кода?

class Variable:

   def __init__(self, name, value):
      self._name = name
      self._value = value

   @property
   def value(self):
      print(self._name, 'GET', self._value)
      return self._value

   @value.setter
   def value(self, value):
      print(self._name, 'SET', self._value)
      self._value = value

var_1 = Variable('var_1', 'val_1')
var_2 = Variable('var_2', 'val_2')
var_1.value, var_2.value = var_2.value, var_1.value
Enter fullscreen mode Exit fullscreen mode

66) Что такое интернирование строк? Почему это есть в python?
67) Как упаковать бинарные зависимости?
68) Почему в python нет оптимизации хвостовой рекурсии? Как это реализовать?
69) Что такое wheels и eggs? В чём разница?
70) Как получить доступ к модулю, написанному на python из C и наоборот?
71) Как ускорить существующий код python?
72) Что такое pycache? Что такое файлы .pyc?
73) Что такое виртуальное окружение?
74) Python — это императивный или декларативный язык?
75) Что такое менеджер пакетов? Какие менеджеры пакетов вы знаете?
76) В чём преимущества массивов numpy по сравнению с (вложенными) списками python?
77) Вам нужно реализовать функцию, которая должна использовать статическую переменную. Вы не можете писать код вне функции и у вас нет информации о внешних переменных (вне вашей функции). Как это сделать?
78) Что будет напечатано в результате выполнения следующего кода?

def f_g():
   yield 43
   return 66

print(f_g())
Enter fullscreen mode Exit fullscreen mode

79) Как имплементировать словарь с нуля?
80) Напишите однострочник, который будет подсчитывать количество заглавных букв в файле.
81) Что такое файлы .pth?
82) Какие функции из collections и itertools вы используете?
83) Что делает флаг PYTHONOPTIMIZE?
84) Что будет напечатано в результате выполнения следующего кода?

arr = [[]] * 5
arr_1, arr_2 = arr, arr
for k, arr in enumerate((arr_1, arr_2)):
   arr[0].append(k)
arr = (arr_1, 5, arr_2)
print(arr)
Enter fullscreen mode Exit fullscreen mode

85) Какие переменные среды, влияющие на поведение интерпретатора python, вы знаете?
86) Что такое Cython? Что такое IronPython? Что такое PyPy? Почему они до сих пор существуют и зачем?
87) Как перевернуть генератор?
88) Приведите пример использования filter и reduce над итерируемым объектом.
89) Что будет напечатано в результате выполнения кода?

>>> print(_)
Enter fullscreen mode Exit fullscreen mode

90) Чем фреймворк отличается от библиотеки?
91) Расположите функции в порядке эффективности, объясните выбор.

def f1(arr):
   l1 = sorted(arr)
   l2 = [i for i in l1 if i < .5]
   return [i * i for i in l2]

def f2(arr):
   l1 = [i for i in arr if i < .5]
   l2 = sorted(l1)
   return [i * i for i in l2]

def f3(arr):
   l1 = [i * i for i in arr]
   l2 = sorted(l1)
   return [i for i in l1 if i < (.5 * .5)]
Enter fullscreen mode Exit fullscreen mode

92) Произошла утечка памяти в рабочем приложении. Как бы вы начали отладку?
93) В каких ситуациях возникает исключение NotImplementedError?
94) Что не так с этим кодом? Зачем это нужно?

if __debug__:
   assert False, ("error")
Enter fullscreen mode Exit fullscreen mode

95) Что такое магические методы(dunder)?
96) Объясните, почему такое возможно?

_MangledGlobal__mangled = "^_^"

class MangledGlobal:

   def test(self):
       return __mangled

assert MangledGlobal().test() == "^_^"
Enter fullscreen mode Exit fullscreen mode

97) Что такое monkey patching? Приведите пример использования.
98) Как работать с транзитивными зависимостями?
99) Что будет напечатано в окне браузера?

<html>
   <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
   <script defer src="https://pyscript.net/alpha/pyscript.js"></script>
   <body>
      <py-script>
         print(__name__)
         print(__file__)
      </py-script>
   </body>
</html>
Enter fullscreen mode Exit fullscreen mode

100) Какие новые функции добавлены в python 3.10?
101) Почему иногда python так долго запускается (в Windows)?

Latest comments (0)