Vous préparez des entretiens en Python ? Ou êtes-vous simplement curieux de savoir ce que vous savez de Python ? Pas de problème. Nous couvrons ici vos problèmes avec des questions et des réponses.
Cet article vous aidera à comprendre le type de questions auxquelles vous pourriez être confronté lors des entretiens. Ou vous aider à évaluer vos compétences en Python. Assurez-vous de répondre aux questions avant de voir les réponses afin de vous évaluer avec précision. Sans plus attendre, plongeons dans les questions.
Les questions sont divisées en différentes sections basées sur le type de sujet. Chaque section comporte des questions et des réponses adaptées. Vous pouvez modifier la réponse dans votre propre langue en conservant le même sens. Ainsi, l’examinateur n’aura pas l’impression que vous lisez quelque chose.
Qu’est-ce que Python ?
Réponse : Python est un langage de programmation interprété de haut niveau à usage général. On peut construire presque n’importe quel type d’application en utilisant Python avec des bibliothèques et des cadres tiers. Python est l’un des langages de programmation les plus populaires dans les technologies avancées telles que l’IA, la science des données, etc.
Quelle est la principale différence entre un interprète et un compilateur ?
Réponse : L’interprète traduit une déclaration à la fois en code machine, tandis que le compilateur traduit le code entier à la fois en code machine.
Python est-il un langage à typage statique ou dynamique ?
Réponse : Python est un langage à typage dynamique.
Qu’entendez-vous par langage dynamiquement typé ?
Réponse : Les langages à typage dynamique vérifient le type des variables au moment de l’exécution. Certains langages dynamiquement typés sont Python, JavaScript, Ruby, etc.
Bonus : Les langages à typage statique vérifient le type des variables à la compilation. Certains langages à typage statique sont C , C, Java, etc..,
Donnez quelques applications de Python.
Répondez : Python a une syntaxe plus simple et facile à apprendre. Elle peut ressembler à celle de l’anglais. La communauté de développeurs pour Python est énorme. Nous pouvons trouver de nombreux paquets tiers pour travailler avec différents types de développement d’applications. En ce qui concerne le développement, nous pouvons créer des applications web, des applications GUI, des applications CLI, etc..,
L’une des applications les plus populaires de Python est l’automatisation. Nous pouvons facilement créer des scripts en Python pour automatiser des tâches telles que le nettoyage d’un disque, l’envoi de courriers électroniques, l’obtention de données sur les prix des produits, etc..,
Python est l’un des langages les plus populaires dans le domaine de la science des données.
Quelles applications avez-vous créées en utilisant Python ?
Réponse : J’ai écrit de nombreux scripts d’automatisation pour éliminer les tâches répétitives et ennuyeuses. Et des scripts pour obtenir des informations sur les prix des produits, leur disponibilité, etc.
J’ai également travaillé avec des frameworks comme Django, Flask pour construire des applications web. Et j’ai construit quelques applications web en utilisant à la fois Django et Flask.
Remarque: la réponse ci-dessus est un exemple. Votre réponse peut être complètement différente de celle-ci. Essayez d’expliquer les différents domaines sur lesquels vous avez travaillé en utilisant Python. Montrez les applications si elles sont disponibles.
Quels sont les types de données intégrés dans Python ?
Réponse : Il y a plusieurs types de données intégrés dans Python. Il s’agit de int, float, complex, bool, list, tuple, set, dict, str.
Note : Vousn’avez pas besoin de citer tous les types de données présents dans Python. Mentionnez certains d’entre eux que vous utilisez le plus souvent. L’examinateur peut vous poser des questions en fonction de votre réponse.
La liste et le tuple sont tous deux utilisés pour stocker une collection d’objets. La principale différence entre la liste et le tuple est que “la liste est un objet mutable alors que le tuple est un objet immuable”.
Quels sont les types de données mutables et immuables ?
Réponse : Les types de données mutables peuvent être modifiés après leur création. Certains des objets mutables en Python sont list, set, dict.
Les types de données immuables ne peuvent pas être modifiés après leur création. Certains des objets immuables en Python sont str, tuple.
Expliquez quelques méthodes de la liste.
Réponse:
1. append – cette méthode est utilisée pour ajouter un élément à la liste. Elle ajoute l’élément à la fin de la liste.
>>> a = [1, 2]
>>> a.append(3)
>>> a
[1, 2, 3]
2. pop – cette méthode est utilisée pour supprimer un élément de la liste. Elle supprimera le dernier élément si aucun index n’est fourni en argument ou l’élément à l’index si un argument est fourni.
>>> a = [1, 2, 3, 4, 5]
>>> a.pop()
5
>>> a
[1, 2, 3, 4]
>>> a.pop(1)
2
>>> a
[1, 3, 4]
3. remove – cette méthode est utilisée pour supprimer un élément de la liste. Nous devons fournir en argument l’élément que nous voulons retirer de la liste. Cette méthode supprime la première occurrence de l’élément de la liste.
>>> a = [1, 2, 2, 3, 4]
>>> a = [1, 2, 3, 2, 4]
>>> a.remove(1)
>>> a
[2, 3, 2, 4]
>>> a.remove(2)
>>> a
[3, 2, 4]
4. sort – la méthode utilisée pour trier la liste dans l’ordre croissant ou décroissant.
>>> a = [3, 2, 4, 1]
>>> a.sort()
>>> a
[1, 2, 3, 4]
>>> a.sort(reverse=True)
>>> a
[4, 3, 2, 1]
5. reverse – la méthode est utilisée pour inverser les éléments de la liste.
>>> a = [3, 2, 4, 1]
>>> a.reverse()
>>> a
[1, 4, 2, 3]
Remarque : ilexiste d’autres méthodes telles que clear, insert, count, etc. Vous n’avez pas besoin d’expliquer toutes les méthodes de la liste à votre interlocuteur. Expliquez simplement deux ou trois méthodes que vous utilisez le plus souvent.
Expliquez quelques méthodes de chaîne de caractères.
Réponse:
1. split – cette méthode est utilisée pour diviser la chaîne de caractères aux endroits souhaités. Elle renvoie la liste comme résultat. Par défaut, elle divise la chaîne au niveau des espaces. Vous pouvez fournir le délimiteur comme argument de la méthode.
>>> a = "Ceci est Geekflare"
>>> a.split()
['This', 'is', 'Geekflare']
>>> a = "1, 2, 3, 4, 5, 6"
>>> a.split(", ")
['1', '2', '3', '4', '5', '6']
2. join – cette méthode est utilisée pour combiner une liste d’objets de type chaîne de caractères. Elle combine les objets de type chaîne avec le délimiteur que nous fournissons.
>>> a = ['This', 'is', 'Geekflare']
>>> ' '.join(a)
'Ceci est Geekflare'
>>> ', '.join(a)
'Ceci, est, Geekflare'
Note :D’autres méthodes pour les chaînes de caractères sont : capitaliser, isalnum, isalpha, isdigit, lower, upper, center, etc..,
Qu’est-ce que l’indexation négative dans les listes ?
Réponse : L’index est utilisé pour accéder à l’élément dans les listes. L’indexation normale de la liste commence à 0.
Tout comme l’indexation normale, l’indexation négative est également utilisée pour accéder aux éléments des listes. Mais l’indexation négative nous permet d’accéder à l’index à partir de la fin de la liste. Le début de l’indexation négative est -1. Et il continue à augmenter comme -2, -3, -4, etc…, jusqu’à la longueur de la liste.
>>> a = [1, 2, 3, 4, 5]
>>> a[-1]
5
>>> a[-3]
3
>>> a[-5]
1
Expliquez quelques méthodes de dict.
Réponse:
1. items – la méthode renvoie les paires clé/valeur des dictionnaires sous la forme d’une liste de tuples.
>>> a = {1 : 'Geekflare', 2 : 'Geekflare Tools', 3 : 'Geekflare Online Compiler'}
>>> a.items()
dict_items([(1, 'Geekflare'), (2, 'Geekflare Tools'), (3, 'Geekflare Online Compiler')])
2. pop – cette méthode est utilisée pour supprimer la paire clé/valeur du dictionnaire. Elle accepte la clé comme argument et la supprime du dictionnaire.
>>> a = {1 : 2, 2 : 3}
>>> a.pop(2)
3
>>> a
{1 : 2}
Remarque : les autres méthodes de dict sont : get, keys, values, clear, etc.
Qu’est-ce que le découpage en tranches en Python ?
Réponse : Le découpage est utilisé pour accéder au sous-réseau d’un type de données de séquence. Il renvoie les données du type de données de séquence en fonction des arguments fournis. Il renvoie le même type de données que le type de données source.
Le découpage accepte trois arguments. Il s’agit de l’index de départ, de l’index de fin et du pas d’incrémentation. La syntaxe du découpage est variable[start:end:step]
. Les arguments ne sont pas obligatoires pour le découpage. Vous pouvez spécifier des deux-points vides ( 🙂 qui renvoient l’ensemble des données comme résultat.
>>> a = [1, 2, 3, 4, 5]
>>> a[ :]
[1, 2, 3, 4, 5]
>>> a[:3]
[1, 2, 3]
>>> a[3 :]
[4, 5]
>>> a[0:5:2]
[1, 3, 5]
Quels sont les types de données qui permettent le découpage en tranches ?
Réponse : Nous pouvons utiliser le découpage sur les types de données list, tuple et str.
Que sont les opérateurs de déballage en Python ? Comment les utiliser ?
Réponse : Les opérateurs * et ** sont des opérateurs de déballage en Python.
L’opérateur de décompression * est utilisé pour affecter plusieurs valeurs à différentes valeurs à la fois à partir de types de données séquentielles.
>>> items = [1, 2, 3]
>>> a, b, c = items
>>> a
1
>>> b
2
>>> c
3
>>> a, *b = éléments
>>> a
1
>>> b
[2, 3]
L’opérateur de déballage ** est utilisé avec les types de données dict . Le déballage dans les dictionnaires ne fonctionne pas comme le déballage avec les types de données de type séquence.
Le déballage dans les dictionnaires est principalement utilisé pour copier des éléments clé/valeur d’un dictionnaire à un autre.
>>> a = {1:2, 3:4}
>>> b = {**a}
>>> b
{1 : 2, 3 : 4}
>>> c = {3:5, 5:6}
>>> b = {**a, **c}
>>> b
{1 : 2, 3 : 5, 5 : 6}
Note : Vous pouvez vous référer à cet article pour plus d’informations sur ces opérateurs.
Python dispose-t-il d’instructions de commutation ?
Réponse : Non, Python n’a pas d’instructions switch.
Comment implémenter la fonctionnalité des instructions switch en Python ?
Réponse : Nous pouvons implémenter la fonctionnalité des instructions de commutation en utilisant les instructions if et elif .
>>> si a == 1 :
... print(...)
... elif a == 2 :
... print(....)
Qu’est-ce que les instructions break et continue ?
Réponse:
break – l’instruction break est utilisée pour mettre fin à une boucle en cours d’exécution. L’exécution du code passe à l’extérieur de la boucle break.
>>> for i in range(5) :
... si i == 3 :
... break
... print(i)
...
0
1
2
continue – l’instruction continue est utilisée pour sauter l’exécution du code restant. Le code après l’instruction continue ne s’exécute pas dans l’itération en cours, et l’exécution passe à l’itération suivante.
>>> for i in range(5) :
... si i == 3 :
... continue
... print(i)
...
0
1
2
4
Quand le code dans else est-il exécuté avec les boucles while et for ?
Réponse : Le code à l’intérieur du bloc else avec les boucles while et for est exécuté après l’exécution de toutes les itérations. Le code à l’intérieur du bloc else ne s’exécute pas lorsque nous interrompons les boucles.
Que sont les compréhensions de liste et de dictionnaire ?
Réponse : Les compréhensions de liste et de dictionnaire sont du sucre syntaxique pour les boucles for.
>>> a = [i for i in range(10)]
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a = {i : i 1 for i in range(10)}
>>> a
{0 : 1, 1 : 2, 2 : 3, 3 : 4, 4 : 5, 5 : 6, 6 : 7, 7 : 8, 8 : 9, 9 : 10}
>>>
Comment fonctionne la fonction range ?
Réponse : La fonction range renvoie la séquence de nombres entre le début et la fin avec un incrément de pas. La syntaxe de la fonction range est range(start, stop[, step]).
L’argument stop est obligatoire. Les arguments start et step sont facultatifs. Les valeurs par défaut de start et step sont respectivement 0 et 1 .
>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>>
Quels sont les paramètres et les arguments ?
Réponse : Les paramètres sont les noms énumérés dans la définition de la fonction.
Les arguments sont les valeurs transmises à la fonction lors de l’invocation.
Quels sont les différents types d’arguments en Python ?
Réponse : Il existe principalement quatre types d’arguments. Il s’agit des arguments positionnels, des arguments par défaut, des arguments par mot-clé et des arguments arbitraires.
Arguments de position : les arguments normaux que nous définissons dans les fonctions définies par l’utilisateur sont appelés arguments de position. Tous les arguments positionnels sont requis lors de l’invocation de la fonction.
>>> def add(a, b) :
... return a b
...
>>> add(1, 2)
3
>>> add(1)
Traceback (dernier appel le plus récent) :
Fichier "<stdin>", ligne 1, in <module>
TypeError : add() missing 1 required positional argument : 'b'
>>>
Arguments par défaut : nous pouvons fournir la valeur des arguments dans la définition de la fonction elle-même comme valeur par défaut. Si l’utilisateur n’a pas fourni de valeur, la fonction prendra en compte la valeur par défaut.
>>> def add(a, b=3) :
... return a b
...
>>> add(1, 2)
3
>>> add(1)
4
Arguments par mot-clé : nous pouvons spécifier le nom des arguments lors de l’invocation de la fonction et leur attribuer des valeurs. Les arguments de type mot-clé nous permettent d’éviter l’ordre qui est obligatoire dans les arguments positionnels.
>>> def add(a, b) :
... print("a ", a)
... print("b ", b)
... return a b
...
>>> add(b=4, a=2)
a 2
b 4
6
Arguments arbitraires : nous utilisons des arguments arbitraires pour collecter un ensemble de valeurs à un moment où nous ne connaissons pas le nombre d’arguments que la fonction recevra. Nous utilisons les opérateurs * et ** dans la définition de la fonction pour collecter les arguments.
>>> def add(*args) :
... return sum(args)
...
>>> add(1, 2, 3, 4, 5)
15
>>> def dict_args(**kwargs) :
... print(kwargs)
...
>>> dict_args(a='Geekflare', b='Geekflare Tools', c='Geekflare Online Compiler')
{'a' : 'Geekflare', 'b' : 'Geekflare Tools', 'c' : 'Geekflare Online Compiler'}
Qu’est-ce que la fonction lambda ?
Réponse : Les fonctions lambda sont de petites fonctions anonymes en Python. Elles ont des expressions simples et acceptent des arguments multiples.
>>> add = lambda a, b : a b
>>> add(1, 3)
4
Quelle est la différence entre une fonction normale et une fonction lambda ?
Réponse : La fonctionnalité des fonctions normales et des fonctions lambda est similaire. Cependant, nous devons écrire un peu plus de code dans les fonctions normales que dans les fonctions lambda pour la même fonctionnalité.
Les fonctions lambda sont très utiles lorsqu’il n’y a qu’une seule expression.
À quoi sert le mot-clé pass ?
Réponse : Le mot-clé pass est utilisé pour mentionner un bloc vide dans le code. Python ne nous permet pas de laisser les blocs sans code. Ainsi, l’instruction pass nous permet de définir des blocs vides (lorsque nous décidons de remplir le code plus tard).
>>> def add(*args) :
...
...
Fichier "<stdin>", ligne 3
^
IndentationError : expected an indented block
>>> def add(*args) :
... pass
...
>>>
Qu’est-ce qu’une fonction récursive ?
Réponse : La fonction qui s’appelle elle-même est appelée fonction récursive.
Que sont les opérateurs d’emballage en Python ? Comment les utiliser ?
Réponse : Les opérateurs d’empaquetage sont utilisés pour rassembler plusieurs arguments dans les fonctions. Ils sont connus sous le nom d’arguments arbitraires.
Note: vous pouvez vous référer à cet article pour plus d’informations sur les opérateurs d’empaquetage en Python.
Quel mot-clé est utilisé pour créer des classes en Python ?
Réponse : Le mot clé class est utilisé pour créer des classes en Python. Nous devrions suivre le cas pascal pour nommer les classes en Python comme une pratique standard de l’industrie.
>>> class Car :
... pass
...
Comment instancier une classe en Python ?
Réponse : Nous pouvons créer une instance d’une classe en Python en l’appelant simplement comme une fonction. Nous pouvons passer les attributs requis pour l’objet de la même manière que nous le faisons pour les arguments de fonction.
>>> classe Voiture :
... def __init__(self, color) :
... self.color = color
...
>>> voiture_rouge = voiture('rouge')
>>> red_car.color
'rouge'
>>> voiture_verte = voiture('verte')
>>> voiture_verte.couleur
'vert'
>>>
Qu’est-ce que self en Python ?
Réponse : Le self représente l’objet de la classe. Il est utilisé pour accéder aux attributs et aux méthodes de l’objet à l’intérieur de la classe pour un objet particulier.
Qu’est-ce que la méthode __init__ ?
Réponse : La méthode __init__ est une méthode de construction similaire aux constructeurs des autres langages OOP. Elle s’exécute immédiatement lorsque nous créons un objet pour la classe. Elle est utilisée pour initialiser les données initiales de l’instance.
Qu’est-ce que docstring en Python ?
Réponse : Les chaînes de documentation ou docstrings sont utilisées pour documenter un bloc de code. Elles sont également utilisées comme des commentaires sur plusieurs lignes.
Ces chaînes de documentation sont utilisées dans les méthodes d’une classe pour décrire ce que fait une certaine méthode. Nous pouvons voir la chaîne de documentation de la méthode à l’aide de la méthode help .
>>> classe Voiture :
... def __init__(self, color) :
... self.color = color
...
... def change_color(self, updated_color) :
... """Cette méthode change la couleur de la voiture""
... self.color = updated_color
...
>>> voiture = voiture('rouge')
>>> help(car.change_color)
Aide sur la méthode change_color dans le module __main__ :
méthode change_color(updated_color) de l'instance __main__.Car
Cette méthode change la couleur de la voiture
>>>
Que sont les méthodes dunder ou magic ?
Réponse : Les méthodes dont le préfixe et le suffixe sont soulignés sont appelées méthodes d’annulation ou méthodes magiques. Elles sont principalement utilisées pour surcharger les méthodes. Certaines des méthodes que nous pouvons remplacer dans les classes sont __str__, __len__, __setitem__, __getitem__, etc..,
>>> classe Voiture :
... def __str__(self) :
... return "Ceci est une classe Voiture"
...
>>> voiture = Voiture()
>>> print(voiture)
Ceci est une classe de voiture
>>>
Remarque: il existe de nombreuses autres méthodes que vous pouvez remplacer. Elles sont utiles lorsque vous souhaitez personnaliser le code en profondeur. Consultez la documentation pour plus d’informations.
Comment implémenter l’héritage en Python ?
Réponse : Nous pouvons passer la classe mère à la classe enfant en tant qu’argument. Et nous pouvons invoquer la méthode init de la classe parent dans la classe enfant.
>>> classe Animal :
... def __init__(self, name) :
... self.name = name
...
>>> classe Animal : e) :
... def __init__(self, name) :
... self.name = name
...
... def display(self) :
... print(self.name)
>>> classe Chien(Animal) : e):ame)
... def __init__(self, name) :
... super().__init__(name)
...
>>> doggy = Dog('Tommy')
>>> doggy.display()
Tommy
>>>
Comment accéder à la classe parent à l’intérieur de la classe enfant en Python ?
Réponse : Nous pouvons utiliser super(), qui fait référence à la classe mère à l’intérieur de la classe enfant. Cela permet d’accéder aux attributs et aux méthodes.
Comment utiliser les commentaires sur une ou plusieurs lignes en Python ?
Réponse : Nous utilisons le dièse (#) pour les commentaires sur une seule ligne. Et les triples guillemets simples (”’commentaire”) ou triples guillemets doubles (“commentaire”) pour les commentaires sur plusieurs lignes.
Qu’est-ce qu’un objet en Python ?
Réponse : Tout en Python est un objet. Tous les types de données, fonctions et classes sont des objets.
Quelle est la différence entre is et == ?
Réponse : L’opérateur == est utilisé pour vérifier si deux objets ont la même valeur ou non. L’opérateur is est utilisé pour vérifier si deux objets font référence au même emplacement mémoire ou non.
>>> a = []
>>> b = []
>>> c = a
>>> a == b
Vrai
>>> a est b
Faux
>>> a est c
Vrai
>>>
Qu’est-ce que la copie superficielle et la copie profonde ?
Réponse:
Copie superficielle : elle crée une copie exacte de l’original sans modifier les références des objets. Or, les objets copiés et originaux se réfèrent aux mêmes références d’objets. Par conséquent, la modification d’un objet affectera l’autre.
La méthode copy du module copy est utilisée pour la copie superficielle.
>>> from copy import copy
>>> a = [1, [2, 3]]
>>> b = copy(a)
>>> a<x><x>[1]</x></x>.append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 4]]
Copie profonde : elle copie récursivement les valeurs de l’objet d’origine dans le nouvel objet. Nous devons utiliser la fonction slicing ou deepcopy du module copy pour la copie profonde.
>>> from copy import deepcopy
>>> a = [1, [2, 3]]
>>> b = deepcopy(a)
>>> a<x><x>[1]</x></x>.append(4)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3]]
>>> b<x><x>[1]</x></x>.append(5)
>>> a
[1, [2, 3, 4]]
>>> b
[1, [2, 3, 5]]
>>>
Qu’est-ce qu’un itérateur ?
Réponse : Les itérateurs sont des objets en Python qui se souviennent de leur état d’itération. Ils initialisent les données avec la méthode __iter__ et renvoient l’élément suivant avec la méthode __next__ .
Nous devons appeler next(iterator) pour obtenir l’élément suivant de l’itérateur. Nous pouvons également convertir un type de données de séquence en itérateur à l’aide de la méthode intégrée iter.
>>> a = [1, 2]
>>> iterator = iter(a)
>>> next(iterator)
1
>>> next(iterator)
2
>>> next(iterator)
Traceback (dernier appel le plus récent) :
Fichier "<stdin>", ligne 1, in <module>
StopIteration
>>>
Que sont les générateurs ?
Réponse : Les générateurs sont des fonctions qui renvoient un itérateur comme un objet générateur. Il utilise le rendement pour générer les données.
>>> def numbers(n) :
... for i in range(1, n 1) :
... yield i
...
>>> _10 = nombres(10)
>>> next(_10)
1
>>> suivant(_10)
2
>>> suivant(_10)
3
>>> suivant(_10)
4
Que sont les espaces de noms Python ?
Réponse : Considérez la liste de contacts de votre téléphone comme un espace de noms. Vous pouvez avoir plusieurs amis qui s’appellent John, mais en spécifiant un contact comme “John Smith” ou “John Doe”, vous pouvez les identifier de manière unique.
Dans cet exemple, les espaces de noms fournissent une méthode permettant d’identifier et de gérer distinctement des entités portant des noms similaires, évitant ainsi les confusions et les conflits. De même, en Python, les espaces de noms évitent les conflits de noms et offrent une approche structurée pour organiser les variables, les fonctions, les classes et autres identifiants au sein d’un programme.
Qu’est-ce que l’encapsulation ?
Réponse : Prenons l’exemple d’un système de verrouillage de porte moderne et sécurisé. Les mécanismes internes de la serrure, tels que le clavier électronique et le pêne motorisé, sont encapsulés dans la serrure. Les utilisateurs interagissent avec la serrure par le biais d’un clavier ou d’une application mobile.
Classe : SecureLock
Attributs :
- codes_d'accès
- lock_status
- paramètres_utilisateur
Méthodes :
- enter_code()
- verrouiller()
- déverrouiller()
- get_lock_status()
En encapsulant les mécanismes de la serrure, les utilisateurs bénéficient d’une expérience conviviale. Ils peuvent contrôler en toute sécurité l’accès à leur propriété sans avoir à gérer les complexités techniques de la serrure elle-même. L’encapsulation garantit un contrôle efficace et sécurisé de la porte.
En résumé, l’encapsulation en Python consiste à regrouper les données (variables) et les méthodes au sein d’une classe, où les variables privées ne sont accessibles et modifiées que par le biais des méthodes. Cette pratique améliore la protection des données, la maintenabilité du code et la conception globale du logiciel.
Expliquez ce qu’est l’héritage et ses types.
Réponse : L’héritage permet aux programmeurs de créer une classe qui peut acquérir les méthodes et les attributs d’une autre classe. Il existe cinq types d’héritage :
- Héritage simple : Une classe hérite des attributs et des méthodes d’une seule classe de base.
- Héritage multiple : Une classe peut hériter de plusieurs classes de base, dont elle acquiert les attributs et les méthodes.
- Héritage à plusieurs niveaux : Dans cette hiérarchie, une classe dérivée sert de classe de base à une autre classe.
- Héritage hiérarchique : Plusieurs classes dérivées héritent d’une classe de base commune.
- Héritage hybride : Une combinaison d’héritages multiples et d’autres formes d’héritage.
Chaque forme d’héritage fournit une approche unique de l’organisation des classes et de l’échange de fonctionnalités au sein des programmes Python.
Expliquez le polymorphisme en Python.
Répondez : Le polymorphisme en Python a un nom et plusieurs fonctions. C’est comme un outil avec des utilisations différentes en fonction des besoins. Il gère différentes données et instructions. Imaginez que vous ayez un programme qui traite différentes formes, comme des cercles et des rectangles. Vous voulez calculer leurs surfaces. Au lieu de créer des fonctions distinctes pour chaque forme, c’est là que le polymorphisme entre en jeu.
classe Shape :
def calculate_area(self) :
pass
classe Cercle(Forme) :
def __init__(self, radius) :
self.radius = radius
def calculate_area(self) :
return 3.14159 * self.radius * self.radius
classe Rectangle(Forme) :
def __init__(self, width, height) :
self.width = width
self.height = hauteur
def calculate_area(self) :
return self.width * self.height
# Utilisation du polymorphisme
shapes = [Circle(5), Rectangle(4, 6)]
pour forme dans formes :
area = shape.calculate_area()
print(f "Surface : {surface}")
Dans l’exemple ci-dessus, la classe Shape possède une méthode calculate_area(), qui est surchargée dans les classes Circle et Rectangle. Même si vous appelez la même méthode (calculate_area()), elle se comporte différemment en fonction du type de l’objet (polymorphisme). De cette manière, vous pouvez gérer différentes formes en utilisant une approche unifiée.
Expliquez le multithreading en Python.
Réponse : Le multithreading signifie qu’un processeur effectue plusieurs tâches à la fois. Même sur un processeur de base à une seule partie, il gère cela en passant rapidement d’une tâche à l’autre. Le module de threading de Python facilite l’utilisation de plusieurs threads. C’est comme si différents travailleurs travaillaient ensemble dans un programme. Voici un exemple rapide :
import threading
def task1() :
# Votre tâche ici
def task2() :
# Votre tâche ici
thread1 = threading.Thread(target=task1)
thread2 = threading.Thread(target=task2)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
print("Les deux tâches sont terminées")
Expliquez comment Python gère la mémoire.
Réponse : La gestion de la mémoire dans Python est un emplacement de stockage privé où tous les éléments et structures Python sont stockés. Le gestionnaire de mémoire de Python gère cette zone de stockage privée et effectue diverses opérations de stockage dynamique telles que le partage, la division, la réservation et la mise en cache. Ce gestionnaire en coulisses est divisé en plusieurs parties, chacune traitant d’un aspect différent de la gestion de la mémoire.
Python est-il sensible à la casse ?
Réponse : Oui, Python est un langage sensible à la casse.
Qu’est-ce que le Pythonpath ?
Réponse : Pythonpath agit comme un panneau indicateur pour l’interpréteur Python, lui indiquant où trouver les différents outils et bibliothèques. Considérez-le comme une carte permettant à Python de naviguer dans son monde. Alors que d’autres langages ont un système similaire appelé PATH, Pythonpath est plus polyvalent, contenant des répertoires supplémentaires spécifiquement pour les modules Python.
Que sont les modules, paquets et bibliothèques Python ?
Réponse:
Les modules : Un module Python est comme une boîte étiquetée pour votre code. Il contient les fonctions, les classes et les choses dont vous voulez vous souvenir. Vous pouvez également y placer du code qui s’exécute. C’est comme si vous aviez des boîtes bien rangées pour vos outils de code, ce qui rend votre programmation plus facile.
Les paquets : Les paquets sont des collections de modules apparentés regroupés dans une hiérarchie de répertoires. Ils vous permettent d’organiser votre code à un niveau supérieur. Un paquet peut contenir des modules et des sous-paquets. Cela permet de créer des projets plus structurés et organisés.
Bibliothèques : Une bibliothèque est une collection de modules et de paquets. C’est une sorte de boîte à outils qui offre un large éventail de fonctionnalités, vous permettant d’effectuer diverses tâches sans avoir à réinventer la roue. Les bibliothèques peuvent être intégrées (fournies par Python lui-même) ou externes (créées par d’autres développeurs). – les bibliothèques peuvent être intégrées (fournies par Python lui-même) ou externes (créées par d’autres développeurs).
Que sont les classificateurs ?
Réponse : Un classificateur est un outil intelligent d’apprentissage automatique qui détermine la catégorie à laquelle appartient un objet en examinant ses caractéristiques uniques. Par exemple, imaginons que vous disposiez d’un groupe de fruits (pommes, bananes et oranges). Chaque fruit possède des caractéristiques telles que la couleur, la forme et la taille. Dans ce cas, un classificateur serait comme un identificateur de fruits. Il examine les caractéristiques et décide si un fruit est une pomme, une banane ou une orange.
Qu’est-ce que la portée en Python ?
Réponse : En Python, la portée et l’espace de noms vont de pair. La portée détermine l’emplacement d’un nom dans votre programme. Imaginez qu’il s’agit de zones où un nom a du sens. Ces zones sont suivies à l’aide de dictionnaires, comme des listes qui font correspondre des noms à des choses. Ces listes sont appelées espaces de noms.
Qu’est-ce que la résolution de portée ?
Réponse : La résolution du champ d’application est une idée vitale en Python. Elle détermine comment le programme interprète les variables et les noms au fur et à mesure que vous écrivez votre code. L’ensemble de ce processus détermine où vous pouvez utiliser les variables dans votre programme. Il est essentiel de savoir comment Python gère les champs d’application pour créer un code soigné, rapide et sans accroc.
Quelles sont les fonctionnalités importantes de Python ?
Réponse : Python est un langage OOP qui offre de nombreuses fonctionnalités pour alléger le travail des développeurs. Voici une liste triée sur le volet de quelques-unes des meilleures fonctionnalités :
- Facile à apprendre et à lire
- Langage de programmation à typage dynamique
- Open-Source
- Vaste bibliothèque
- Soutien de la communauté
- Support de l’interface graphique
- Adaptabilité à de multiples plateformes
- Gestion efficace de la mémoire
Quels sont les types d’opérateurs en Python ?
Réponse : Les opérateurs sont utilisés pour effectuer des actions sur les variables et les valeurs. En Python, les opérateurs sont classés dans les catégories suivantes :
- Opérateurs arithmétiques
- Opérateurs d’affectation
- Opérateurs de comparaison
- Opérateurs logiques
- Opérateurs d’identité
- Opérateurs d’appartenance
- Opérateurs bitwise
Quelles sont les différentes options de jointure disponibles dans Pandas, et quels sont leurs objectifs ?
Réponse : Dans Pandas, l’opération de jointure combine deux ou plusieurs DataFrames sur la base de leurs index ou de leurs colonnes. Il existe plusieurs types de jointures, chacune ayant un objectif distinct :
- Jointure interne : Combine les lignes correspondantes des deux DataFrames.
- Jointure gauche : Conserve toutes les lignes du DataFrame de gauche et les lignes correspondantes du DataFrame de droite.
- Jointure droite : Conserve toutes les lignes du DataFrame de droite et les lignes correspondantes du DataFrame de gauche.
- Jointure externe : Combine toutes les lignes des deux DataFrames, en remplissant les valeurs manquantes par NaN.
- Concaténation: Empile les DataFrames verticalement ou côte à côte.
Ces options de jointure offrent de multiples possibilités de combiner des données provenant de nombreuses sources pour répondre à des besoins analytiques spécifiques.
Que sont les tests unitaires en Python ?
Réponse : Les tests unitaires sont de petites vérifications que nous créons pour voir si notre code fait bien son travail. Nous choisissons une chose, comme une fonction, et nous la testons séparément. Ces vérifications sont très importantes car elles nous aident à nous assurer que notre code fonctionne correctement et à trouver les problèmes avant qu’ils ne deviennent trop importants.
Qu’est-ce que l’épuration et le décapage ?
Réponse : le “pickling” consiste à transformer un arrangement d’objets Python en un flux d’octets, tandis que le “unpickling”, un flux d’octets provenant d’un fichier binaire ou d’un objet de type octet, est retransformé en un arrangement d’objets.
Que sont les décorateurs en Python ?
Réponse : En Python, un décorateur est comme une astuce de conception qui vous permet d’améliorer un objet existant avec des capacités supplémentaires sans changer la façon dont il est construit. Les décorateurs sont typiquement utilisés avant de définir une fonction que vous voulez améliorer.
Comment utiliser les décorateurs en Python ?
Réponse : En Python, un décorateur est comme une astuce de conception qui vous permet d’améliorer un objet existant avec des capacités supplémentaires sans changer la façon dont il est construit. Les décorateurs sont généralement utilisés avant de définir une fonction que vous souhaitez améliorer.
Comment fonctionne l’opérateur // en Python ?
Réponse : Il est connu sous le nom d’opérateur de division de plancher et fait partie de la catégorie des opérateurs arithmétiques. Cet opérateur effectue une division et arrondit ensuite le résultat au nombre entier le plus proche. Voici un exemple qui vous permettra de comprendre rapidement son fonctionnement.
result = 10 // 3 # 10 divisé par 3 est 3.333..., mais // s'arrondit à 3
print(result) # Sortie : 3
result = -10 // 3 # -10 divisé par 3 est -3.333..., mais // s'arrondit toujours à -4
print(result) # Sortie : -4
Comment l’instruction pass est-elle utilisée en Python ?
Réponse : L’instruction pass est une sorte de substitut pour le code futur. Lorsqu’elle est utilisée, rien ne se passe vraiment, mais elle empêche les erreurs d’apparaître lorsque vous n’êtes pas censé avoir du code vide. Cette règle s’applique à des endroits tels que les boucles, les fonctions, les classes et les instructions if.
Mentionnez les types de séquences en Python.
Réponse : En Python, les séquences sont comme des listes ordonnées d’éléments avec lesquels vous pouvez travailler. Il existe différents types de séquences :
- Les listes : Il s’agit de collections dans lesquelles vous pouvez placer différents éléments dans un ordre spécifique.
- Tuples : Similaires aux listes, mais une fois que vous les avez créés, vous ne pouvez plus modifier leur contenu.
- Chaînes : Il s’agit de séquences de caractères, c’est-à-dire de lettres, de chiffres et de symboles.
- Plages : Il s’agit de séquences de nombres que vous pouvez générer rapidement, par exemple en comptant d’un nombre à l’autre.
- Octets et tableaux d’octets : Ces séquences gèrent des données binaires, qui sont la manière dont les ordinateurs stockent les informations.
Ces différents types de séquences sont des outils qui aident les programmeurs à travailler avec des données de différentes manières.
Expliquez le “monkey patching” en Python.
Réponse : Le Monkey Patching en Python consiste à modifier le comportement d’un module ou d’une classe pendant l’exécution du programme. Vous pouvez ajouter, modifier ou remplacer des éléments tels que des méthodes et des fonctions sans modifier le code d’origine. Le nom “monkey patching” suggère que vous effectuez ces changements de manière amusante et informelle, comme un singe qui s’amuse.
Quand pourriez-vous utiliser le “monkey patching” ? Imaginez que vous utilisiez un outil (un module ou une classe) qui fait presque ce que vous voulez, mais pas tout à fait. Vous pouvez utiliser le “monkey patching” pour le modifier à la volée, en corrigeant les problèmes ou en ajoutant de nouvelles fonctionnalités sans attendre une mise à jour officielle. Voici une explication plus simple du fonctionnement du “monkey patching” :
- Se préparer : Vous commencez par introduire l’outil avec lequel vous voulez jouer (en important le module ou la classe).
- Apporter des modifications : Vous pouvez ensuite bricoler l’outil en ajoutant de nouvelles parties, en ajustant les parties existantes ou même en échangeant des éléments pour qu’il fonctionne mieux pour vous.
- Un jeu instantané : Une fois que vous avez terminé, votre outil modifié commence à fonctionner immédiatement. Toute personne utilisant l’outil après vos modifications verra les améliorations apportées.
Nous vous conseillons de n’utiliser le “monkey patching” que lorsque vous en avez vraiment besoin. Envisagez d’autres options, comme la création de nouvelles versions de l’outil (sous-classement), le mélange et l’association d’outils (composition) ou l’utilisation de fonctionnalités Python intégrées (décorateurs) pour garder votre code ordonné et fiable.
Discutez de la différence entre Del et Remove().
Réponse : Les commandes “del” et “remove()” sont toutes deux utilisées en Python pour supprimer des éléments d’une liste, mais elles fonctionnent de manière légèrement différente :
del est une instruction Python, pas une méthode. Elle supprime un élément d’une liste en spécifiant son index. Vous devez fournir l’indice de l’élément que vous souhaitez supprimer. L’élément supprimé n’est pas renvoyé, il est simplement retiré de la liste.
my_list = [10, 20, 30, 40, 50]
del my_list[2] # Supprime l'élément à l'indice 2 (valeur 30)
remove() est une méthode de liste. Elle supprime un élément de la liste en spécifiant sa valeur. Vous devez fournir la valeur réelle de l’élément que vous souhaitez supprimer. La méthode recherche la première occurrence de la valeur spécifiée et la supprime. Si la valeur n’existe pas dans la liste, une erreur de type ValueError est levée.
my_list = [10, 20, 30, 40, 50]
my_list.remove(30) # Supprime l'élément de valeur 30
Utilisez del lorsque vous connaissez l’indice de l’élément que vous souhaitez supprimer, et utilisez remove() lorsque vous connaissez la valeur de l’élément que vous souhaitez supprimer.
Discutez de la différence entre append() et extend().
Réponse : En Python, si vous voulez ajouter un nouvel élément à une liste déjà existante, vous utilisez la méthode append(). Mais lorsque vous utilisez la méthode extend(), vous prenez chaque élément d’un groupe que vous donnez et vous les ajoutez tous à la fin de la liste initiale.
Quelle est la différence entre les fonctions range() et xrange() ?
Réponse : La fonction range() produit une liste contenant des nombres constants, tandis que la fonction xrange() génère un type de générateur distinct. En ce qui concerne l’efficacité de la mémoire, la fonction range() utilise plus de mémoire, alors que la fonction xrange() est conçue pour conserver la mémoire.
Discutez de la différence entre Python 2.x et Python 3.x.
Réponse : Python 2.x et Python 3.x sont des versions distinctes du langage de programmation Python. Elles présentent des différences notables : Python 3.x utilise une fonction print (print(“Hello, World”)) par opposition à l’instruction print de Python 2.x (print “Hello, World”).
Le comportement de la division varie ; Python 2.x tronque la division entière (3 / 2 donne 1), tandis que Python 3.x donne des résultats en virgule flottante (3 / 2 donne 1,5). La gestion de l’Unicode est également différente : Python 3.x traite toutes les chaînes de caractères comme des Unicodes par défaut, alors que Python 2.x exige un préfixe pour les chaînes de caractères Unicode. L’itération dans les dictionnaires diffère également : Python 2.x itère par clé (for key in dict), et Python 3.x conserve cette valeur par défaut mais introduit des alternatives comme .keys(), .values(), et .items().
Dans l’ensemble, Python 3.x apporte des améliorations significatives, telles que la gestion de la division et de l’Unicode, ce qui en fait le choix recommandé pour les nouveaux projets.
Discutez de la différence entre les fichiers .py et .pyc.
Réponse : Les fichiers PY servent de conteneurs pour le code source lisible par l’homme d’un programme Python. Ils contiennent les instructions, la logique et les algorithmes que les développeurs écrivent. Cependant, lorsque le code Python est exécuté, il passe par une étape intermédiaire afin d’être optimisé et exécuté plus rapidement. C’est là que les fichiers .pyc entrent en jeu.
Ces fichiers contiennent le bytecode, qui est une représentation de niveau inférieur des instructions du programme que l’interpréteur Python peut exécuter directement. Ainsi, alors que les fichiers PY sont destinés à être écrits et lus par les développeurs, les fichiers .pyc sont générés par l’interpréteur Python et utilisés pour une exécution plus rapide.
Qu’est-ce que la fonction split() en Python ?
Réponse : La fonction split() divise une chaîne de caractères en une liste, vous permettant de définir le séparateur. Par défaut, elle utilise l’espace blanc comme séparateur.
Qu’est-ce que la fonction help() ?
Réponse : La fonction help() de Python fournit des informations sur un objet donné lorsqu’elle est invoquée. Elle accepte un paramètre optionnel et fournit les détails pertinents. En l’absence d’argument, elle affiche la console d’aide de Python.
Qu’est-ce que la fonction join() ?
Réponse : La fonction join() permet de créer une chaîne de caractères en réunissant les éléments d’une table itérative, en utilisant un séparateur de chaîne sélectionné.
Qu’est-ce que la fonction sub() ?
Réponse : La fonction sub() fait partie du module Python Regular Expressions (re). Elle fournit une chaîne dans laquelle toutes les instances correspondant au motif spécifié sont remplacées par la chaîne de remplacement fournie.
Qu’est-ce que la fonction dir() ?
Réponse : La fonction dir() fournit une liste de toutes les propriétés et méthodes appartenant à un objet donné, à l’exclusion de leurs valeurs. Elle englobe à la fois les attributs et les méthodes définis par l’utilisateur, ainsi que les propriétés intégrées inhérentes qui sont standard pour tous les objets.
Que fait un object() ?
Réponse : La fonction object() de Python renvoie un nouvel objet vide du type d’objet intégré. Le type objet est la classe de base de toutes les classes en Python. Il n’a pas d’attributs ou de méthodes particuliers, mais il sert de base à la création de classes personnalisées.
Qu’est-ce que la PEP 8 ?
Réponse : PEP 8, ou “Python Enhancement Proposal 8”, est le guide de style pour écrire un code Python lisible et cohérent. Il décrit les conventions et les recommandations pour le formatage du code, les conventions de nommage et l’organisation du code afin d’en améliorer la lisibilité et la maintenabilité.
Que sont les *args et les *kwargs ?
Réponse : *args permet de passer un nombre flexible d’arguments sans mots-clés, ce qui permet d’effectuer des opérations de type tuple. Quant à **kwargs, il permet d’envoyer des arguments à mots-clés variables sous forme de dictionnaire, ce qui permet d’effectuer des opérations de type dictionnaire au sein d’une fonction.
Qu’est-ce qu’un tableau Numpy ?
Réponse : Un tableau Numpy est une matrice de valeurs uniformes à laquelle on accède en utilisant un tuple d’entiers non négatifs. Le rang du tableau est déterminé par son nombre de dimensions, et sa configuration est représentée par un tuple d’entiers qui spécifie les tailles de chaque dimension.
Discutez de la différence entre les matrices et les tableaux.
Réponse : Les matrices sont structurées en lignes et en colonnes et contiennent principalement des valeurs numériques. Elles excellent dans les tâches d’algèbre linéaire telles que la multiplication de matrices et la résolution de systèmes d’équations linéaires.
Les tableaux, bien que polyvalents, peuvent contenir différents types de données en plus des nombres, ce qui les rend essentiels pour la programmation générale. Ils englobent les vecteurs, les matrices et les structures à plus haute dimension, servant d’outils fondamentaux pour la représentation et la manipulation des données dans divers domaines tels que le traitement des images, le calcul scientifique et l’apprentissage automatique.
Discutez de la différence entre une liste et un tuple.
Réponse : Les tuples et les listes diffèrent principalement par leur mutabilité. Les tuples sont statiques et ne peuvent pas être modifiés, alors que les listes peuvent subir des changements. En Python, il est possible de modifier une liste, mais l’immuabilité des tuples garantit que leur contenu reste inchangé après leur création.
Discutez de la différence entre NumPy et SciPy.
Réponse : NumPy et SciPy sont deux bibliothèques Python largement utilisées pour le calcul scientifique et numérique.
NumPy fournit la base des calculs numériques grâce aux opérations sur les tableaux, tandis que SciPy étend ses capacités en offrant des fonctions spécialisées pour un large éventail d’applications scientifiques et d’ingénierie. Ils sont souvent utilisés ensemble pour couvrir un large spectre de besoins en calcul numérique et scientifique en Python.
Comment ajouter et retirer des valeurs à un tableau en Python ?
Réponse : En Python, les tableaux peuvent être facilement manipulés en utilisant des listes, une structure de données fondamentale. L’ajout d’éléments est simple : la méthode append() ajoute une valeur à la fin de la liste, tandis que la méthode insert() insère une valeur à un index spécifié.
La suppression d’éléments est tout aussi intuitive : la méthode remove() supprime la première occurrence d’une valeur, et la méthode pop() élimine un élément à un index donné et renvoie sa valeur.
En outre, l’instruction del peut être utilisée pour supprimer des éléments par index ou pour effacer la liste entière. Ces techniques fournissent des moyens flexibles de modifier les tableaux, en les adaptant à des besoins de programmation spécifiques. Pour des opérations plus complexes sur les tableaux, des bibliothèques comme NumPy offrent des fonctionnalités avancées.
Comment crée-t-on une classe en Python ?
Réponse : Pour créer une classe en Python, vous utilisez le mot-clé class suivi du nom de la classe et de deux points. Le corps de la classe est indenté et contient les attributs et les méthodes qui définissent la classe. Voici un exemple simple de classe Personne avec un constructeur et une méthode :
classe Personne :
def __init__(self, name, age) :
self.name = name
self.age = age
def greet(self) :
print(f "Bonjour, mon nom est {self.name} et j'ai {self.age} ans.")
# Création d'une instance de la classe Personne
person1 = Person("Alice", 30)
# Appel de la méthode greet
person1.greet()
Ceci crée une classe appelée Personne avec un initialisateur qui définit les attributs de nom et d’âge et une méthode greet qui imprime un message d’accueil en utilisant ces attributs.
Expliquez comment localiser les positions des valeurs divisibles par trois dans une série en utilisant Python.
Réponse : Pour localiser les positions des valeurs divisibles par trois dans une série à l’aide de Python, vous pouvez utiliser la bibliothèque “Pandas”. Tout d’abord, vous devez créer une série avec vos données, puis utiliser l’indexation booléenne pour filtrer les positions où les valeurs sont divisibles par trois.
import pandas as pd
# Créez une série avec des données
data = [10, 5, 9, 12, 6, 8, 3, 7, 18]
my_series = pd.Series(data)
# Trouvez les positions où les valeurs sont divisibles par trois
divisible_par_trois_positions = ma_série[ma_série % 3 == 0]
# Imprimez les positions
print("Positions des valeurs divisibles par trois :", divisible_par_trois_positions)
Comment trouver la distance euclidienne entre deux séries en Python ?
Réponse : L’expression “norm(x-y))” calcule la distance euclidienne entre deux séries d’objets en utilisant la fonction np.linalg.norm() de la bibliothèque NumPy. Cette fonction calcule la distance euclidienne en évaluant la norme entre les vecteurs créés à partir des valeurs “x” et “y”.
Expliquez comment remplacer une sous-chaîne par une nouvelle chaîne en Python.
Réponse : Utilisez la méthode replace() pour remplacer les sous-chaînes. Indiquez la chaîne originale “old” comme paramètre initial et la chaîne de remplacement “new” comme second paramètre. Pour éliminer ‘old’, définissez ‘new’ comme une chaîne vide “.
Expliquez comment copier des objets en Python.
Réponse : En Python, l’opérateur = est utilisé pour créer une réplique d’un objet. Néanmoins, il peut être interprété à tort comme produisant un objet entièrement nouveau, ce qui n’est pas exact. Il produit plutôt une nouvelle variable qui référence le même objet que l’original. Pour illustrer ce propos, imaginons une situation dans laquelle nous créons une liste nommée “old_list”, puis attribuons la référence de l’objet à “new_list” à l’aide de l’opérateur =.
Comment lire et écrire des fichiers en Python ?
Réponse : En Python, vous pouvez lire et écrire des fichiers à l’aide de la fonction intégrée open(), qui propose différents modes de traitement des fichiers.
Quels sont les différents modes disponibles pour le traitement des fichiers ?
Réponse : La fonction open() vous permet de spécifier différents modes de traitement des fichiers. Voici quelques modes couramment utilisés :
- ‘r’ : Mode lecture (par défaut) ouvre le fichier pour la lecture.
- ‘w’ : Le mode écriture ouvre le fichier en écriture (crée un nouveau fichier ou tronque un fichier existant).
- ‘a’ : Le mode Append ouvre le fichier en écriture (ajoute à un fichier existant sans le tronquer).
- ‘b’ : Mode binaire pour la lecture ou l’écriture de données binaires (images, fichiers audio, etc.).
- ‘t’ : Mode texte (par défaut) pour lire ou écrire des données textuelles.
- ‘x’ : Le mode création exclusive crée un nouveau fichier mais soulève une erreur s’il existe déjà.
- ‘ ‘ : mode de mise à jour pour la lecture et l’écriture.
Pouvez-vous écrire un programme Python pour générer la suite de Fibonacci ?
Réponse : Programme Python pour générer la suite de Fibonacci jusqu’à un nombre spécifié de termes :
def generate_fibonacci(n) :
fibonacci_sequence = [0, 1] # Initialiser avec les deux premiers termes
while len(fibonacci_sequence) < n :
next_term = fibonacci_sequence[-1] fibonacci_sequence[-2]
fibonacci_sequence.append(next_term)
retour fibonacci_séquence
# Obtenir le nombre de termes de l'utilisateur
num_terms = int(input("Enter the number of Fibonacci terms to generate : "))
# Générer et imprimer la séquence de Fibonacci
fibonacci_sequence = generate_fibonacci(num_terms)
print("Séquence de Fibonacci :", fibonacci_sequence)
Lorsque vous exécutez ce programme, il vous demande d’entrer le nombre de termes de Fibonacci que vous souhaitez générer, puis il affiche la séquence générée.
Par exemple, si vous entrez 10, la sortie sera la suivante :
Entrez le nombre de termes de Fibonacci à générer : 10
Séquence de Fibonacci : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
Pouvez-vous écrire un programme en Python qui vérifie si une séquence est un palindrome ?
Réponse : Programme Python qui vérifie si une séquence donnée est un palindrome en utilisant la récursivité :
def is_palindrome_recursive(sequence) :
sequence = sequence.lower()
séquence = ''.join(filter(str.isalnum, séquence))
si len(séquence) <= 1 :
return True
si séquence[0]!= séquence[-1] :
retournez Faux
return is_palindrome_recursive(sequence[1:-1])
test_sequences = ["racecar", "hello", "A man, a plan, a canal, Panama !", "12321"]
pour séquence dans test_séquences :
if is_palindrome_recursive(sequence) :
print(f"'{séquence}' est un palindrome.")
else :
print(f"'{séquence}' n'est pas un palindrome.") :
Pouvez-vous écrire un programme Python pour additionner deux entiers positifs sans utiliser l’opérateur plus ?
Réponse : Dans le programme ci-dessous, la fonction add_without_plus_operator prend deux entiers positifs, a et b, en entrée et simule le processus d’addition en utilisant les opérations bitwise (&, ^, <<). La boucle se poursuit jusqu'à ce qu'il n'y ait plus de retenue (c'est-à-dire que b devienne 0), et la somme finale est stockée dans a.
Vous pouvez remplacer les valeurs de num1 et num2 par vos propres entiers positifs pour tester le programme avec des entrées différentes.
def add_without_plus_operator(a, b) :
while b != 0 :
carry = a & b
a = a ^ b
b = carry << 1
retournez a
# Cas de test - Fournissez vos nombres à tester !
num1 = 25
num2 = 37
sum_result = add_without_plus_operator(num1, num2)
print(f "La somme de {num1} et {num2} est : {sum_result}")
Pouvez-vous écrire un programme Python pour inverser une liste ?
Réponse : Oui, il est possible d’écrire un programme Python pour inverser une liste à l’aide de la fonction “reversed()”,
def reverse_list_builtin(lst) :
return list(reversed(lst))
# Test
original_list = [1, 2, 3, 4, 5]
reversed_list = reverse_list_builtin(original_list)
print("Liste originale :", liste_originale)
print("Liste inversée (en utilisant reversed()) :", reversed_list)
Vous pouvez également lire comment inverser une liste en Python pour la faire tourner à l’envers.
Quelle bibliothèque Python est construite au-dessus de Matplotlib et Pandas pour faciliter le tracé des données ?
Réponse : Seaborn, construit sur Matplotlib, est une bibliothèque Python largement utilisée pour la visualisation de données, offrant des outils sophistiqués pour générer des graphiques pour vos données. Grâce à ses nombreuses fonctionnalités, Seaborn vous permet de créer des graphiques impressionnants en utilisant beaucoup moins de lignes de code que Matplotlib. Ses capacités améliorées permettent la création de visuels convaincants avec une facilité remarquable.
Qu’est-ce qu’un dataframe pandas ?
Réponse : Un Pandas DataFrame est comme une table flexible pour les données. Il possède des lignes et des colonnes, et vous pouvez modifier sa taille. C’est un moyen d’organiser les données proprement dans une grille, tout comme on organise les choses en lignes et en colonnes sur une feuille de papier.
Comment combiner des cadres de données dans Pandas ?
Réponse : Dans Pandas, vous pouvez combiner des cadres de données en utilisant différentes méthodes en fonction de vos besoins spécifiques. Ici, je vais utiliser Appending (df.append()) : Cette méthode est utilisée pour ajouter des lignes d’un cadre de données à un autre.
# Exemples d'images de données
df1 = pd.DataFrame({'A' : [1, 2, 3], 'B' : [4, 5, 6]})
df2 = pd.DataFrame({'A' : [7, 8, 9], 'B' : [10, 11, 12]})
# Ajoutez df2 à df1
result = df1.append(df2)
Qu’est-ce qu’un flacon ?
Réponse : Flask, un cadre d’application web écrit en Python, est né des efforts de collaboration de passionnés internationaux de Python sous la direction d’Armin Ronacher, qui fait partie du groupe Poocco.
S’appuyant sur la boîte à outils WSGI Werkzeug et le moteur de modèles Jinja2, deux projets du Poocco, flask offre un module Python qui rationalise le développement d’applications web. Sa caractéristique principale est un noyau concis et facilement extensible, ce qui le distingue en tant que micro-cadre qui omet intentionnellement des fonctionnalités telles qu’un ORM (Object Relational Manager).
Qu’est-ce que Django ?
Réponse : Django est un framework web basé sur Python qui permet le développement rapide de sites web sécurisés et faciles à maintenir. Il fonctionne selon le modèle architectural modèle-vues et est disponible en tant que ressource open-source. La Django Software Foundation, un établissement indépendant situé aux États-Unis, est responsable de son entretien et de sa maintenance.
Mentionnez quelques avantages de Django.
Réponse : Django offre plusieurs avantages qui en font un choix populaire pour le développement web :
- Meilleure connectivité CDN
- Gestion efficace du contenu
- Développement rapide
- ORM (Object-Relational Mapping)
- Moteur de modèles polyvalent
- Évolutif
- Fonctionnalités de sécurité
Dans l’ensemble, la combinaison du développement rapide, de l’évolutivité, de la sécurité et de la gamme complète d’outils de Django en fait un cadre précieux pour la création d’un large éventail d’applications web.
Expliquez l’architecture de Django.
Répondez : Django suit le modèle architectural Modèle-Vue-Contrôleur (MVC), mais dans le contexte de Django, il est souvent appelé Modèle-Vue-Template (MVT).
L’architecture MVT se compose de trois éléments principaux : Modèles, Vues et Modèles, ainsi que des composants supplémentaires pour gérer les URL et les formulaires.
- Lesmodèles: Ils définissent la structure des données et les interactions avec la base de données.
- Lesvues: Elles gèrent la logique, traitent les demandes et génèrent des réponses.
- Modèles: Génèrent le code HTML pour l’interface utilisateur.
- Distributeur d’URL: Associe les URL aux vues.
- Formulaires: Collecte et valide les données saisies par l’utilisateur.
- Logiciel intermédiaire: Traite les demandes et les réponses de manière globale.
- Fichiers statiques et médias: Gérer les fichiers statiques et les fichiers téléchargés par l’utilisateur.
Cette structure favorise une séparation nette des préoccupations, ce qui simplifie le développement d’applications web.
Qu’est-ce qu’une session Django ?
Réponse : Les sessions dans Django (et sur une grande partie du Web) servent à conserver un enregistrement de l’” état ” entre un site Web et un navigateur spécifique. Grâce aux sessions, vous pouvez conserver des informations variées pour chaque navigateur, garantissant ainsi son accessibilité au site web chaque fois que le navigateur établit une connexion.
Qu’est-ce que la GIL ?
Réponse : Le Global Interpreter Lock (GIL) de Python fonctionne comme un verrou de processus utilisé par Python lors de la gestion des processus. En Python, un seul thread est généralement utilisé pour exécuter une séquence d’instructions codées. Cela signifie qu’un seul thread peut être exécuté à la fois dans Python. La raison pour laquelle les performances des processus mono et multithread sont comparables dans Python peut être attribuée à l’existence de la GIL.
Qu’est-ce que PIP ?
Réponse : PIP, abréviation de “Pip Installs Packages”, est un programme d’installation de paquets pour Python. Il est utilisé pour gérer et installer facilement des paquets de logiciels et des bibliothèques provenant du Python Package Index (PyPI) et d’autres sources.
Conclusion 👨💻
Les questions ne sont pas limitées, comme nous le voyons dans cet article. Cet article montre comment différents types de questions peuvent être posées sur divers sujets en Python. Cependant, il n’est pas limité à l’ensemble des questions que nous avons abordées dans cet article.
Une façon d’être préparé pendant l’apprentissage est de vous interroger sur différents sujets. Essayez de poser différents types de questions à partir d’un concept. Et répondez-y vous-même. De cette manière, vous ne serez probablement pas surpris par les questions lors de l’entretien. Vous pouvez également consulter le compilateur Python en ligne pour vous entraîner au code.
Tous mes vœux de réussite pour votre prochain entretien Python ! 👍