Python 3

Вопросы:

1. Язык Python. Определение. Плюсы и минусы.

2. Какие есть типы данных в Python?

3. Как работает Python: интерпретатор, байт-код, PVM

4. Что такое магические методы в python?

5. Что такое последовательность Sequence в python?

6. Какие операции поддерживают большинство последовательностей?

7. Какие виды строк бывают в питоне?

8. Какие есть основные методы работы со строками?

9. Можно ли изменить отдельный символ внутри строки?

10. Как кодировать и декодировать строки? Зачем это нужно?

11. Чем список отличается от кортежа?

12. Что такое диапазон?

13. Как сделать список уникальным (без повторяющихся элементов)?

14. Есть кортеж из трех элементов. Назначить переменным a, b, c его значения

15. Как сравниваются последовательности?

16. Какой объект называется хэшируемым?

17. Что такое множество?

18. Для чего применяются множества?

19. Какие операции можно производить над множествами?

20. Как происходит проверка множеств на равенство?

21. Что такое отображение?

22. Какие нюансы есть в использовании чисел как ключей?

23. Какие основные операции можно производить над отображениями?

24. Что возвращает метод items словаря?

25. Как отсортировать список словарей по определенному полю?

26. Что может являться ключом словаря?

27. Есть два списка: ключи и значения. Как составить из них словарь?

28. Как работает хэш-таблица в python?

29. Где будет быстрее поиск, а где проход по всем элементам и почему: dict, list, set, tuple

30. Что такое args, kwargs. В каких случаях они требуются?

31. Для чего нужны операторы * и **?

32. В чём проблема использовать изменяемые объекты как параметры по-умолчанию ?

33. Можно ли передавать функцию в качестве аргумента другой функции

34. Можно ли объявлять функцию внутри другой функции. Где она будет видна/доступна?

35. Что такое лямбда. Какова её особенность?

36. Можно ли использовать pass или raise внутри лямбда функции?

37. Как передаются значения аргументов в функцию или метод?

38. Что такое замыкание?

39. Что такое коллекция в python? Какие есть коллекции в дополнение к основным, для чего они нужны?

40. Что такое итерабельный объект?

41. Что такое итератор?

42. Что такое генератор? Чем он отличается от итератора?

43. Что делает yield?

44. Что такое list/dict comprehension в python? Зачем нужны? Какие плюсы и минусы

45. В чем отличие [x for x in y] от (x for x in y)?

46. Что особенного в генераторе?

47. Как объявить генератор?

48. Как получить из генератора список?

49. Что такое подгенератор?

50. Какие методы есть у генераторов?

51. Можно ли извлечь элемент генератора по индексу?

52. Что возвращает итерация по словарю?

53. Как итерировать словарь по парам ключ-значение?

54. Что такое сопрограмма?

55. В чём отличие сопрограммы от генератора?

56. Как долго генератор хранится в памяти?

57. Как получить список атрибутов объекта и зачем это надо?

58. Что такое магические методы, для чего нужны, почему они так называются?

59. Как в классе сослаться на родительский класс?

60. Как работает super()?

61. Возможно ли множественное наследование?

62. Что такое объект в Python?

63. На каком этапе определеяется тип объекта в python ?

64. Какие отличия между copy() и deepcopy()?

65. Что такое id объекта python?

66. Как реализуется интроспекция и рефлексия в python?

67. Что такое MRO? Как это реализовано в python?

68. Что такое Diamond problem? Как Python решает эту проблему?

69. Что такое миксины? Для чего они нужны? Как реализовать их в python

70. Что такое контекстный менеджер? Как написать свой?

71. Что будет результатом выражение object() == object() и почему?

72. В чём разница между операторами == и is ?

73. Что такое __slots__?

74. Какая разница между одинарным и двойным подчеркиванием _value, __value ?

75. Что такое __new__. И чем он отличается от __init__. В какой последовательности они выполняются?

76. Что такое утиная типизация?

77. Что такое модуль?

78. Как можно получить имя модуля?

79. Как Python ищет модули при импорте?

80. Что такое пакет?

81. Как осуществить импорт модуля и что это значит?

82. Что такое обработка исключений? Как она происходит?

83. Для чего могут применять конструкцию try finally без except ?

84. Как правильно выстроить логику обработки исключения?

85. Что будет если ошибку не обработает блок except?

86. Как перехватить исключение, выполнить действия и опять возбудить это же исключение?

87. Зачем нужен блок else при обработки исключений?

88. Как создать собственное исключение?

89. Что можно передать в конструктор исключения?

90. Для чего нужен модуль warning?

91. Для чего нужны предупреждения warnings и как создать собственное?

92. Что такое декораторы. Зачем нужны?

93. Какими способоми можно реализовать декоратор?

94. К чему может быть применен декоратор?

95. Как применить декоратор к классу и зачем?

96. Что такое вызываемый callable объект?

97. Что такое фабрика декораторов?

98. Зачем нужен functools.wraps?

99. Что такое метаклассы?

100. Что такое type в Python?

101. Как работает поиск метакласса при создании объекта?

102. Зачем вообще использовать метаклассы?

103. Для чего используются json.dumps/json.dump , json.loads/json.load?

104. Что делают pickle.dumps /pickle.dump, pickle.loads/pickle.load?

105. В каких случаях использовать pickle, а когда json?

106. Зачем нужен модуль functools?

107. Зачем нужен модуль itertools в Python?

108. Что такое GIL, зачем он нужен, какие плюсы и какие минусы?

109. Как работает GIL?

110. Как работает сборщик мусора в Python?

111. Что такое weakref? Для чего используется?

112. Что такое asyncio. Зачем он нужен? Каковы особенности?

113. Зачем был введен asyncio? Какие преимущества он даёт?

114. Что делает ключевое слово async?

115. Что такое event loop в asyncio? Для чего он нужен?

116. Какие есть способы получить получить event loop и какие способы запустить корутину ?

117. Что такое корутина?

118. Какое количество event loop создаётся при запуске python? Почему?

119. Что делает ключевое слово await?

120. Как в питоне реализуется многопоточность? Какими библиотеками?

121. Для чего нужна многопоточность в python если есть GIL ?

122. Какие есть способы обойти GIL?

123. Как в питоне реализуется мультипроцессинг. Какими модулями?

124. Какой тип задач лучше всего решать с помощью мультипроцессинга python?

125. В чем отличие тредов от мультипроцессинга в python?

126. Когда использовать мультитрединг, когда многопроцессорность, когда asyncio а когда concurent futures в python?

127. Что такое гринлеты. Общее понятие. Примеры реализаций в python?

128. Зачем использовать гринлеты, если есть асинхронный python?

129. Потоки в Питоне — это нативные треды или треды виртуальной машины?

130. За счёт чего ASGI работает быстрее чем WSGI?

131. Как работает WSGI? Почему он может стать причиной медленной обработки запросов?

132. Что такое ASGI сервер?

133. Как масштабировать WSGI сервер?

134. Как работает модуль logging в python?

135. По какому шаблону проектирования реализован модуль logging в Python?

136. Зачем использовать в качестве ключа словаря результат __hash__(), если есть id неизменяемого объекта?

137. Что такое интернирование, как реализовано в python?

138. В каких случаях применять метклассы, когда декоратор, когда миксин, когда наследование в python?

139. Для чего используются геттеры и сеттеры?

140. Для чего используется @property? как им пользоваться?

141. Какой алгоритм сортировки используется в методе sort и функции sorted и почему?