logo

Top 50+ des questions et réponses d'entretien Python (dernières 2024)

Python est le langage le plus utilisé dans les plus grandes entreprises telles que Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify et bien d'autres en raison de ses performances et de ses puissantes bibliothèques. Pour entrer dans ces entreprises et organisations en tant que développeur Python, vous devez maîtriser certains aspects importants : Questions d'entretien avec Python pour réussir leur cycle d'évaluation en ligne Python et leur cycle d'entretien Python. Nous avons préparé une liste des Top 50 des questions d'entretien Python ainsi que leurs réponses aux as lors des entretiens.

Questions d'entretien avec Python



Table des matières

Questions d'entretien de base sur Python pour les débutants

Python est un langage de programmation de haut niveau à usage général et largement utilisé. Il a été créé par Guido van Rossum en 1991 et développé par la Python Software Foundation. Il a été conçu en mettant l'accent sur la lisibilité du code et sa syntaxe permet aux programmeurs d'exprimer leurs concepts en moins de lignes de code.
Il est utilisé pour :

  • Scripts système
  • Développement web
  • Développement de jeu
  • Développement de logiciels
  • Mathématiques complexes

2. Quels sont les avantages de l’utilisation du langage Python comme outil dans le scénario actuel ?

Voici les avantages de l’utilisation du langage Python :



  • Langage orienté objet
  • Langage de haut niveau
  • Langage typé dynamiquement
  • Bibliothèques de support étendu
  • Présence de modules tiers
  • Open source et développement communautaire
  • Portable et interactif
  • Portable sur tous les systèmes d'exploitation

3. Python est-il un langage compilé ou un langage interprété ?

