web-dev-qa-db-fra.com

Python questions d'entretien

Je vais interviewer dans les deux semaines pour un stage qui impliquerait la programmation Python.

Quelqu'un peut-il suggérer les zones possibles à polir? Je recherche des choses fréquemment posées dans les interviews pour Python ouvertures. Mis à part le fait que je fais déjà la langue depuis plus d'un an maintenant, je n'arrive pas à comprendre ce qu'ils peuvent me demander.

Comme pour une interview C ou C++, il y a beaucoup de questions allant de l'inversion des chaînes à la construction de listes chaînées, mais pour une interview Python, je ne sais rien.

Les expériences personnelles et/ou suggestions sont les bienvenues.

25
Andy

Voici quelques exemples faciles:

  1. Que sont les décorateurs Python et comment les utiliseriez-vous?
  2. Comment déboguez-vous votre code Python?
  3. Comment pourriez-vous configurer de nombreux projets où chacun utilise différentes versions de Python et des bibliothèques tierces?
  4. Suivez-vous PEP8 lors de l'écriture de votre code?
8
Thierry Lam

Que diriez-vous de quelque chose impliquant Python liste des compréhensions ? Pour moi, c'était l'un des gros arguments de vente sur C++, après avoir lu à leur sujet dans Plongez dans Python .

"Écrivez une compréhension de liste qui construit une liste des nombres pairs de 1 à 10 (inclus)".
Où la réponse est quelque chose comme ça (notez que les valeurs de la plage évitent une erreur fencepost):

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

D'ailleurs, si vous comprenez tous les concepts répertoriés dans Plonger dans Python, cela devrait couvrir la plupart des fonctionnalités importantes.

7
Cyclops

Est Python passer par référence ou passer par valeur est également une très bonne question.

6
ismail

Questions qui m'ont été posées:

  • Décrivez deux méthodes de méta-programmation en Python.
  • Qu'est-ce que le GIL?
  • Pourquoi le GIL est-il important?
  • Pourquoi existe-t-il une implémentation alternative de Python appelé nladen Swallow ?
  • Django, Pylons ou Zope? Défendez votre position.
6
Scant Roger

Je n'ai pas de telles expériences, mais voici quelques suppositions:

  1. (Immutabilité
  2. Fonctions/classes de première classe
  3. Fermetures

C'est quelque chose que python devrait savoir, sinon vous pouvez aussi embaucher un programmeur C pour le poste.

5
Kugel

Je suivrais la liste dans cette réponse . Essayez de rafraîchir autant que possible ce que vous savez en suivant cette liste. Ne vous inquiétez pas si vous ne pouvez pas le faire jusqu'à la fin.

3
Benjamin Bannier

Outre d'autres liens que les gens ont fournis. Je recommande également Fonctions cachées de Python . Juste au cas où ils vous poseraient des questions délicates.

2
grokus

Quel est votre sens, vont-ils essayer de tester si vous connaissez Python, voir si vous pouvez faire avancer les choses en Python, ou tester si vous pouvez programmer (en Python)?

Ce sont des choses très différentes.

S'ils veulent que vous montriez que vous connaissez Python, ils peuvent vous forcer à faire des choses comme créer un générateur, puis faites-le sans utiliser yield. Expliquez comment fonctionnent les classes. Expliquez l'ordre de résolution de la méthode C3. Etc.

S'ils veulent que vous montriez que vous pouvez faire avancer les choses en Python, vous devrez être compétent avec les structures de données de base et avoir une liste de bibliothèques vers lesquelles vous iriez pour différents types de tâches. Vous devez donc être à l'aise avec les dictionnaires, les ensembles, les tableaux. De même, vous devez connaître des choses comme BeautifulSoup pour analyser HTML, être capable de parler d'un cadre qui pourrait être utilisé pour le développement Web, etc. Vous n'avez pas nécessairement besoin de savoir comment bien utiliser ces choses, mais vous devez savoir où aller, comment en savoir plus et être en mesure de les utiliser une fois que l'enquêteur vous a fourni des éléments documentés.

S'ils veulent que vous montriez que vous pouvez programmer (en Python), vous devrez connaître les structures de données de base et connaître vos algorithmes. Ceci est beaucoup plus proche des questions C/C++ qui vous seraient posées, sauf que vous devrez utiliser des structures de données natives où cela vous facilitera la vie.

Pour être en sécurité, vous devez vous préparer dans une certaine mesure aux trois. Par exemple, lisez http://docs.python.org/tutorial/ et prenez quelques notes pour vous. J'espère que vous savez déjà programmer. Et puis essayez quelques tâches aléatoires et forcez-vous à utiliser des bibliothèques que vous avez peut-être manquées. Ainsi, par exemple, lisez du CSV, extrayez des informations par programmation d'une page Web, créez un petit site Web avec un cadre, etc.

2
btilly