0% ont trouvé ce document utile (0 vote)
8 vues20 pages

Formation Complète en Python

Transféré par

jocelynkassa32
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues20 pages

Formation Complète en Python

Transféré par

jocelynkassa32
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

Formation Complète en Python

Table des Matières

1. Introduction à Python
2. Installation et Configuration
3. Syntaxe de Base
4. Types de Données
5. Structures de Contrôle
6. Fonctions
7. Structures de Données Avancées
8. Programmation Orientée Objet
9. Gestion des Erreurs
10. Modules et Packages
11. Manipulation de Fichiers
12. Bibliothèques Importantes
13. Bases de Données
14. Développement Web
15. Data Science et Analyse
16. Tests et Débogage
17. Bonnes Pratiques
18. Projets Pratiques

Durée de la formation : 03 mois

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
2

1. Introduction à Python

1.1 Qu'est-ce que Python ?

Python est un langage de programmation interprété, orienté objet et de haut niveau créé par
Guido van Rossum en 1991. Il se distingue par :

Avantages de Python :

• Syntaxe claire et lisible : Proche du langage naturel


• Polyvalence : Web, data science, IA, automatisation, jeux
• Grande communauté : Support et ressources abondantes
• Bibliothèques riches : Plus de 300 000 packages disponibles
• Multiplateforme : Windows, Mac, Linux
• Open source : Gratuit et libre d'utilisation

Domaines d'application :

• Développement web (Django, Flask)


• Data Science et Machine Learning
• Automatisation et scripts
• Applications desktop
• Jeux vidéo
• Applications mobiles
• Intelligence artificielle

1.2 Philosophie Python - Le Zen de Python

import this

Principes fondamentaux :

• Beau vaut mieux que laid


• Explicite vaut mieux qu'implicite
• Simple vaut mieux que complexe
• La lisibilité compte
• Il devrait y avoir une façon évidente de le faire

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
3

2. Installation et Configuration

2.1 Installation de Python

Windows :

1. Télécharger depuis [Link]


2. Cocher "Add Python to PATH"
3. Installer avec les options par défaut

Mac :

# Via Homebrew (recommandé)


brew install python3

# Ou télécharger depuis [Link]

Linux (Ubuntu/Debian) :

sudo apt update


sudo apt install python3 python3-pip

2.2 Environnements de Développement

IDLE : Interface intégrée avec Python

PyCharm : IDE professionnel complet

VS Code : Éditeur léger avec extensions Python

Jupyter Notebook : Idéal pour data science

Spyder : Orienté scientifique

2.3 Environnements Virtuels

# Créer un environnement virtuel


python -m venv mon_env

# Activer (Windows)
mon_env\Scripts\activate
Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
4

# Activer (Mac/Linux)
source mon_env/bin/activate

# Désactiver
deactivate

2.4 Gestionnaire de Packages (pip)

# Installer un package
pip install numpy

# Installer plusieurs packages


pip install numpy pandas matplotlib

# Installer depuis [Link]


pip install -r [Link]

# Lister les packages installés


pip list

# Mettre à jour un package


pip install --upgrade numpy

3. Syntaxe de Base

3.1 Premier Programme

# Afficher "Hello World"


print("Hello, World!")

# Commentaire sur une ligne


"""
Commentaire
sur plusieurs
lignes
"""

3.2 Variables et Affectation

# Déclaration de variables
nom = "Alice"
age = 25
taille = 1.70
est_etudiant = True

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
5

# Affectation multiple
x, y, z = 1, 2, 3
a = b = c = 0

# Conventions de nommage
nom_utilisateur = "john" # snake_case (recommandé)
NOM_CONSTANT = "VALEUR" # Constantes en majuscules

3.3 Entrée et Sortie

# Saisie utilisateur
nom = input("Entrez votre nom : ")
age = int(input("Entrez votre âge : "))

# Affichage formaté
print(f"Bonjour {nom}, vous avez {age} ans")
print("Nom : {} - Age : {}".format(nom, age))
print("Nom : %s - Age : %d" % (nom, age))

3.4 Opérateurs

Opérateurs Arithmétiques :

a, b = 10, 3

addition = a + b # 13
soustraction = a - b # 7
multiplication = a * b # 30
division = a / b # 3.333...
division_entiere = a // b # 3
modulo = a % b # 1
puissance = a ** b # 1000

Opérateurs de Comparaison :

x, y = 5, 10

egal = (x == y) # False
different = (x != y) # True
inferieur = (x < y) # True
superieur = (x > y) # False
inf_egal = (x <= y) # True
sup_egal = (x >= y) # False

