Programmation python 3

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

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 ?

  • 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)

  • 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])) ?

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.

<p><strong>init</strong></p> Signup and view all the answers

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.

<p>False (B)</p> Signup and view all the answers

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 ?

<p>En créant une méthode getter (accesseur) publique pour <code>__x</code>. (B)</p> Signup and view all the answers

Associez les concepts de la programmation orientée objet (POO) avec leurs définitions :

<p>Classe = Un modèle pour créer des objets. Objet = Une instance spécifique d'une classe. Attribut = Une variable associée à un objet. Méthode = Une fonction associée à un objet.</p> Signup and view all the answers

Quelle est la différence principale entre une méthode d'instance et une méthode de classe en Python?

<p>Les méthodes de classe sont liées à la classe elle-même, tandis que les méthodes d'instance sont liées à une instance de la classe. (D)</p> Signup and view all the answers

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.

<p>True (A)</p> Signup and view all the answers

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) ?

<p><strong>str</strong></p> Signup and view all the answers

Quel sera l'affichage lors de l'exécution du fichier main.py?

<p>A, C, D (D)</p> Signup and view all the answers

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)

<p>4, 7, 8 (A)</p> Signup and view all the answers

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]))

<p>a|b|cd</p> Signup and view all the answers

Quel sera l'affichage du programme Python suivant exécuté avec la ligne de commande $ python3 programme.py -e 6 -n 2?

<p>64 (D)</p> Signup and view all the answers

TypeError est levée lorsque la valeur d'une variable ne correspond pas au type attendu.

<p>False (B)</p> Signup and view all the answers

Dans la programmation orientée objet, les éléments de données au sein d'une structure de données sont appelés des ______.

<p>attributs</p> Signup and view all the answers

Quelle est la fonction de la méthode __init__ dans une classe Python?

<p>Elle est utilisée pour initialiser un objet. (C)</p> Signup and view all the answers

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.

<p>False (B)</p> Signup and view all the answers

Pour accéder à un attribut d'un objet en Python, quelle notation utilisez-vous?

<p>nom_objet.nom_attribut</p> Signup and view all the answers

Associez les méthodes suivantes aux actions qu'elles effectuent :

<p>Modifier l'objet = Effectue des transformations directement sur l'objet. Retourner une version (copie) = Effectue des transformations sur une copie de l'objet.</p> Signup and view all the answers

Qu'est-ce qui sera affiché lorsque vous exécutez main.py?

<p>A, C, D (D)</p> Signup and view all the answers

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)

<p>4, 7, 8 (C)</p> Signup and view all the answers

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]))```

<p>a|b|c d</p> Signup and view all the answers

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)```

<p>False (B)</p> Signup and view all the answers

La méthode de programmation rigoureuse ajoute de la ______ à votre programme.

<p>structure</p> Signup and view all the answers

Quel est le but de l'encapsulation dans la programmation orientée objet (POO)?

<p>Empêcher la manipulation des objets sauf via les méthodes définies (l'interface). (D)</p> Signup and view all the answers

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'.

<p>True (A)</p> Signup and view all the answers

Que représente self dans la définition d'une méthode de classe en Python?

<p>L'instance de l'objet sur lequel la méthode est appelée. (A)</p> Signup and view all the answers

Quelle est la différence principale entre modifier un objet directement dans une méthode et retourner une version modifiée de cet objet?

<p>Modifier l'objet change l'état de l'objet original, tandis que retourner une copie préserve l'objet original. (B)</p> Signup and view all the answers

Faites correspondre les concepts de POO aux descriptions appropriées:

<p>Attribut = Données stockées dans un objet Méthode = Fonction associée à un objet qui peut manipuler ses données Encapsulation = Concept de cacher les détails internes d'un objet et de fournir une interface pour interagir avec lui</p> Signup and view all the answers

Flashcards

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 ?

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) ?

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__) ?

Une fonction spéciale dans une classe utilisée afin d'initialiser les attributs d'un objet lors de sa création.

Signup and view all the flashcards

Qu'est-ce qu'une méthode d'instance ?

Une fonction définie à l'intérieur d'une classe qui peut accéder aux attributs de l'objet et les modifier.

Signup and view all the flashcards

Qu'est-ce que la méthode __str__ ?

Une méthode spéciale utilisée pour fournir une représentation en chaîne de caractères d'un objet.

Signup and view all the flashcards

Qu'est-ce que l'encapsulation et comment est-elle gérée en Python ?

En POO, c'est un mécanisme pour restreindre l'accès direct à certains attributs et méthodes d'une classe, les rendant accessibles uniquement depuis l'intérieur de la classe. En Python, on utilise une convention de nommage avec un double underscore __.

Signup and view all the flashcards

Quelle est la différence entre attributs et methodes en POO

Les attributs sont des variables associées à une instance d'une classe, contenant des données. Les méthodes sont des fonctions définies à l'intérieur d'une classe, qui opèrent sur les instances de cette classe.

Signup and view all the flashcards

Qu'est-ce qu'une erreur ValueError ?

Une erreur ValueError se produit quand une fonction reçoit un argument de type correct, mais avec une valeur inappropriée.

Signup and view all the flashcards

Qu'est-ce qu'une instance de classe ?

Une instance de classe est un objet créé à partir de cette classe. Chaque objet a ses propres valeurs d'attributs.

Signup and view all the flashcards

Comment restreindre l'accès à un attribut ou une méthode ?

Pour empêcher l'utilisation ou la modification arbitraire, on utilise un double tiret bas (__) avant le nom de l'attribut ou méthode pour les rendre "privés".

Signup and view all the flashcards

Qu'est-ce que le bloc finally?

C'est un bloc de code qui s'exécute toujours à la fin, peu importe si une exception est levée ou non.

Signup and view all the flashcards

Qu'est-ce que la programmation modulaire ?

Elle permet de créer des programmes qui peuvent être facilement assemblés ou remplacés tout en conservant la même interface.

Signup and view all the flashcards

Qu'est-ce que la méthode __init__ ?

Une méthode pour créer des objets, initialisant leurs attributs. Elle prend self comme premier argument.

Signup and view all the flashcards

Qu'est-ce qu'une classe ?

Une structure qui regroupe des données (attributs) et des fonctions (méthodes) pour manipuler ces données.

Signup and view all the flashcards

Quel est l'intérêt de la POO ?

Elle permet d'ajouter de la structure et de la sécurité à un programme, en définissant comment les objets peuvent être manipulés.

Signup and view all the flashcards

Quand le bloc else est-il exécuté dans un bloc try-except ?

Le bloc else est exécuté si aucune exception n'est levée dans le bloc try.

Signup and view all the flashcards

Qu'est-ce qu'une ValueError ?

Type d'erreur qui se produit quand une opération ou fonction reçoit un argument du bon type, mais de valeur inacceptable.

Signup and view all the flashcards

Study Notes

Quiz Python

  • Deux fichiers Python sont fournis : module.py et main.py.
  • Le code affiché lors de l'exécution de main.py est A, C, D.
  • L'instruction print("B") du fichier module.py n'est pas exécutée car le bloc if __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 exception ZeroDivisionError.
  • 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ée print(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 affichera a|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.

Quiz Team

Related Documents

More Like This

3. Programación básica en Python
5 questions

3. Programación básica en Python

MultiPurposeLapisLazuli1999 avatar
MultiPurposeLapisLazuli1999
Quiz de programmation Python
10 questions

Quiz de programmation Python

ComprehensiveDiscernment avatar
ComprehensiveDiscernment
Introduction à la programmation Python
15 questions
Le langage de programmation Python
16 questions
Use Quizgecko on...
Browser
Browser