En fait, Python est un langage partiellement compilé et partiellement interprété. La partie compilation est effectuée en premier lorsque nous exécutons notre code et cela générera du code d'octet en interne. Ce code d'octet sera converti par la machine virtuelle Python (p.v.m) en fonction de la plate-forme sous-jacente (machine + système d'exploitation).

4. À quoi sert le symbole « # » en Python ?

Le « # » est utilisé pour commenter tout ce qui suit sur la ligne.


Les types de données immuables ne peuvent pas être modifiés, c'est-à-dire qu'ils ne peuvent pas changer au moment de l'exécution. Par exemple – Chaîne, Tuple, etc.



6. Comment les arguments sont-ils passés par valeur ou par référence en Python ?

Tout en Python est un objet et toutes les variables contiennent des références aux objets. Les valeurs de référence sont selon les fonctions ; par conséquent, vous ne pouvez pas modifier la valeur des références. Cependant, vous pouvez modifier les objets s'ils sont mutables.

7. Quelle est la différence entre un ensemble et un dictionnaire ?

L'ensemble est une collection non ordonnée de types de données qui est itérable, mutable et ne contient aucun élément en double.
Un dictionnaire en Python est une collection ordonnée de valeurs de données, utilisée pour stocker des valeurs de données comme une carte.

8. Qu'est-ce que la compréhension de liste ? Donne un exemple.

La compréhension de liste est une construction syntaxique visant à faciliter la création d'une liste basée sur un itérable existant.

Par exemple:

my_list = [i for i in range(1, 10)]>

9. Qu'est-ce qu'une fonction lambda ?

Une fonction lambda est une fonction anonyme. Cette fonction peut avoir n'importe quel nombre de paramètres mais ne peut avoir qu'une seule instruction. Par exemple:

a = lambda x, y : x*y print(a(7, 19))>

10. Qu'est-ce qu'une passe en Python ?

Passer signifie n'effectuer aucune opération ou, en d'autres termes, il s'agit d'un espace réservé dans l'instruction composée, où il doit rester un espace vide et où rien ne doit y être écrit.

modèles de conception en Java

11. Quelle est la différence entre / et // en Python ?

/ représente une division précise (le résultat est un nombre à virgule flottante) alors que // représente une division au sol (le résultat est un nombre entier). Par exemple:

5//2 = 2 5/2 = 2.5>

12. Comment la gestion exceptionnelle est-elle effectuée en Python ?

Il existe 3 mots-clés principaux, à savoir try, except et enfin, qui sont utilisés pour intercepter les exceptions et gérer le mécanisme de récupération en conséquence. Try est le bloc d'un code dont les erreurs sont surveillées. Sauf que le bloc est exécuté lorsqu'une erreur se produit.

La beauté du dernier bloc est d’exécuter le code après avoir recherché une erreur. Ce bloc est exécuté indépendamment du fait qu'une erreur se soit produite ou non. Enfin, le bloc est utilisé pour effectuer les activités de nettoyage requises des objets/variables.

13. Qu'est-ce que la fonction swapcase en Python ?

Il s'agit d'une fonction de chaîne qui convertit tous les caractères majuscules en minuscules et vice versa. Il est utilisé pour modifier la casse existante de la chaîne. Cette méthode crée une copie de la chaîne qui contient tous les caractères du cas d'échange. Par exemple:

string = 'techcodeview.com' string.swapcase() --->'gEEKSFORgEEKS'>

14. Différence entre les boucles for et while en Python

La boucle for est généralement utilisée pour parcourir les éléments de différents types de collections tels que Liste , Tuple , Ensemble , et Dictionnaire . Les développeurs utilisent une boucle for dans laquelle ils ont à la fois les conditions de début et de fin. Alors que la boucle while est la véritable fonctionnalité de boucle utilisée dans tout autre langage de programmation. Les programmeurs utilisent une boucle Python while où ils ont juste les conditions de fin.

15. Pouvons-nous passer une fonction comme argument en Python ?

Oui, plusieurs arguments peuvent être transmis à une fonction, notamment des objets, des variables (de types de données identiques ou distincts) et des fonctions. Les fonctions peuvent être transmises en tant que paramètres à d'autres fonctions car ce sont des objets. Les fonctions d'ordre supérieur sont des fonctions qui peuvent prendre d'autres fonctions comme arguments.

Pour en savoir plus, référez-vous à l'article : Passer une fonction comme argument en Python

16. Que sont les *args et les *kwargs ?

Pour passer un nombre variable d'arguments à une fonction en Python, utilisez la syntaxe spéciale *args et **kwargs dans la spécification de la fonction. Il est utilisé pour transmettre une liste d’arguments de longueur variable et sans mot-clé. En utilisant le *, la variable que nous associons au * devient itérable, vous permettant d'effectuer des opérations dessus, comme l'itérer et d'utiliser des opérations d'ordre supérieur comme la carte et le filtre.

17. L'indentation est-elle requise en Python ?

Oui, échancrure est requis en Python. UN Python L'interpréteur peut être informé qu'un groupe d'instructions appartient à un bloc de code spécifique en utilisant l'indentation Python. Les indentations rendent le code facile à lire pour les développeurs dans tous les langages de programmation, mais en Python, il est très important d'indenter le code dans un ordre spécifique.

18. Qu'est-ce que Scope en Python ?

L'emplacement où nous pouvons trouver une variable et également y accéder si nécessaire est appelé la portée d'une variable.

  • Variable locale Python : Les variables locales sont celles qui sont initialisées dans une fonction et qui sont uniques à cette fonction. Il n'est pas accessible en dehors de la fonction.
  • Variables globales Python : Les variables globales sont celles qui sont définies et déclarées en dehors de toute fonction et ne sont spécifiées pour aucune fonction.
  • Portée au niveau du module : Il fait référence aux objets globaux du module courant accessibles dans le programme.
  • Portée la plus externe : Il fait référence à tous les noms intégrés que le programme peut appeler. Le nom référencé se situe en dernier parmi les objets de cette portée.

19. Qu'est-ce que la docstring en Python ?

Les chaînes de documentation Python (ou docstrings) offrent un moyen pratique d'associer la documentation aux modules, fonctions, classes et méthodes Python.

Java se connecte à MySQL
  • Déclarer des Docstrings : Les docstrings sont déclarées à l’aide de « triples guillemets simples » ou de triples guillemets doubles juste en dessous de la déclaration de classe, de méthode ou de fonction. Toutes les fonctions doivent avoir une docstring.
  • Accéder aux Docstrings : Les docstrings sont accessibles en utilisant la méthode __doc__ de l'objet ou en utilisant la fonction d'aide.

20. Qu'est-ce qu'un langage typé dynamiquement ?

Langues typées sont les langages dans lesquels nous définissons le type de données et il sera connu de la machine au moment de la compilation ou au moment de l'exécution. Les langages typés peuvent être classés en deux catégories :

  • Langages typés statiquement : Dans ce type de langage, le type de données d'une variable est connu au moment de la compilation, ce qui signifie que le programmeur doit spécifier le type de données d'une variable au moment de sa déclaration.
  • Langages typés dynamiquement : Ce sont des langages qui ne nécessitent aucun type de données prédéfini pour aucune variable car ils sont interprétés au moment de l'exécution par la machine elle-même. Dans ces langages, les interprètes attribuent le type de données à une variable au moment de l'exécution en fonction de sa valeur.

21. Qu'est-ce qu'une pause, une continuation et une passe en Python ?

Le instruction de pause est utilisé pour terminer la boucle ou l'instruction dans laquelle il est présent. Après cela, le contrôle sera transmis aux instructions présentes après l'instruction break, si elles sont disponibles.

Continuer est également une instruction de contrôle de boucle, tout comme l'instruction break. L'instruction continue est opposée à celle de l'instruction break, au lieu de terminer la boucle, elle force l'exécution de l'itération suivante de la boucle.

Passer signifie n'effectuer aucune opération ou, en d'autres termes, il s'agit d'un espace réservé dans l'instruction composée, où il doit rester un espace vide et où rien ne doit y être écrit.

Numérique : Le type de données numérique en Python représente les données qui ont une valeur numérique. Une valeur numérique peut être un entier, un nombre flottant, un booléen , ou même un nombre complexe.
  • Type de séquence : T Le type de données séquence en Python est la collection ordonnée de types de données similaires ou différents. Il existe plusieurs types de séquences en Python :
  • Types de mappage : En Python, les données hachables peuvent être mappées à des objets aléatoires à l'aide d'un objet de mappage. Il n'existe actuellement qu'un seul type de mappage commun, le dictionnaire, et les objets de mappage sont mutables.
  • Types d'ensembles : En Python, un Ensemble est une collection non ordonnée de types de données qui est itérable, mutable et ne contient aucun élément en double. L'ordre des éléments dans un ensemble n'est pas défini bien qu'il puisse être composé de divers éléments.
  • 23. Comment calculer un nombre en Python ?

    Le module mathématique Python comprend une méthode qui peut être utilisée pour calculer le plancher d'un nombre.

    • sol() La méthode en Python renvoie le plancher de x, c'est-à-dire le plus grand entier non supérieur à x.
    • De plus, la méthode ceil(x) en Python renvoie une valeur plafond de x, c'est-à-dire le plus petit entier supérieur ou égal à x.

    Questions d'entretien intermédiaire avec Python

    24. Quelle est la différence entre les fonctions xrange et range ?

    range() et xrange() sont deux fonctions qui pourraient être utilisées pour itérer un certain nombre de fois dans des boucles for en Python. Dans Python 3, il n'y a pas de xrange, mais la fonction range se comporte comme xrange dans Python 2.

    • gamme() – Ceci renvoie une liste de nombres créés à l’aide de la fonction range().
    • plagex() – Cette fonction renvoie l'objet générateur qui peut être utilisé pour afficher des nombres uniquement en boucle. La seule plage particulière est affichée à la demande et est donc appelée évaluation paresseuse .

    25. Qu'est-ce que la compréhension du dictionnaire ? Donne un exemple

    La compréhension du dictionnaire est une construction syntaxique visant à faciliter la création d'un dictionnaire basé sur l'itérable existant.

    Par exemple: my_dict = {i:i+7 pour i dans la plage (1, 10)}

    26. La compréhension des tuples est-elle ? Si oui, comment, et sinon pourquoi ?

    (i for i in (1, 2, 3))>

    La compréhension de tuple n'est pas possible en Python car elle aboutira dans un générateur, pas dans une compréhension de tuple.

    27. Différencier entre liste et tuple ?

    Analysons les différences entre List et Tuple :

    Liste

    • Les listes sont de type de données Mutable.
    • Les listes consomment plus de mémoire
    • La liste est meilleure pour effectuer des opérations telles que l’insertion et la suppression.
    • L'implication des itérations prend du temps

    Tuple

    premier ordinateur portable
    • Les tuples sont un type de données immuable.
    • Tuple consomme moins de mémoire par rapport à la liste
    • Un type de données Tuple est approprié pour accéder aux éléments
    • L'implication des itérations est comparativement plus rapide

    28. Quelle est la différence entre une copie superficielle et une copie profonde ?

    La copie superficielle est utilisée lorsqu'un nouveau type d'instance est créé et conserve les valeurs copiées, tandis que la copie profonde stocke les valeurs déjà copiées.

    Une copie superficielle accélère l'exécution du programme, tandis qu'une copie profonde la ralentit.

    29. Quelle technique de tri est utilisée par les fonctions sort() et sorted() de python ?

    Python utilise le Tim Trier algorithme de tri. C'est un tri stable dont le pire des cas est O(N log N). Il s’agit d’un algorithme de tri hybride, dérivé du tri par fusion et du tri par insertion, conçu pour fonctionner correctement sur de nombreux types de données du monde réel.

    30. Que sont les décorateurs ?

    Les décorateurs sont un outil très puissant et utile en Python car ils constituent le changement spécifique que nous apportons à la syntaxe Python pour modifier facilement les fonctions.

    31. Comment déboguer un programme Python ?

    En utilisant cette commande, nous pouvons déboguer un programme Python :

    $ python -m pdb python-script.py>

    32. Que sont les itérateurs en Python ?

    En Python, les itérateurs sont utilisés pour itérer un groupe d'éléments, des conteneurs comme une liste. Les itérateurs sont des collections d’éléments et peuvent être une liste, des tuples ou un dictionnaire. L'itérateur Python implémente __itr__ et la méthode next() pour itérer les éléments stockés. Nous utilisons généralement des boucles pour parcourir les collections (liste, tuple) en Python.

    33. Que sont les générateurs en Python ?

    En Python, le générateur est un moyen qui spécifie comment implémenter les itérateurs. C'est une fonction normale sauf qu'elle produit une expression dans la fonction. Il n'implémente pas les méthodes __itr__ et next() et réduit également d'autres frais généraux.

    Si une fonction contient au moins une instruction rendement, elle devient un générateur. Le mot-clé rendement met en pause l'exécution en cours en enregistrant ses états, puis la reprend lorsque cela est nécessaire.

    34. Python prend-il en charge plusieurs héritages ?

    Python prend en charge plusieurs héritages, contrairement à Java. Les héritages multiples signifient qu'une classe peut être dérivée de plusieurs classes parentes.

    35. Qu'est-ce que le polymorphisme en Python ?

    Le polymorphisme signifie la capacité de prendre plusieurs formes. Ainsi, par exemple, si la classe parent a une méthode nommée ABC, la classe enfant peut également avoir une méthode du même nom ABC ayant ses propres paramètres et variables. Python permet le polymorphisme.

    36. Définir l'encapsulation en Python ?

    L'encapsulation signifie lier le code et les données ensemble. Une classe Python est un exemple d'encapsulation.

    38. Comment se fait la gestion de la mémoire en Python ?

    Python utilise son espace de tas privé pour gérer la mémoire. Fondamentalement, tous les objets et structures de données sont stockés dans l’espace de tas privé. Même le programmeur ne peut pas accéder à cet espace privé car l'interprète s'occupe de cet espace. Python dispose également d'un garbage collector intégré, qui recycle toute la mémoire inutilisée, libère la mémoire et la rend disponible pour l'espace du tas.

    39. Comment supprimer un fichier en utilisant Python ?

    Nous pouvons supprimer un fichier en utilisant Python en suivant les approches :

    • os.remove()
    • os.unlink()

    40. Qu'est-ce que le découpage en Python ?

    Découpage Python est une opération de chaîne pour extraire une partie de la chaîne ou une partie d'une liste. Avec cet opérateur, on peut spécifier où commencer le découpage, où se terminer et spécifier l'étape. Le découpage de liste renvoie une nouvelle liste à partir de la liste existante.

    diagramme de classes Java
    Syntax: Lst[ Initial : End : IndexJump ]>

    41. Qu'est-ce qu'un espace de noms en Python ?

    Un espace de noms est un système de dénomination utilisé pour garantir que les noms sont uniques afin d'éviter les conflits de noms.

    Questions et réponses d'entretien Python avancées

    42. Qu'est-ce que le PIP ?

    PIP est l'acronyme de Python Installer Package qui fournit une interface transparente pour installer divers modules Python. Il s'agit d'un outil de ligne de commande qui peut rechercher des packages sur Internet et les installer sans aucune interaction de l'utilisateur.

    43. Qu'est-ce qu'une fonction zip ?

    La fonction Python zip() renvoie un objet zip, qui mappe un index similaire de plusieurs conteneurs. Il prend un itérable, le convertit en itérateur et agrège les éléments en fonction des itérables transmis. Il renvoie un itérateur de tuples.

    44. Que sont le décapage et le décapage ?

    Le module Pickle accepte n'importe quel objet Python, le convertit en une représentation sous forme de chaîne et le sauvegarde dans un fichier à l'aide de la fonction dump. Ce processus est appelé pickling. Alors que le processus de récupération des objets Python originaux à partir de la représentation sous forme de chaîne stockée est appelé dépickling.

    45. Qu'est-ce que le patch singe en Python ?

    En Python, le terme patch singe fait uniquement référence aux modifications dynamiques d'une classe ou d'un module au moment de l'exécution.

    # 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. ​​Qu'est-ce que __init__() en Python ?

    Équivalent aux constructeurs dans la terminologie POO, __init__ est une méthode réservée dans les classes Python. La méthode __init__ est appelée automatiquement chaque fois qu'un nouvel objet est lancé. Cette méthode alloue de la mémoire au nouvel objet dès sa création. Cette méthode peut également être utilisée pour initialiser des variables.

    47. Écrire un code pour afficher l'heure actuelle ?

    import time  currenttime= time.localtime(time.time()) print (Current time is, currenttime)>

    48. Que sont les spécificateurs d'accès en Python ?

    Python utilise le symbole « _ » pour déterminer le contrôle d'accès pour une donnée membre spécifique ou une fonction membre d'une classe. Une classe en Python a trois types de Modificateurs d'accès Python :

    • Modificateur d'accès public : Les membres d'une classe déclarés publics sont facilement accessibles depuis n'importe quelle partie du programme. Toutes les données membres et fonctions membres d’une classe sont publiques par défaut.
    • Modificateur d'accès protégé : Les membres d'une classe déclarés protégés ne sont accessibles qu'à une classe qui en dérive. Toutes les données membres d'une classe sont déclarées protégées en ajoutant un seul symbole de trait de soulignement « _ » avant les données membres de cette classe.
    • Modificateur d'accès privé : Les membres d'une classe déclarés privés sont accessibles uniquement au sein de la classe, le modificateur d'accès privé est le modificateur d'accès le plus sécurisé. Les données membres d'une classe sont déclarées privées en ajoutant un double trait de soulignement « __ » avant les données membres de cette classe.

    49. Que sont les tests unitaires en Python ?

    Les tests unitaires sont le premier niveau de test logiciel où les plus petites parties testables du logiciel sont testées. Ceci est utilisé pour valider que chaque unité du logiciel fonctionne comme prévu. Le framework de tests unitaires est le framework de style xUnit de Python. La méthode de test en boîte blanche est utilisée pour les tests unitaires.

    50. Verrouillage global de l'interprète Python (GIL) ?

    Verrouillage de l'interpréteur global Python (GIL) est un type de verrou de processus utilisé par Python chaque fois qu'il traite des processus. Généralement, Python n'utilise qu'un seul thread pour exécuter l'ensemble des instructions écrites. Les performances du processus monothread et du processus multithread seront les mêmes en Python et cela est dû au GIL en Python. Nous ne pouvons pas réaliser le multithreading en Python car nous disposons d'un verrou d'interpréteur global qui restreint les threads et fonctionne comme un seul thread.

    51. Que sont les annotations de fonctions en Python ?

    Annotation de fonction est une fonctionnalité qui vous permet d'ajouter des métadonnées aux paramètres de fonction et aux valeurs de retour. De cette façon, vous pouvez spécifier le type d'entrée des paramètres de la fonction et le type de retour de la valeur renvoyée par la fonction.

    Les annotations de fonction sont des expressions Python arbitraires associées à diverses parties de fonctions. Ces expressions sont évaluées au moment de la compilation et n’ont aucune vie dans l’environnement d’exécution de Python. Python n'attache aucune signification à ces annotations. Ils prennent vie lorsqu'ils sont interprétés par des bibliothèques tierces, par exemple mypy.

    52. Que sont les groupes d'exceptions en Python ?

    La dernière fonctionnalité de Python 3.11, Groupes d'exceptions . L'ExceptionGroup peut être géré à l'aide d'une nouvelle syntaxe except*. Le symbole * indique que plusieurs exceptions peuvent être gérées par chaque clause except*.

    ExceptionGroup est une collection/groupe de différents types d’exceptions. Sans créer plusieurs exceptions, nous pouvons regrouper différentes exceptions que nous pouvons ensuite récupérer une par une chaque fois que nécessaire, l'ordre dans lequel les exceptions sont stockées dans le groupe d'exceptions n'a pas d'importance lors de leur appel.

    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. Qu'est-ce que l'instruction Python Switch

    À partir de la version 3.10, Python a implémenté une fonctionnalité de changement de cas appelée correspondance de modèles structurels. Vous pouvez implémenter cette fonctionnalité avec les mots-clés match et case. Notez que le symbole de soulignement est ce que vous utilisez pour définir un cas par défaut pour l'instruction switch en Python.

    Note : Avant Python 3.10, Python ne prend pas en charge les instructions match.

    analyser la chaîne en entier
    Python3
    match term: case pattern-1: action-1 case pattern-2: action-2 case pattern-3: action-3 case _: action-default>

    54. Qu'est-ce que l'opérateur Walrus ?

    L'opérateur morse vous permet d'attribuer une valeur à une variable dans une expression. Cela peut être utile lorsque vous devez utiliser une valeur plusieurs fois dans une boucle, mais que vous ne souhaitez pas répéter le calcul.

    L'opérateur Walrus est représenté par la syntaxe `:=` et peut être utilisé dans divers contextes, y compris les boucles while et les instructions if.

    Note: Les versions Python antérieures à 3.8 ne prennent pas en charge Walrus Operator.

    Python3
    names = ['Jacob', 'Joe', 'Jim'] if (name := input('Enter a name: ')) in names: print(f'Hello, {name}!') else: print('Name not found.')>