Opérateurs Logiques :

a, b = True, False

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
6

et_logique = a and b # False


ou_logique = a or b # True
negation = not a # False

4. Types de Données

4.1 Types de Base

Nombres :

# Entiers (int)
age = 25
population = 1_000_000 # Séparateurs pour lisibilité

# Flottants (float)
pi = 3.14159
temperature = -15.5

# Complexes (complex)
nombre_complexe = 3 + 4j

# Conversion de types
age_str = str(age) # "25"
pi_int = int(pi) # 3
age_float = float(age) # 25.0

Booléens :

est_actif = True
est_ferme = False

# Valeurs considérées comme False


print(bool(0)) # False
print(bool("")) # False
print(bool([])) # False
print(bool(None)) # False

# Valeurs considérées comme True


print(bool(1)) # True
print(bool("text")) # True
print(bool([1])) # True

4.2 Chaînes de Caractères (str)

# Création de chaînes

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
7

nom = "Alice"
prenom = 'Bob'
texte = """Texte
sur plusieurs
lignes"""

# Échappement
chemin = "C:\\Users\\nom\\Documents"
citation = "Il a dit : \"Bonjour\""

# Chaînes brutes (raw strings)


regex = r"\d+\.\d+"

# Opérations sur chaînes


prenom = "Alice"
nom = "Dupont"

# Concaténation
nom_complet = prenom + " " + nom
nom_complet = f"{prenom} {nom}" # f-string (recommandé)

# Méthodes utiles
print([Link]()) # ALICE
print([Link]()) # alice
print([Link]()) # Alice
print([Link]('a')) # 0
print([Link]('A', 'E')) # Elice
print([Link]('i')) # ['Al', 'ce']
print(" Alice ".strip()) # "Alice"

# Formatage avancé
prix = 19.99
print(f"Prix : {prix:.2f}€") # Prix : 19.99€
print(f"Prix : {prix:>10.2f}€") # Alignement droite

4.3 Listes (list)

# Création
fruits = ["pomme", "banane", "orange"]
nombres = [1, 2, 3, 4, 5]
mixte = ["texte", 42, True, 3.14]
vide = []

# Accès aux éléments


premier = fruits[0] # "pomme"
dernier = fruits[-1] # "orange"
sous_liste = fruits[1:3] # ["banane", "orange"]

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
8

# Modification
fruits[0] = "poire" # ["poire", "banane", "orange"]
[Link]("kiwi") # Ajouter à la fin
[Link](1, "mangue") # Insérer à l'index 1
[Link]("banane") # Supprimer par valeur
element = [Link]() # Retirer et retourner le dernier
element = [Link](0) # Retirer et retourner le premier

# Méthodes utiles
[Link](["citron", "lime"]) # Ajouter plusieurs éléments
[Link]() # Trier sur place
nouveau = sorted(fruits) # Nouvelle liste triée
[Link]() # Inverser
nombre = [Link]("pomme") # Compter occurrences
index = [Link]("orange") # Trouver l'index

# Compréhensions de liste
carres = [x**2 for x in range(10)] # [0, 1, 4, 9, ...]
pairs = [x for x in range(20) if x % 2 == 0]

4.4 Tuples (tuple)

# Création (immutable)
coordonnees = (10, 20)
couleurs = ("rouge", "vert", "bleu")
singleton = (42,) # Virgule obligatoire pour un seul élément

# Accès (comme les listes)


x, y = coordonnees # Déballage
rouge = couleurs[0]

# Avantages des tuples


# - Plus rapides que les listes
# - Peuvent servir de clés dans les dictionnaires
# - Garantissent l'immutabilité des données

4.5 Dictionnaires (dict)

# Création
personne = {
"nom": "Dupont",
"prenom": "Alice",
"age": 30
}

# Autre syntaxe

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
9

personne = dict(nom="Dupont", prenom="Alice", age=30)

# Accès et modification
nom = personne["nom"] # "Dupont"
nom = [Link]("nom", "Inconnu") # Avec valeur par défaut
personne["age"] = 31 # Modification
personne["ville"] = "Paris" # Ajout

# Méthodes utiles
cles = [Link]() # dict_keys(['nom', 'prenom',
'age'])
valeurs = [Link]() # dict_values(['Dupont', 'Alice',
31])
items = [Link]() # dict_items([('nom', 'Dupont'),
...])

# Suppression
del personne["ville"] # Supprimer une clé
age = [Link]("age", 0) # Retirer et retourner
[Link]() # Vider le dictionnaire

