Питання інтерв'ю Python [закрито]


25

Я збираюся взяти інтерв'ю протягом двох тижнів для стажування, яке передбачає програмування Python.

Хто-небудь може запропонувати, які можливі ділянки слід відшліфувати? Я шукаю часто запитувані речі в інтерв'ю для відкриття Python. Крім того, що я вже більше року займаюся мовою, я не сприймаю того, що вони можуть у мене запитати.

Як і для інтерв'ю C або C ++, є багато питань, починаючи від перетворення рядків до створення пов’язаних списків, але для інтерв'ю з Python я незрозумілий.

Особистий досвід та / або пропозиції вітаються.


Якщо це стажування, а ви вже рік програмуєте в Python, я думаю, у вас все буде в порядку. Тха сказав, я думаю, що загальний характер питань для Python буде таким самим, як і ті, які ви згадали для c ++.
Роберт Харві

Роберт, те, що мене турбує, програмування без будь-якого нагляду та настанов. Можливо, мені не вистачає в деяких областях.

1
Якщо це стажування, чому б ви не мали керівництва? Це саме визначення стажування. Однак, інтерни, де я працюю, не отримують занять з програмування, але вони отримують чіткі робочі інструкції та очікування. Як стажист, вони повинні сподіватися, що ви дізнаєтесь на роботі і що робота займе трохи більше часу, ніж це можливо, якщо хтось із досвідом це зробить.
Роберт Харві

Ви робите поширену помилку, яку багато людей роблять, виходячи зі школи - співбесіда не є тестом, це більше схоже на перше побачення. Хороший інтерв'юер не буде розбивати ваші кулі, намагаючись з’ясувати, чи знаєте ви темні куточки мови, а скоріше спробує встановити, чи справді ви це знаєте. Хороший інтерв'ю зосередиться на загальних знаннях з програмування, навичках вирішення проблем, міжособистісних навичках та досвіді. Якщо хтось починає розпитувати конкретику того, як Python інтернує струни, це означає, що вони загублені і не знають, як взяти інтерв'ю.
Sean McSomething

Відповіді:


8

Ось кілька простих:

  1. Що таке декоратори Python і як би ви їх використовували?
  2. Як ви налагодите код Python?
  3. Як би ви налаштували багато проектів, де кожен використовує різні версії бібліотек Python та сторонніх організацій?
  4. Чи дотримуєтесь ви PEP8 під час написання коду?

7

Як щодо того, що стосується розуміння списку Python ? Мені це було однією з найбільших торгових точок на C ++, після того як я прочитав про них у Dive into Python .

Msgstr "Написати розуміння списку, яке будує список парних чисел від 1 до 10 (включно)".
Якщо відповідь щось подібне (зверніть увагу на значення діапазону, щоб уникнути помилки на огорожі):

foo = [x for x in range(1, 11) if (x % 2) == 0]
print foo
[2, 4, 6, 8, 10]

З цього питання, якщо ви розумієте всі поняття, перелічені у Dive into Python, це повинно охоплювати більшість важливих особливостей.


13
Це непіфонічно. В Python 2.x, ви просто зробити range(2,11,2)і в Python 3.x, list(range(2,11,2)).
Chinmay Kanchi

@Cyclops, здається, вам потрібно пройти співбесіду для власної роботи в INNOTECH.
Робота

5
@Chinmay Kanchi Хоча я не думаю, що це було б гарним питанням інтерв'ю, більшість знайомств із розширеними функціями роблять найпростіші речі, які вони можуть (якби не бентежити читача). Хоча існує більш просте рішення цієї конкретної проблеми, справа не в тому, щоб відповісти на цю конкретну проблему. Сенс полягав у використанні розуміння списку (які є дуже ефективним і помітним способом оптимізації речей у Python).
jsternberg

6

Чи пропуск Python за посиланням чи пропуск за значенням - також дуже хороше питання.


