Questions d'entretien Python & Réponses : Guide ultime de préparation
Ces questions d'entretien sur le langage Python sont conçues pour vous familiariser avec les types de questions rencontrés lors d'entretiens. Selon mon expérience, les bons intervieweurs ne planifient pas de questions précises ; ils commencent par des concepts de base et approfondissent selon vos réponses.
Questions de base sur Python
Qu'est-ce que Python ?
Python est un langage de script orienté objet, interprété, interactif et de haut niveau. Il est conçu pour être lisible, utilise des mots-clés anglais là où d'autres langages utilisent la ponctuation, et a moins de constructions syntaxiques.
Caractéristiques principales de Python
- Supporte la programmation fonctionnelle, structurée et orientée objet.
- Utilisable comme langage de script ou compilé en bytecode pour de grosses applications.
- Fournit des types de données dynamiques de haut niveau et le typage dynamique.
- Supporte la collecte automatique des ordures (garbage collection).
- S'intègre facilement avec C, C++, COM, ActiveX, CORBA, Java.
Python est-il sensible à la casse ?
Oui, Python est sensible à la casse : identifiants, noms de fonctions et mots-clés se distinguent par la capitalisation.
Python est-il indépendant de la plateforme ?
Oui, le code Python s'exécute sur tout système d'exploitation avec un interpréteur compatible.
Applications de Python
- Développement web : Django, Flask.
- Analyse de données : Pandas, NumPy.
- Apprentissage automatique : TensorFlow, Scikit-learn.
- Automatisation : Scripting et automatisation de tâches.
- Développement logiciel : Applications de bureau.
Différences entre Python 2 et Python 3
| # | Section | Python 2 | Python 3 |
|---|---|---|---|
| 1 | Fonction print | Peut s'utiliser sans parenthèses. | Nécessite des parenthèses, sinon erreur. |
| 2 | Unicode | Types ASCII str() et Unicode() séparés, pas de type bytes. | Unicode (utf-8) avec deux classes bytes : bytes, bytearray. |
| 3 | Exceptions | Accepte les deux notations de syntaxe. | Lève SyntaxError si argument d'exception sans parenthèses. |
| 4 | Comparaison non ordonnable | N'élève pas d'erreur. | Lève TypeError si comparaison de types non ordonnables. |
Y a-t-il un type double en Python ?
Non, Python utilise le type float pour les nombres à virgule flottante (précision double par défaut).
Les chaînes sont-elles immuables ?
Oui.
Peut-on faire True = False ?
Non, True et False sont des valeurs booléennes distinctes.
Variables d'environnement Python
Rôle de PYTHONPATH
Similaire à PATH, indique à l'interpréteur où trouver les modules importés. Doit inclure le répertoire de la bibliothèque standard et ceux contenant le code source.
Rôle de PYTHONSTARTUP
Chemin vers un fichier d'initialisation exécuté à chaque démarrage de l'interpréteur (ex: .pythonrc.py sous Unix).
Rôle de PYTHONCASEOK
Sous Windows, demande à Python de trouver la première correspondance insensible à la casse dans une instruction import.
Rôle de PYTHONHOME
Chemin de recherche de modules alternatif, souvent embarqué dans PYTHONSTARTUP ou PYTHONPATH.
Types de données et opérations
Types de données standards
- Nombres
- Chaîne (String)
- Liste (List)
- Tuple
- Dictionnaire (Dictionary)
Exemples de manipulation de chaînes
str = "Hello World!"
print(str) # Hello World!
print(str[0]) # H
print(str[2:5]) # llo
print(str[2:]) # llo World!
print(str * 2) # Hello World!Hello World!
print(str + "TEST") # Hello World!TEST
Exemples de listes
liste = ['abcd', 786, 2.23, 'john', 70.2]
print(liste) # ['abcd', 786, 2.23, 'john', 70.2]
print(liste[0]) # abcd
print(liste[1:3]) # [786, 2.23]
print(liste[2:]) # [2.23, 'john', 70.2]
Exemples de tuples
Les tuples sont immuables, définis avec des parenthèses (). Les listes sont mutables, avec crochets [].
tup = ('abcd', 786, 2.23, 'john', 70.2)
print(tup[0]) # abcd
print(tup[1:3]) # (786, 2.23) Dictionnaires
Tables de hachage (paires clé-valeur). Clés : généralement nombres ou chaînes. Valeurs : tout objet Python.
d = {}
d['un'] = "C'est un"
d[2] = "C'est deux"
petit_d = {'nom': 'john', 'code': 6734, 'dept': 'ventes'} Questions sur les chaînes
int(str): Convertit chaîne en entier.float(str): Convertit chaîne en float.str(obj): Convertit objet en chaîne.repr(obj): Convertit objet en chaîne d'expression.eval(str): Évalue chaîne et retourne objet.tuple(str): Convertit chaîne en tuple de caractères.list(str): Convertit chaîne en liste de caractères.set(str): Convertit chaîne en ensemble (doublons supprimés).dict(zip(tup1, tup2)): Crée dictionnaire à partir de deux tuples.- Méthodes :
capitalize(),isalnum(),isdigit(),islower(),isnumeric(),isspace(),istitle(),isupper(),join(),len(),ljust(),lower(),lstrip(),max(),min(),replace(),strip(),upper(),swapcase(),title(),isdecimal().
Questions sur les listes
del liste[i]supprime à l'index ;liste.remove(x)supprime première occurrence de x.len([1,2,3])→ 3[1,2,3] + [4,5,6]→ [1,2,3,4,5,6]['Hi!'] * 4→ ['Hi!', 'Hi!', 'Hi!', 'Hi!']3 in [1,2,3]→ True- Comparaison :
list1 == list2 max(liste),min(liste),liste.index(x),liste.insert(i, x),liste.pop(),liste.reverse(),liste.sort().
Opérateurs
**: Exponentiation (2**3 = 8).//: Division entière (9//5 = 1).is: Teste l'identité (même objet en mémoire).not in: Teste l'absence dans une séquence.
Structures de contrôle
break: Termine la boucle immédiatement.continue: Passe à l'itération suivante.pass: Instruction nulle, évite IndentationError dans blocs vides.
Module random
random.choice(seq): Élément aléatoire d'une liste/tuple.random.choice(range): Entier aléatoire dans une plage.random.random(): Float aléatoire [0, 1[.random.seed(x): Initialise le générateur.random.shuffle(liste): Mélange la liste sur place.
Fonctions et mémoire
- Fonction lambda : Fonction anonyme sans bloc d'instructions ni
return. - Fonction incomplète : Appelée stub ou fonction partielle.
- Zone mémoire pour paramètres/locales : La pile (stack).
Modules et bibliothèques
- Module
os: Interaction avec le système d'exploitation. - Bibliothèque ML :
scikit-learn. - Outils de débogage :
pdb(débogueur intégré),pylint(analyse statique),pyflakes(analyse sans exécution).
Python
- Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
- Maîtriser le contrôle de boucles en Python : break et continue
- Maîtriser les boucles Python : Contrôle de flux et techniques de répétition
- Maîtriser enumerate() en Python : boucler avec indices pour listes, tuples, chaînes et dictionnaires
- Feuille de triche Python Basics : Types de données essentiels, Dictionnaires, Listes & Fonctions
- Maîtriser la gestion d'exceptions Python : try, except, else et finally expliqués
- Maîtriser la gestion d'exceptions en Python : Guide complet
- Entrées/Sorties de fichiers en Python : Maîtriser les opérations de lecture et d'écriture
- Maîtriser la boucle while en Python : Syntaxe, exemples et bonnes pratiques