# Compréhensions de dictionnaire
carres = {x: x**2 for x in range(5)} # {0: 0, 1: 1, 2: 4, ...}

4.6 Ensembles (set)

# Création
fruits = {"pomme", "banane", "orange"}
nombres = set([1, 2, 3, 4, 5])
vide = set() # Attention : {} crée un dict vide

# Opérations
[Link]("kiwi") # Ajouter
[Link]("pomme") # Supprimer (erreur si absent)
[Link]("pomme") # Supprimer (pas d'erreur si
absent)

# Opérations mathématiques
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}

union = a | b # {1, 2, 3, 4, 5, 6}
intersection = a & b # {3, 4}
difference = a - b # {1, 2}
diff_symetrique = a ^ b # {1, 2, 5, 6}

# Tests d'appartenance

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
10

print(3 in a) # True
print([Link](b)) # False
print([Link]({1, 2})) # True

5. Structures de Contrôle

5.1 Conditions (if/elif/else)

# Structure de base
age = 18

if age >= 18:


print("Vous êtes majeur")
else:
print("Vous êtes mineur")

# Conditions multiples
note = 85

if note >= 90:


mention = "Excellent"
elif note >= 80:
mention = "Très bien"
elif note >= 70:
mention = "Bien"
elif note >= 60:
mention = "Assez bien"
else:
mention = "Insuffisant"

print(f"Mention : {mention}")

# Opérateur ternaire
statut = "majeur" if age >= 18 else "mineur"

# Conditions complexes
temperature = 25
humidite = 60

if temperature > 20 and humidite < 70:


print("Temps agréable")
elif temperature < 0 or humidite > 90:
print("Temps désagréable")
else:
print("Temps correct")

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
11

# Test de présence
fruits = ["pomme", "banane", "orange"]
if "pomme" in fruits:
print("Il y a des pommes")

# Test de type
valeur = 42
if isinstance(valeur, int):
print("C'est un entier")

5.2 Boucles

Boucle for :

# Parcourir une liste


fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
print(f"J'aime les {fruit}s")

# Avec index
for i, fruit in enumerate(fruits):
print(f"{i}: {fruit}")

# Parcourir un dictionnaire
personne = {"nom": "Alice", "age": 30}
for cle, valeur in [Link]():
print(f"{cle}: {valeur}")

# Range (plage de nombres)


for i in range(5): # 0 à 4
print(i)

for i in range(1, 6): # 1 à 5


print(i)

for i in range(0, 10, 2): # 0, 2, 4, 6, 8


print(i)

# Compréhensions (plus pythonique)


carres = [x**2 for x in range(10)]
pairs = [x for x in range(20) if x % 2 == 0]

Boucle while :

# Boucle while basique


compteur = 0
while compteur < 5:

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
12

print(f"Compteur : {compteur}")
compteur += 1

# Boucle infinie avec break


while True:
reponse = input("Tapez 'quit' pour sortir : ")
if [Link]() == 'quit':
break
print(f"Vous avez tapé : {reponse}")

# Continue pour passer à l'itération suivante


for i in range(10):
if i % 2 == 0:
continue # Ignorer les nombres pairs
print(f"Nombre impair : {i}")

# Else avec les boucles (exécuté si pas de break)


for i in range(5):
if i == 10:
break
print(i)
else:
print("Boucle terminée normalement")

5.3 Contrôle de Flux Avancé

# Match-case (Python 3.10+)


def analyser_type(valeur):
match valeur:
case int() if valeur > 0:
return "Entier positif"
case int() if valeur < 0:
return "Entier négatif"
case 0:
return "Zéro"
case str() if len(valeur) > 10:
return "Chaîne longue"
case str():
return "Chaîne courte"
case list() | tuple():
return "Séquence"
case _:
return "Autre type"

# Boucles imbriquées
for i in range(3):
for j in range(3):

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
13

print(f"({i}, {j})", end=" ")


print() # Nouvelle ligne

# Break et continue dans boucles imbriquées


for i in range(5):
for j in range(5):
if j == 3:
break # Sort seulement de la boucle interne
print(f"{i}-{j}", end=" ")
print()

6. Fonctions

6.1 Définition et Appel

# Fonction simple
def saluer():
print("Bonjour !")

saluer() # Appel de la fonction

# Fonction avec paramètres


def saluer_personne(nom, age):
print(f"Bonjour {nom}, vous avez {age} ans")

saluer_personne("Alice", 25)

# Fonction avec valeur de retour


def additionner(a, b):
resultat = a + b
return resultat

somme = additionner(5, 3)
print(somme) # 8