1
Чудовим подальшим запитанням було б запитати, як вони це можуть показати і чому це важливо
mcotton

@Ismail - Вибачте, але чому це гарне запитання?
Теодор

7
@Cervo: Якщо я правильно розумію, Python є передача за значенням так само , як , як C #, Java, Scheme і т.д., проходять за значенням ... тільки пройти по посиланню мову , який я бачив це VB6, де все проходить шляхом посилання, якщо не вказано інше. Те, що ви можете мутувати об’єкти, ні в якому разі не робить його посиланням, а той факт, що ви можете мати незмінні об'єкти, не означає, що вони передаються за значенням ... так що " відповідь ні » це абсолютно неправильно . Мені дуже шкода кандидата, інтерв'юер якого вважає, що відповідь "ні" ...
Мехрдад

1
@Cervo: FYI, навіть 100+ проголосованих відповідей у ​​вашому посиланні протистоять вашому аргументу: в ньому чітко сказано, що "Параметри передаються за значенням".
Мехрдад

11
Я вважаю, що правильна відповідь така: "Параметри - це посилання, які передаються за значенням".
user16764

6

Питання, які мені задавали:

  • Опишіть два методи метапрограмування в Python.
  • Що таке GIL?
  • Чому GIL важливий?
  • Чому існує альтернативна реалізація Python під назвою Unladen Swallow ?
  • Джанго, Пілони чи Зопе? Відстоюйте свою позицію.

5

У мене немає такого досвіду, але ось кілька здогадок:

  1. (Im) мінливість
  2. Функції / класи першого класу
  3. Закриття

Це деякі речі, які повинен знати програміст python, інакше ви можете також найняти програміста C на цю посаду.


3

Я б пішов за списком у цій відповіді . Спробуйте оновити те, що ви знаєте, слідуючи за цим списком, наскільки це можливо. Не хвилюйтеся, якщо ви не зможете домогтися цього самого кінця.



2

Який у вас сенс, чи намагатимуться вони перевірити, чи знаєте ви Python, чи зможете зробити це в Python чи перевірити, чи можете ви програмувати (в Python)?

Це дуже різні речі.

Якщо вони хочуть, щоб ви показали, що ви знаєте Python, вони можуть змусити вас робити такі речі, як створити генератор, а потім робити це без використання yield . Поясніть, як працюють класи. Поясніть порядок вирішення методу С3. І так далі.

Якщо вони хочуть, щоб ви показали, що ви можете виконати справи в Python, вам потрібно буде володіти основними структурами даних та мати список бібліотек, до яких ви хочете виконувати різні завдання. Тож вам потрібно бути комфортними зі словниками, наборами, масивами. Так само потрібно знати про такі речіBeautifulSoup для розбору HTML, вміти говорити про рамки, які можуть бути використані для веб-розробки тощо. Не обов’язково потрібно знати, як правильно використовувати ці речі, але ви повинні знати, де Подивіться, як розібратися більше, і зможете їх реально використовувати, як тільки інтерв'юер надасть вам речі, які задокументовані.

Якщо вони хочуть, щоб ви показали, що ви можете програмувати (в Python), вам потрібно знати основні структури даних та знати ваші алгоритми. Це набагато ближче до питань C / C ++, які вам будуть задані, за винятком того, що від вас очікується використання нативних структур даних там, де це полегшує ваше життя.

Щоб бути в безпеці, ви повинні певною мірою підготуватися до всіх трьох. Наприклад, прочитайте http://docs.python.org/tutorial/ і зробіть собі кілька записок. Сподіваємось, ви вже вмієте програмувати. А потім спробуйте кілька випадкових завдань і змусьте використовувати бібліотеки, які, можливо, ви пропустили. Так, наприклад, прочитайте деякі файли CSV, витягніть інформацію програмно з веб-сторінки, побудуйте невеликий веб-сайт з рамкою тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.