Python є найбільш використовуваною мовою в таких провідних компаніях, як Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify та багатьох інших завдяки своїй продуктивності та потужним бібліотекам. Щоб потрапити в ці компанії та організації як розробник Python, вам потрібно оволодіти деякими важливими Питання для співбесіди з Python щоб зламати їх онлайн-раунд оцінювання Python та раунд співбесід з Python. Ми підготували список Топ-50 запитань на співбесіді щодо Python разом із їхніми відповідями на інтерв’ю.
Питання для співбесіди з Python
Зміст
- Основні запитання для співбесіди з Python для новачків
- 1. Що таке Python? Перелічіть кілька популярних застосувань Python у світі технологій.
- 2. Які переваги використання мови Python як інструменту в поточному сценарії?
- 3. Чи є Python компільованою мовою чи інтерпретованою?
- 4. Що робить символ «#» у Python?
- 6. Як аргументи передаються за значенням або за посиланням у Python?
- 7. Яка різниця між набором і словником?
- 8. Що таке розуміння списку? Наведіть приклад.
- 9. Що таке лямбда-функція?
- 10. Що таке пропуск у Python?
- 11. Яка різниця між / і // в Python?
- 12. Як виконується виняткова обробка в Python?
- 13. Що таке функція swapcase у Python?
- 14. Різниця між циклом for і while в Python
- 15. Чи можемо ми передати функцію як аргумент у Python?
- 16. Що таке *args і *kwargs?
- 17. Чи потрібні відступи в Python?
- 18. Що таке Scope у Python?
- 19. Що таке docstring у Python?
- 20. Що таке динамічно типізована мова?
- 21. Що таке перерва, продовження та перехід у Python?
- 23. Як на Python визначити число?
- Запитання для співбесіди про Python середнього рівня
- 24. Яка різниця між функціями xrange і range?
- 25. Що таке розуміння словника? Наведіть приклад
- 26. Кортежне розуміння? Якщо так, то як, а якщо ні, то чому?
- 27. Яка різниця між List і Tuple?
- 28. Яка різниця між поверхневою копією та глибокою копією?
- 29. Який метод сортування використовується функціями sort() і sorted() python?
- 30. Що таке декоратори?
- 31. Як налагодити програму Python?
- 32. Що таке ітератори в Python?
- 33. Що таке генератори в Python?
- 34. Чи підтримує Python множинне успадкування?
- 35. Що таке поліморфізм у Python?
- 36. Визначення інкапсуляції в Python?
- 38. Як здійснюється керування пам'яттю в Python?
- 39. Як видалити файл за допомогою Python?
- 40. Що таке нарізка в Python?
- 41. Що таке простір імен у Python?
- Запитання та відповіді на співбесіді з Python
- 42. Що таке PIP?
- 43. Що таке функція zip?
- 44. Що таке маринування та розмаринування?
- 45. Що таке monkey patching у Python?
- 46. Що таке __init__() у Python?
- 47. Написати код для відображення поточного часу?
- 48. Що таке специфікатори доступу в Python?
- 49. Що таке модульні тести в Python?
- 50. Python Global Interpreter Lock (GIL)?
- 51. Що таке анотації функцій у Python?
- 52. Що таке групи винятків у Python?
- 53. Що таке інструкція Python Switch
- 54. Що таке Walrus Operator?
Основні запитання для співбесіди з Python для новачків
1. Що таке Python? Перелічіть кілька популярних застосувань Python у світі технологій.
Python — це широко поширена мова програмування загального призначення високого рівня. Він був створений Гвідо ван Россумом у 1991 році та вдосконалений Python Software Foundation. Його розроблено з акцентом на зручності читання коду, а його синтаксис дозволяє програмістам висловлювати свої концепції в меншій кількості рядків коду.
Він використовується для:
- Системний сценарій
- Веб-розробка
- Розробка гри
- Розробка програмного забезпечення
- Комплексна математика
2. Які переваги використання мови Python як інструменту в поточному сценарії?
Нижче наведено переваги використання мови Python.
- Об'єктно-орієнтована мова
- Мова високого рівня
- Динамічно типізована мова
- Широка підтримка бібліотек
- Наявність сторонніх модулів
- Відкритий код і розвиток спільноти
- Портативний та інтерактивний
- Переносимість між операційними системами
3. Чи є Python компільованою мовою чи інтерпретованою?
Насправді Python є частково скомпільованою мовою та частково інтерпретованою мовою. Частина компіляції виконується спочатку, коли ми виконуємо наш код, і це генерує внутрішній байт-код, цей байт-код перетворюється віртуальною машиною Python (p.v.m) відповідно до основної платформи (машина+операційна система).
4. Що робить символ «#» у Python?
«#» використовується для коментування всього, що йде після в рядку.
6. Як аргументи передаються за значенням або за посиланням у Python?
Все в Python є об’єктами, і всі змінні містять посилання на об’єкти. Еталонні значення відповідають функціям; в результаті ви не можете змінити значення посилань. Однак ви можете змінити об’єкти, якщо вони є змінними.
7. Яка різниця між набором і словником?
Набір — це невпорядкована колекція типів даних, яка повторюється, змінюється і не має повторюваних елементів.
Словник у Python — це впорядкована колекція значень даних, яка використовується для зберігання значень даних, як карта.
8. Що таке розуміння списку? Наведіть приклад.
Розуміння списку — це синтаксична конструкція, яка полегшує створення списку на основі існуючого ітерованого.
Наприклад:
my_list = [i for i in range(1, 10)]>
9. Що таке лямбда-функція?
Лямбда-функція є анонімною функцією. Ця функція може мати будь-яку кількість параметрів, але може мати лише один оператор. Наприклад:
a = lambda x, y : x*y print(a(7, 19))>
10. Що таке пропуск у Python?
Перейти означає невиконання жодної операції, іншими словами, це покажчик місця заповнення у складеному операторі, де має залишитися порожнє місце, і там нічого не потрібно писати.
11. Яка різниця між / і // в Python?
/ представляє точне ділення (результатом є число з плаваючою комою), тоді як // представляє нижнє ділення (результат є цілим числом). Наприклад:
5//2 = 2 5/2 = 2.5>
12. Як виконується виняткова обробка в Python?
Є 3 основні ключові слова, тобто try, exception і finally, які використовуються для перехоплення винятків і відповідного керування механізмом відновлення. Try — це блок коду, який відстежується на наявність помилок. За винятком того, що блок виконується, коли виникає помилка.
Краса останнього блоку полягає у виконанні коду після спроби знайти помилку. Цей блок виконується незалежно від того, сталася помилка чи ні. Нарешті, block використовується для виконання необхідних дій очищення об’єктів/змінних.
13. Що таке функція swapcase у Python?
Це функція рядка, яка перетворює всі символи верхнього регістру в нижній і навпаки. Він використовується для зміни існуючого регістру рядка. Цей метод створює копію рядка, який містить усі символи у регістрі swap. Наприклад:
string = 'techcodeview.com' string.swapcase() --->'gEEKSFORgEEKS'>
14. Різниця між циклом for і while в Python
Цикл for зазвичай використовується для перебору елементів різних типів колекцій, таких як Список , Кортеж , встановити , і Словник . Розробники використовують цикл for, де вони мають як початок, так і кінець умови. Тоді як цикл while є фактичною функцією циклу, яка використовується в будь-якій іншій мові програмування. Програмісти використовують цикл Python while, де вони мають лише кінцеві умови.
15. Чи можемо ми передати функцію як аргумент у Python?
Так, до функції можна передати кілька аргументів, включаючи об’єкти, змінні (одного й іншого типів даних) і функції. Функції можна передавати як параметри іншим функціям, оскільки вони є об’єктами. Функції вищого порядку — це функції, які можуть приймати інші функції як аргументи.
Щоб прочитати більше, зверніться до статті: Передача функції як аргументу в Python
16. Що таке *args і *kwargs?
Щоб передати змінну кількість аргументів функції в Python, використовуйте спеціальний синтаксис *args і **kwargs у специфікації функції. Він використовується для передачі списку аргументів змінної довжини без ключових слів. Використовуючи *, змінна, яку ми пов’язуємо з *, стає ітерованою, дозволяючи вам виконувати над нею операції, такі як ітерація над нею та використання операцій вищого порядку, таких як карта та фільтр.
17. Чи потрібні відступи в Python?
так, відступ необхідний у Python. А Python Інтерпретатор може отримати інформацію про те, що група операторів належить до певного блоку коду, використовуючи відступи Python. Відступи роблять код легким для читання розробниками на всіх мовах програмування, але в Python дуже важливо робити відступи в коді в певному порядку.
18. Що таке Scope у Python?
Розташування, де ми можемо знайти змінну, а також отримати до неї доступ, якщо потрібно, називається областю змінної.
- Локальна змінна Python: Локальні змінні – це ті, які ініціалізуються у функції та є унікальними для цієї функції. До нього неможливо отримати доступ поза функцією.
- Глобальні змінні Python: Глобальні змінні – це ті, які визначені та оголошені поза будь-якою функцією та не визначені жодною функцією.
- Область застосування на рівні модуля: Це стосується глобальних об’єктів поточного модуля, доступних у програмі.
- Зовнішній обсяг: Це відноситься до будь-яких вбудованих імен, які програма може викликати. Назва, на яку посилається, знаходиться останньою серед об’єктів у цій області.
19. Що таке docstring у Python?
Рядки документації Python (або docstrings) забезпечують зручний спосіб асоціювання документації з модулями, функціями, класами та методами Python.
- Оголошення Docstrings: Рядки документації оголошуються за допомогою «потрійних одинарних лапок» або потрійних подвійних лапок безпосередньо під оголошенням класу, методу або функції. Усі функції повинні мати рядок документації.
- Доступ до Docstrings: Доступ до рядків документів можна отримати за допомогою методу __doc__ об’єкта або за допомогою функції довідки.
20. Що таке динамічно типізована мова?
Типові мови це мови, в яких ми визначаємо тип типу даних, і він буде відомий машині під час компіляції або під час виконання. Типові мови можна класифікувати на дві категорії:
- Статично типізовані мови: У цьому типі мови тип даних змінної відомий під час компіляції, що означає, що програміст має вказати тип даних змінної під час її оголошення.
- Динамічно типізовані мови: Це мови, які не вимагають жодного попередньо визначеного типу даних для будь-якої змінної, оскільки вона інтерпретується під час виконання самою машиною. У цих мовах інтерпретатори призначають тип даних змінній під час виконання залежно від її значення.
21. Що таке перерва, продовження та перехід у Python?
The оператор розриву використовується для завершення циклу або оператора, в якому він присутній. Після цього керування переходить до операторів, які присутні після оператора break, якщо він доступний.
Продовжити також є оператором керування циклом, як і оператор break. Оператор continue протилежний оператору break, замість завершення циклу він змушує виконати наступну ітерацію циклу.
Пас означає не виконувати жодних операцій або, іншими словами, це покажчик місця заповнення у складеному операторі, де має бути залишений порожній і нічого не потрібно писати.
Числовий: Числовий тип даних у Python представляє дані, які мають числове значення. Числове значення може бути цілим числом, плаваючим числом, логічним значенням , або навіть комплексне число.
23. Як на Python визначити число?
Математичний модуль Python містить метод, який можна використовувати для обчислення мінімального числа.
- поверх() Метод у Python повертає нижнє значення x, тобто найбільше ціле число, яке не перевищує x.
- Крім того, метод ceil(x) у Python повертає максимальне значення x, тобто найменше ціле число, більше або рівне x.
Запитання для співбесіди про Python середнього рівня
24. Яка різниця між функціями xrange і range?
range() і xrange() — це дві функції, які можна використовувати для повторення певної кількості разів у циклах for у Python. У Python 3 немає xrange, але функція range поводиться як xrange у Python 2.
- діапазон() – Це повертає список чисел, створених за допомогою функції range().
- xrange() – Ця функція повертає об’єкт генератора, який можна використовувати для відображення чисел лише за допомогою циклу. Єдиний певний діапазон відображається на вимогу і, отже, викликається лінива оцінка .
25. Що таке розуміння словника? Наведіть приклад
Dictionary Comprehension — це синтаксична конструкція, яка полегшує створення словника на основі існуючого ітерованого.
Наприклад: my_dict = {i:i+7 для i в діапазоні (1, 10)}
26. Кортежне розуміння? Якщо так, то як, а якщо ні, то чому?
(i for i in (1, 2, 3))>
Розуміння кортежів неможливе в Python, тому що воно завершується генератором, а не розумінням кортежів.
27. Яка різниця між List і Tuple?
Давайте розберемо відмінності між List і Tuple:
Список
- Списки мають змінний тип даних.
- Списки споживають більше пам'яті
- Список краще підходить для виконання операцій, таких як вставка та видалення.
- Наслідки ітерацій займають багато часу
Кортеж
- Кортежі є незмінними типами даних.
- Кортеж споживає менше пам'яті порівняно зі списком
- Для доступу до елементів підходить тип даних Tuple
- Наслідки ітерацій є порівняно швидшими
28. Яка різниця між поверхневою копією та глибокою копією?
Неглибока копія використовується, коли створюється новий тип екземпляра, і вона зберігає скопійовані значення, тоді як глибока копія зберігає вже скопійовані значення.
Неглибока копія має швидше виконання програми, тоді як глибока копія сповільнює її.
29. Який метод сортування використовується функціями sort() і sorted() python?
Python використовує Тім Сорт алгоритм сортування. Це стабільне сортування, найгірший випадок якого дорівнює O(N log N). Це гібридний алгоритм сортування, похідний від сортування злиттям і сортування вставкою, призначений для ефективної роботи з багатьма типами даних реального світу.
30. Що таке декоратори?
Декоратори є дуже потужним і корисним інструментом у Python, оскільки вони є специфічними змінами, які ми вносимо в синтаксис Python, щоб легко змінювати функції.
31. Як налагодити програму Python?
За допомогою цієї команди ми можемо налагодити програму Python:
$ python -m pdb python-script.py>
32. Що таке ітератори в Python?
У Python ітератори використовуються для повторення групи елементів, контейнерів, таких як список. Ітератори — це колекції елементів, і вони можуть бути списком, кортежами або словником. Ітератор Python реалізує __itr__ і метод next() для повторення збережених елементів. Зазвичай ми використовуємо цикли для перебору колекцій (списків, кортежів) у Python.
33. Що таке генератори в Python?
У Python генератор — це спосіб, який визначає, як реалізувати ітератори. Це звичайна функція, за винятком того, що вона дає вираз у функції. Він не реалізує __itr__ і метод next() і також зменшує інші накладні витрати.
Якщо функція містить принаймні оператор yield, вона стає генератором. Ключове слово yield призупиняє поточне виконання, зберігаючи його стани, а потім відновлює його, коли потрібно.
34. Чи підтримує Python множинне успадкування?
Python підтримує багаторазове успадкування, на відміну від Java. Множинне успадкування означає, що клас може бути похідним від кількох батьківських класів.
35. Що таке поліморфізм у Python?
Поліморфізм означає здатність приймати різні форми. Так, наприклад, якщо батьківський клас має метод з іменем ABC, то дочірній клас також може мати метод з такою ж назвою ABC, який має власні параметри та змінні. Python допускає поліморфізм.
36. Визначення інкапсуляції в Python?
Інкапсуляція означає зв'язування коду та даних разом. Клас Python є прикладом інкапсуляції.
38. Як здійснюється керування пам'яттю в Python?
Python використовує свою приватну купу для керування пам’яттю. По суті, усі об’єкти та структури даних зберігаються у приватній купі. Навіть програміст не може отримати доступ до цього приватного простору, оскільки інтерпретатор піклується про це простір. Python також має вбудований збирач сміття, який переробляє всю невикористану пам’ять, звільняє пам’ять і робить її доступною для простору купи.
39. Як видалити файл за допомогою Python?
Ми можемо видалити файл за допомогою Python такими підходами:
- os.remove()
- os.unlink()
40. Що таке нарізка в Python?
Нарізка Python це операція над рядком для вилучення частини рядка або частини списку. За допомогою цього оператора можна вказати, де почати нарізку, де закінчити, і вказати крок. Нарізка списку повертає новий список із наявного списку.
Syntax: Lst[ Initial : End : IndexJump ]>
41. Що таке простір імен у Python?
Простір імен — це система імен, яка використовується для забезпечення унікальності імен, щоб уникнути конфліктів імен.
Запитання та відповіді на співбесіді з Python
42. Що таке PIP?
PIP — це абревіатура від Python Installer Package, яка забезпечує безпроблемний інтерфейс для встановлення різних модулів Python. Це інструмент командного рядка, який може шукати пакети в Інтернеті та встановлювати їх без будь-якої взаємодії з користувачем.
43. Що таке функція zip?
Функція Python zip() повертає об’єкт zip, який відображає подібний індекс кількох контейнерів. Він бере ітератор, перетворює його в ітератор і об’єднує елементи на основі переданих ітераторів. Він повертає ітератор кортежів.
44. Що таке маринування та розмаринування?
Модуль Pickle приймає будь-який об’єкт Python, перетворює його на рядкове представлення та створює дамп у файл за допомогою функції dump. Цей процес називається піклінгом. У той час як процес отримання оригінальних об’єктів Python із збереженого рядкового представлення називається unpickling.
45. Що таке monkey patching у Python?
У Python термін monkey patch стосується лише динамічних модифікацій класу чи модуля під час виконання.
# g.py class GeeksClass: def function(self): print 'function()' import m def monkey_function(self): print 'monkey_function()' m.GeeksClass.function = monkey_function obj = m.GeeksClass() obj.function()>
46. Що таке __init__() у Python?
Еквівалент конструкторів у термінології ООП, __init__ є зарезервованим методом у класах Python. Метод __init__ викликається автоматично кожного разу, коли ініціюється новий об’єкт. Цей метод виділяє пам’ять новому об’єкту відразу після його створення. Цей метод також можна використовувати для ініціалізації змінних.
47. Написати код для відображення поточного часу?
import time currenttime= time.localtime(time.time()) print (Current time is, currenttime)>
48. Що таке специфікатори доступу в Python?
Python використовує символ «_», щоб визначити контроль доступу для певного члена даних або функції-члена класу. Клас у Python має три типи Модифікатори доступу Python :
- Модифікатор публічного доступу: Члени класу, які оголошені публічними, легко доступні з будь-якої частини програми. Усі члени даних і функції-члени класу є відкритими за замовчуванням.
- Модифікатор захищеного доступу: Члени класу, які оголошені захищеними, доступні лише для похідного від нього класу. Усі члени даних класу оголошуються захищеними шляхом додавання одного символу підкреслення «_» перед членами даних цього класу.
- Модифікатор приватного доступу: Члени класу, які оголошені приватними, доступні лише в межах класу, модифікатор приватного доступу є найбільш безпечним модифікатором доступу. Члени даних класу оголошуються приватними шляхом додавання символу подвійного підкреслення «__» перед членом даних цього класу.
49. Що таке модульні тести в Python?
Модульне тестування — це перший рівень тестування програмного забезпечення, на якому тестуються найменші тестовані частини програмного забезпечення. Це використовується для підтвердження того, що кожна одиниця програмного забезпечення працює відповідно до плану. Фреймворк модульного тестування — це фреймворк стилю xUnit Python. Для модульного тестування використовується метод White Box Testing.
50. Python Global Interpreter Lock (GIL)?
Глобальне блокування інтерпретатора Python (GIL) — це тип блокування процесу, який використовується Python щоразу, коли він має справу з процесами. Як правило, Python використовує лише один потік для виконання набору письмових операторів. Продуктивність однопотокового процесу та багатопотокового процесу буде однаковою в Python, і це через GIL у Python. Ми не можемо досягти багатопоточності в Python, оскільки у нас є глобальне блокування інтерпретатора, яке обмежує потоки та працює як один потік.
51. Що таке анотації функцій у Python?
Анотація функції це функція, яка дозволяє додавати метадані до параметрів функції та повертати значення. Таким чином ви можете вказати тип введення параметрів функції та тип повернення значення, яке повертає функція.
Анотації функцій — це довільні вирази Python, пов’язані з різними частинами функцій. Ці вирази оцінюються під час компіляції та не живуть у середовищі виконання Python. Python не надає жодного значення цим анотаціям. Вони позбавляються життя, коли інтерпретуються сторонніми бібліотеками, наприклад, mypy.
52. Що таке групи винятків у Python?
Остання функція Python 3.11, Групи винятків . ExceptionGroup можна обробляти за допомогою нового синтаксису, крім*. Символ * вказує на те, що кожне речення, крім*, може обробляти кілька винятків.
ExceptionGroup — це колекція/група різних типів винятків. Не створюючи кількох винятків, ми можемо згрупувати разом різні винятки, які потім можемо отримати один за одним, коли це буде необхідно. Порядок, у якому винятки зберігаються в групі винятків, не має значення під час їх виклику.
Python3 try: raise ExceptionGroup('Example ExceptionGroup', ( TypeError('Example TypeError'), ValueError('Example ValueError'), KeyError('Example KeyError'), AttributeError('Example AttributeError') )) except* TypeError: ... except* ValueError as e: ... except* (KeyError, AttributeError) as e: ...> 53. Що таке інструкція Python Switch
Починаючи з версії 3.10 і вище, Python реалізував функцію перемикання регістрів під назвою структурна відповідність шаблону. Ви можете реалізувати цю функцію за допомогою ключових слів match і case. Зауважте, що символ підкреслення — це те, що ви використовуєте для визначення регістру за замовчуванням для оператора switch у Python.
список на java
Примітка : До Python 3.10 Python не підтримує оператори відповідності.
Python3 match term: case pattern-1: action-1 case pattern-2: action-2 case pattern-3: action-3 case _: action-default>
54. Що таке Walrus Operator?
Оператор Морж дозволяє присвоїти значення змінній у виразі. Це може бути корисно, коли вам потрібно використовувати значення кілька разів у циклі, але ви не хочете повторювати обчислення.
Оператор Walrus представлений синтаксисом `:=` і може використовуватися в різних контекстах, включаючи цикли while і оператори if.
Примітка: Версії Python до 3.8 не підтримують Walrus Operator.
Python3 names = ['Jacob', 'Joe', 'Jim'] if (name := input('Enter a name: ')) in names: print(f'Hello, {name}!') else: print('Name not found.')>