# Retour multiple
def diviser(a, b):
quotient = a // b
reste = a % b
return quotient, reste

q, r = diviser(10, 3)
print(f"10 ÷ 3 = {q} reste {r}")

6.2 Paramètres Avancés

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
14

# Paramètres par défaut


def presenter(nom, age=18, ville="Paris"):
print(f"{nom}, {age} ans, habite à {ville}")

presenter("Alice") # Utilise les valeurs par


défaut
presenter("Bob", 25) # age=25, ville="Paris"
presenter("Charlie", ville="Lyon") # Paramètre nommé

# Paramètres variables (*args)


def additionner_tout(*nombres):
total = 0
for nombre in nombres:
total += nombre
return total

print(additionner_tout(1, 2, 3, 4, 5)) # 15

# Paramètres mots-clés variables (**kwargs)


def afficher_infos(**infos):
for cle, valeur in [Link]():
print(f"{cle}: {valeur}")

afficher_infos(nom="Alice", age=25, ville="Paris")

# Combinaison de tous les types


def fonction_complete(arg_obligatoire, arg_defaut="defaut",
*args, **kwargs):
print(f"Obligatoire: {arg_obligatoire}")
print(f"Défaut: {arg_defaut}")
print(f"Args supplémentaires: {args}")
print(f"Kwargs: {kwargs}")

fonction_complete("test", "nouveau", 1, 2, 3, nom="Alice",


age=25)

6.3 Portée des Variables (Scope)

# Variables globales et locales


x = 10 # Variable globale

def fonction():
x = 20 # Variable locale
print(f"x local: {x}")

fonction() # x local: 20
print(f"x global: {x}") # x global: 10

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
15

# Mot-clé global
compteur = 0

def incrementer():
global compteur
compteur += 1

incrementer()
print(compteur) # 1

# Mot-clé nonlocal (pour fonctions imbriquées)


def externe():
x = 10

def interne():
nonlocal x
x += 5

interne()
print(x) # 15

externe()

6.4 Fonctions Lambda

# Fonction lambda simple


carre = lambda x: x**2
print(carre(5)) # 25

# Équivalent avec def


def carre_def(x):
return x**2

# Utilisation avec map, filter, sort


nombres = [1, 2, 3, 4, 5]
carres = list(map(lambda x: x**2, nombres)) # [1, 4, 9, 16, 25]
pairs = list(filter(lambda x: x % 2 == 0, nombres)) # [2, 4]

# Tri avec key personnalisée


personnes = [("Alice", 25), ("Bob", 30), ("Charlie", 20)]
[Link](key=lambda personne: personne[1]) # Tri par âge
print(personnes) # [('Charlie', 20), ('Alice', 25), ('Bob', 30)]

6.5 Décorateurs (Concepts Avancés)

# Décorateur simple

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
16

def mon_decorateur(func):
def wrapper():
print("Avant l'exécution")
func()
print("Après l'exécution")
return wrapper

@mon_decorateur
def dire_bonjour():
print("Bonjour !")

dire_bonjour()
# Sortie:
# Avant l'exécution
# Bonjour !
# Après l'exécution

# Décorateur avec paramètres


import time
from functools import wraps

def mesurer_temps(func):
@wraps(func)
def wrapper(*args, **kwargs):
debut = [Link]()
resultat = func(*args, **kwargs)
fin = [Link]()
print(f"{func.__name__} a pris {fin - debut:.4f}
secondes")
return resultat
return wrapper

@mesurer_temps
def calcul_lent():
[Link](1)
return "Terminé"

calcul_lent()

7. Structures de Données Avancées

7.1 Collections Module

from collections import defaultdict, Counter, deque, namedtuple

# defaultdict - dictionnaire avec valeur par défaut

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
17

dd = defaultdict(list)
dd['fruits'].append('pomme')
dd['fruits'].append('banane')
print(dd) # defaultdict(<class 'list'>, {'fruits': ['pomme',
'banane']})

# Counter - compteur d'éléments


mots = ['pomme', 'banane', 'pomme', 'orange', 'banane', 'pomme']
compteur = Counter(mots)
print(compteur) # Counter({'pomme': 3, 'banane': 2, 'orange':
1})
print(compteur.most_common(2)) # [('pomme', 3), ('banane', 2)]

# deque - liste doublement liée


dq = deque([1, 2, 3])
[Link](0) # Ajouter à gauche
[Link](4) # Ajouter à droite
print(dq) # deque([0, 1, 2, 3, 4])

# namedtuple - tuple nommé


Point = namedtuple('Point', ['x', 'y'])
p = Point(10, 20)
print(f"x: {p.x}, y: {p.y}") # x: 10, y: 20

