Podcast
Questions and Answers
Considérant les deux fichiers Python module.py
et main.py
, quel sera l'affichage lors de l'exécution de main.py
?
Considérant les deux fichiers Python module.py
et main.py
, quel sera l'affichage lors de l'exécution de main.py
?
- A, C, D (correct)
- B, C, D
- A, B, C, D
- A, B, C
Quel sera le résultat affiché par le programme Python suivant ?
Try :
x= 1/0
y=int(« not an int»)
print(2)
except ValueError as e:
print(3)
except Exception as e:
print(4)
except ZeroDivisionError as e:
print(5)
else:
print(6)
finally:
print(7)
print(8)
Quel sera le résultat affiché par le programme Python suivant ?
Try :
x= 1/0
y=int(« not an int»)
print(2)
except ValueError as e:
print(3)
except Exception as e:
print(4)
except ZeroDivisionError as e:
print(5)
else:
print(6)
finally:
print(7)
print(8)
- 2, 7, 8
- 5, 7, 8
- 3, 7, 8
- 4, 7, 8 (correct)
Si on exécute la commande suivante dans le terminal, $ python3 programme.py a b «cd» e
, quelle sera la sortie de print(«|».join(sys.argv[1:-1]))
?
Si on exécute la commande suivante dans le terminal, $ python3 programme.py a b «cd» e
, quelle sera la sortie de print(«|».join(sys.argv[1:-1]))
?
a|b|cd
Lorsqu'on définit une classe en Python, la méthode spéciale ______
est utilisée pour initialiser un objet de cette classe.
Lorsqu'on définit une classe en Python, la méthode spéciale ______
est utilisée pour initialiser un objet de cette classe.
En programmation orientée objet (POO), l'encapsulation fait référence au principe de permettre un accès direct et sans restriction aux attributs internes d'une classe.
En programmation orientée objet (POO), l'encapsulation fait référence au principe de permettre un accès direct et sans restriction aux attributs internes d'une classe.
Si vous avez une classe Point
avec un attribut privé __x
, comment pouvez-vous accéder à cet attribut de l'extérieur de la classe tout en respectant les principes d'encapsulation ?
Si vous avez une classe Point
avec un attribut privé __x
, comment pouvez-vous accéder à cet attribut de l'extérieur de la classe tout en respectant les principes d'encapsulation ?
Associez les concepts de la programmation orientée objet (POO) avec leurs définitions :
Associez les concepts de la programmation orientée objet (POO) avec leurs définitions :
Quelle est la différence principale entre une méthode d'instance et une méthode de classe en Python?
Quelle est la différence principale entre une méthode d'instance et une méthode de classe en Python?
Si une méthode d'instance est définie comme def distance(self, p=None):
et que p
est None
, alors p is None
et p == None
donneront le même résultat.
Si une méthode d'instance est définie comme def distance(self, p=None):
et que p
est None
, alors p is None
et p == None
donneront le même résultat.
Quelle méthode spéciale de Python est utilisée pour définir comment un objet doit être représenté sous forme de chaîne de caractères (string) ?
Quelle méthode spéciale de Python est utilisée pour définir comment un objet doit être représenté sous forme de chaîne de caractères (string) ?
Quel sera l'affichage lors de l'exécution du fichier main.py
?
Quel sera l'affichage lors de l'exécution du fichier main.py
?
Quel sera le résultat du programme Python suivant ?
Try :
x= 1/0
y=int(« not an int »)
print(2)
except ValueError as e:
print(3)
except Exception as e:
print(4)
except ZeroDivisionError as e:
print(5)
else:
print(6)
finally:
print(7)
print(8)
Quel sera le résultat du programme Python suivant ?
Try :
x= 1/0
y=int(« not an int »)
print(2)
except ValueError as e:
print(3)
except Exception as e:
print(4)
except ZeroDivisionError as e:
print(5)
else:
print(6)
finally:
print(7)
print(8)
Quelle sera la sortie du programme suivant exécuté avec la commande python3 programme.py a b "cd" e
?
print("|".join(sys.argv[1:-1]))
Quelle sera la sortie du programme suivant exécuté avec la commande python3 programme.py a b "cd" e
?
print("|".join(sys.argv[1:-1]))
Quel sera l'affichage du programme Python suivant exécuté avec la ligne de commande $ python3 programme.py -e 6 -n 2
?
Quel sera l'affichage du programme Python suivant exécuté avec la ligne de commande $ python3 programme.py -e 6 -n 2
?
TypeError
est levée lorsque la valeur d'une variable ne correspond pas au type attendu.
TypeError
est levée lorsque la valeur d'une variable ne correspond pas au type attendu.
Dans la programmation orientée objet, les éléments de données au sein d'une structure de données sont appelés des ______.
Dans la programmation orientée objet, les éléments de données au sein d'une structure de données sont appelés des ______.
Quelle est la fonction de la méthode __init__
dans une classe Python?
Quelle est la fonction de la méthode __init__
dans une classe Python?
En Python, le premier paramètre d'une méthode d'instance, généralement nommé self
, fait référence à la classe elle-même.
En Python, le premier paramètre d'une méthode d'instance, généralement nommé self
, fait référence à la classe elle-même.
Pour accéder à un attribut d'un objet en Python, quelle notation utilisez-vous?
Pour accéder à un attribut d'un objet en Python, quelle notation utilisez-vous?
Associez les méthodes suivantes aux actions qu'elles effectuent :
Associez les méthodes suivantes aux actions qu'elles effectuent :
Qu'est-ce qui sera affiché lorsque vous exécutez main.py
?
Qu'est-ce qui sera affiché lorsque vous exécutez main.py
?
Que va afficher le programme suivant: python Try : x= 1/0 y=int(« not an int”) print(2) except ValueError as e: print(3) except Exception as e: print(4) except ZeroDivisionError as e: print(5) else: print(6) finally: print(7) print(8)
Que va afficher le programme suivant: python Try : x= 1/0 y=int(« not an int”) print(2) except ValueError as e: print(3) except Exception as e: print(4) except ZeroDivisionError as e: print(5) else: print(6) finally: print(7) print(8)
Quelle sera la sortie du code suivant si on execute la commande suivante dans le terminal: $ python3 programme.py a b «cd» e
print(<< I >>.join(sys.argv[1 :-1]))```
Quelle sera la sortie du code suivant si on execute la commande suivante dans le terminal: $ python3 programme.py a b «cd» e
print(<< I >>.join(sys.argv[1 :-1]))```
Le résultat du code suivant est 64 si on exécute la commande suivante dans le terminal : $ python3 programme.py -e 6 -n « 2»
parser= argparse.ArgumentParser()
parser.add_argument(‘-n', ‘—number', type=int, required=true)
parser.add_argument('-e', ‘—exponent', type=int, default= 2)
args=parser.parse_args()
print(args.number**args.exponent)```
Le résultat du code suivant est 64 si on exécute la commande suivante dans le terminal : $ python3 programme.py -e 6 -n « 2»
parser= argparse.ArgumentParser()
parser.add_argument(‘-n', ‘—number', type=int, required=true)
parser.add_argument('-e', ‘—exponent', type=int, default= 2)
args=parser.parse_args()
print(args.number**args.exponent)```
La méthode de programmation rigoureuse ajoute de la ______ à votre programme.
La méthode de programmation rigoureuse ajoute de la ______ à votre programme.
Quel est le but de l'encapsulation dans la programmation orientée objet (POO)?
Quel est le but de l'encapsulation dans la programmation orientée objet (POO)?
Dans une classe Python, la méthode _init_
est utilisée pour définir le comportement d'un objet et doit contenir au moins un argument qui est 'self'.
Dans une classe Python, la méthode _init_
est utilisée pour définir le comportement d'un objet et doit contenir au moins un argument qui est 'self'.
Que représente self
dans la définition d'une méthode de classe en Python?
Que représente self
dans la définition d'une méthode de classe en Python?
Quelle est la différence principale entre modifier un objet directement dans une méthode et retourner une version modifiée de cet objet?
Quelle est la différence principale entre modifier un objet directement dans une méthode et retourner une version modifiée de cet objet?
Faites correspondre les concepts de POO aux descriptions appropriées:
Faites correspondre les concepts de POO aux descriptions appropriées:
Flashcards
Quelle erreur est levée par une division par zéro ?
Quelle erreur est levée par une division par zéro ?
Une division par zéro provoque une erreur de type ZeroDivisionError
.
Qu'est-ce que sys.argv
?
Qu'est-ce que sys.argv
?
sys.argv
est une liste contenant les arguments de la ligne de commande. sys.argv[0]
est le nom du script.
Qu'est-ce que la programmation orientée objet (POO) ?
Qu'est-ce que la programmation orientée objet (POO) ?
Une manière d'organiser le code en regroupant des données (attributs) et des fonctions (méthodes) qui manipulent ces données.
Qu'est-ce qu'un constructeur (__init__
) ?
Qu'est-ce qu'un constructeur (__init__
) ?
Signup and view all the flashcards
Qu'est-ce qu'une méthode d'instance ?
Qu'est-ce qu'une méthode d'instance ?
Signup and view all the flashcards
Qu'est-ce que la méthode __str__
?
Qu'est-ce que la méthode __str__
?
Signup and view all the flashcards
Qu'est-ce que l'encapsulation et comment est-elle gérée en Python ?
Qu'est-ce que l'encapsulation et comment est-elle gérée en Python ?
Signup and view all the flashcards
Quelle est la différence entre attributs et methodes en POO
Quelle est la différence entre attributs et methodes en POO
Signup and view all the flashcards
Qu'est-ce qu'une erreur ValueError ?
Qu'est-ce qu'une erreur ValueError ?
Signup and view all the flashcards
Qu'est-ce qu'une instance de classe ?
Qu'est-ce qu'une instance de classe ?
Signup and view all the flashcards
Comment restreindre l'accès à un attribut ou une méthode ?
Comment restreindre l'accès à un attribut ou une méthode ?
Signup and view all the flashcards
Qu'est-ce que le bloc finally
?
Qu'est-ce que le bloc finally
?
Signup and view all the flashcards
Qu'est-ce que la programmation modulaire ?
Qu'est-ce que la programmation modulaire ?
Signup and view all the flashcards
Qu'est-ce que la méthode __init__
?
Qu'est-ce que la méthode __init__
?
Signup and view all the flashcards
Qu'est-ce qu'une classe ?
Qu'est-ce qu'une classe ?
Signup and view all the flashcards
Quel est l'intérêt de la POO ?
Quel est l'intérêt de la POO ?
Signup and view all the flashcards
Quand le bloc else
est-il exécuté dans un bloc try-except
?
Quand le bloc else
est-il exécuté dans un bloc try-except
?
Signup and view all the flashcards
Qu'est-ce qu'une ValueError
?
Qu'est-ce qu'une ValueError
?
Signup and view all the flashcards
Study Notes
Quiz Python
- Deux fichiers Python sont fournis :
module.py
etmain.py
. - Le code affiché lors de l'exécution de
main.py
est A, C, D. - L'instruction
print("B")
du fichiermodule.py
n'est pas exécutée car le blocif __name__ == '__main__':
n'est pas pris en compte lors de l'importation du module.
Exécution d'un Programme Python avec Exceptions
- Le code suivant affichera 4, 7, 8.
- La division par zéro dans le bloc
try
lève une exceptionZeroDivisionError
. - Cela correspond à une erreur d'arithmétique, qui est une forme d'exception.
- La division par zéro est un cas particulier d'exception.
- L'exception
ValueError
n'est pas concernée, donc cette étape est ignorée. - L'exception
Exception
est capturée et l'instruction associéeprint(4)
est exécutée. - Le bloc
else
est ignoré car une exception a été levée. - Le bloc
finally
est toujours exécuté, affichant 7. - Enfin,
print(8)
est exécuté.
Interprétation des Arguments en Ligne de Commande
- La commande
$ python3 programme.py a b "cd" e
afficheraa|b|c d
. sys.argv
est une liste des arguments de la ligne de commande.sys.argv
est['programme.py', 'a', 'b', 'cd', 'e']
.- La fonction
join(" ")
est utilisée pour concaténer les éléments de la liste, séparés par un espace. - Les arguments à joindre sont
sys.argv[1:-1]
, excluant le nom du fichier et le dernier argument.
Utilisation d'argparse pour Parser les Arguments
- La commande
$ python3 programme.py -e 6 -n "2"
affichera 64. - Le code utilise le module
argparse
pour définir les arguments attendus. - L'argument
-n
ou--number
est requis et de type entier. - L'argument
-e
ou--exponent
a une valeur par défaut de 2, mais elle est remplacée par 6 dans la commande. - Le programme calcule
args.number**args.exponent
, soit 2^6 = 64. ValueError
se rapporte à la valeur de la variable.TypeError
est retourné quand la variable est impossible à convertir.
Concepts de la Programmation Orientée Objet (POO)
- La POO consiste à définir des structures de données (classes) et des fonctions (méthodes) pour manipuler ces données.
- Une classe est un modèle pour créer des objets.
- Un objet est une instance d'une classe, caractérisé par ses attributs (données) et ses méthodes (fonctions).
- L'instanciation consiste à créer un objet à partir d'une classe.
- Exemple de classe : un point du plan caractérisé par deux coordonnées réelles x et y
- On peut calculer la distance d’un point à l’origine du repère (donnée par l’expression racine carré de x au carré + y au carré).
Importance de l'Encapsulation et de la Modularité
- La POO offre une méthode de programmation rigoureuse, sécurisée et modulaire.
- L'encapsulation permet de contrôler l'accès aux données d'un objet via une interface (méthodes).
- La modularité permet de remplacer un module par un autre, tant qu'ils offrent la même interface.
- L'encapsulation permet de garantir qu’un attribut particulier n’est jamais négatif.
Classes et Constructeurs en Python
- Une classe est définie avec le mot-clé
class
, suivi du nom de la classe. - La méthode
__init__
est le constructeur de la classe, appelé lors de la création d'un objet. - Le premier paramètre du constructeur est toujours
self
, qui représente l'objet en cours de création. - Le constructeur peut prendre d'autres paramètres pour initialiser les attributs de l'objet.
- Tout ce qui sera à l'int d'une classe sera indenter.
Constructeur par défaut
- Comme n’importe quelle fonction, on peut spécifier des valeurs par défaut pour certains argument.
- Les paramètres a et b vaudront 0 si on ne spécifie rien.
Instanciation et Accès aux Attributs
- L'instanciation d'une classe crée un objet avec ses propres valeurs d'attributs.
- Un espace mémoire est alloué pour stocker l'objet lors de l'instanciation.
- La méthode
__init__
est appelée avec la référence de l'objet et les arguments du constructeur. - On accède aux attributs d'un objet avec la notation
nom_objet.nom_attribut
. - La référence vers l’objet est affectée à la variable p à l'adresse de la case mémoire où se trouve les données associées à cet objet.
Méthodes d'Instance : Comportement des Objets
- Une méthode d'instance est une fonction définie à l'intérieur d'une classe qui peut accéder aux attributs de l'objet via le paramètre self
- La méthode
__init__
a une fonction particulière, c'est le constructeur. - Une méthode d'instance peut être construite pour prendre des objets en paramètre
- Les opérations qui effectuent des transformations peuvent modifier l'objet même ou retourner une copie.
- La méthode scale(f) modifie l'objet self et retourne une version modifiée de l'objet.
- Si aucun point n'est passé on calculera la distance à l'origine c'est-à-dire le point (0,0)
Le Double Tiret Bas pour la Visibilité des Attributs
- Pour sécuriser la programmation, vous pouvez utiliser le double tiret bas pour empècher l'utilisation de certains attributs ou de cacher certain attributs.
- En pratique, il suffit de préfixer le nom de l'attribut ou de la méthode par un double tiret bas «
__
». - On peut accéder aux attributs privés en créant des Getters (accesseur) et des Setters (Mutateur).
- L'attribut privé ne pourra être accédé que depuis sa propre classe.
Représentation des Objets
- La méthode de représentation
_str_
peut être créée pour afficher un objet. - A defaut, print essaiera toujours de convertir les arguments s'il n'y existe pas la méthode
_str_
- En (re)définissant la méthode
__str__
, on peut définir comment représenter l’objet
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.