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
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:]
47. Как создать класс без слова class?
48. Как перезагрузить импортированный модуль?
49. Напишите декоратор, который будет перехватывать ошибки и повторять функцию максимум N раз.
50. Каким будет результат следующего выражения?
>>> len(' '.join(list(map(str, [[0], [1]]))))
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))
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
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())
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)
85. Какие переменные среды, влияющие на поведение интерпретатора python, вы знаете?
86. Что такое Cython? Что такое IronPython? Что такое PyPy? Почему они до сих пор существуют и зачем?
87. Как перевернуть генератор?
88. Приведите пример использования filter и reduce над итерируемым объектом.
89. Что будет напечатано в результате выполнения кода?
>>> print(_)
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)]
92. Произошла утечка памяти в рабочем приложении. Как бы вы начали отладку?
93. В каких ситуациях возникает исключение NotImplementedError?
94. Что не так с этим кодом? Зачем это нужно?
if __debug__:
assert False, ("error")
95. Что такое магические методы (dunder)?
96. Объясните, почему такое возможно?
_MangledGlobal__mangled = "^_^"
class MangledGlobal:
def test(self):
return __mangled
assert MangledGlobal().test() == "^_^"
97. Что такое monkey patching? Приведите пример использования.
98. Как работать с транзитивными зависимостями?
99. Что будет напечатано в окне браузера?
print(__name__)
print(__file__)
100. Какие новые функции добавлены в python 3.10?
101. Почему иногда python так долго запускается (в Windows)?