7.2 Compréhensions Avancées

# Compréhensions de liste conditionnelles


nombres = range(20)
pairs_carres = [x**2 for x in nombres if x % 2 == 0]
# [0, 4, 16, 36, 64, 100, 144, 196, 256, 324]

# Compréhensions imbriquées
matrice = [[j for j in range(i, i+3)] for i in range(3)]
# [[0, 1, 2], [1, 2, 3], [2, 3, 4]]

# Aplatir une matrice


matrice = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
aplatie = [element for ligne in matrice for element in ligne]
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

# Compréhensions de dictionnaire
mots = ['hello', 'world', 'python']
longueurs = {mot: len(mot) for mot in mots}
# {'hello': 5, 'world': 5, 'python': 6}

# Compréhensions d'ensemble

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
18

voyelles = {[Link]() for char in "Hello World" if


[Link]() in 'aeiou'}
# {'e', 'o'}

7.3 Manipulation de Chaînes Avancée

import re
import string

# Expressions régulières
texte = "Mon email est alice@[Link] et mon numéro est 06-12-
34-56-78"
emails = [Link](r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-
z]{2,}\b', texte)
telephones = [Link](r'\d{2}-\d{2}-\d{2}-\d{2}-\d{2}', texte)

# Template de chaîne
from string import Template
template = Template("Bonjour $nom, vous avez $age ans")
message = [Link](nom="Alice", age=25)

# Formatage avancé
prix = 1234.567
print(f"{prix:,.2f}") # 1,234.57
print(f"{prix:>10.2f}") # " 1234.57"
print(f"{prix:0>10.2f}") # "001234.57"

# Manipulation de caractères
texte = "Hello World"
print([Link]([Link]('lo', '10'))) # "He110
W0r1d"

8. Programmation Orientée Objet

8.1 Classes et Objets de Base

# Définition de classe simple


class Personne:
# Attribut de classe (partagé par tous les objets)
espece = "Homo sapiens"

def __init__(self, nom, age):


# Attributs d'instance
[Link] = nom
[Link] = age

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
19

def presenter(self):
return f"Je suis {[Link]} et j'ai {[Link]} ans"

def avoir_anniversaire(self):
[Link] += 1
print(f"Joyeux anniversaire ! {[Link]} a maintenant
{[Link]} ans")

# Création d'objets
alice = Personne("Alice", 25)
bob = Personne("Bob", 30)

print([Link]()) # Je suis Alice et j'ai 25 ans


alice.avoir_anniversaire() # Joyeux anniversaire ! Alice a
maintenant 26 ans

8.2 Méthodes Spéciales (Magic Methods)

class Rectangle:
def __init__(self, largeur, hauteur):
[Link] = largeur
[Link] = hauteur

def __str__(self):
return f"Rectangle({[Link]}x{[Link]})"

def __repr__(self):
return f"Rectangle(largeur={[Link]},
hauteur={[Link]})"

def __eq__(self, other):


if isinstance(other, Rectangle):
return [Link] == [Link] and [Link]
== [Link]
return False

def __add__(self, other):


if isinstance(other, Rectangle):
return Rectangle([Link] + [Link],
[Link] + [Link])
return NotImplemented

def __len__(self):
return int(2 * ([Link] + [Link])) #
Périmètre

def __getitem__(self, key):

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou
20

if key == 0:
return [Link]
elif key == 1:
return [Link]
else:
raise IndexError("Index out of range")

@property
def aire(self):
return [Link] * [Link]

# Utilisation
rect1 = Rectangle(5, 3)
rect2 = Rectangle(5, 3)
rect3 = Rectangle(2, 4)

print(rect1) # Rectangle(5x3)
print(repr(rect1)) # Rectangle(largeur=5, hauteur=3)
print(rect1 == rect2) # True
print(rect1 == rect3) # False
print(rect1 + rect3) # Rectangle(7x7)
print(len(rect1)) # 16 (périmètre)
print(rect1[0], rect1[1]) # 5 3
print([Link]) # 15

8.3 Héritage

# Classe de base
class Animal:
def __init__(self, nom, espece):
[Link] = nom
[Link] = espece

def faire_bruit(self):
return "L'animal fait un bruit"

def presenter(self):
return f"Je suis {[Link]}, un {[Link]}"

# Classe dérivée

Formation proposée par M. Latini Jocelyn KIANSI KASSA, élève professeur en Mathématiques &
Informatiques à l’École Normale Supérieure de Natitingou

Vous aimerez peut-être aussi