0% ont trouvé ce document utile (0 vote)
3 vues10 pages

Resume Python Cours

Ce document présente un résumé structuré des cours de Python pour l'année académique 2024-2025, abordant des chapitres tels que l'introduction à Python, les collections, les classes et l'héritage. Il couvre des concepts fondamentaux comme l'algorithmique, les types de données, les structures de contrôle, la programmation orientée objet et les principes d'héritage. Chaque section fournit des définitions, des exemples et des méthodes associées pour faciliter l'apprentissage du langage Python.

Transféré par

ziyadbahaddou7
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues10 pages

Resume Python Cours

Ce document présente un résumé structuré des cours de Python pour l'année académique 2024-2025, abordant des chapitres tels que l'introduction à Python, les collections, les classes et l'héritage. Il couvre des concepts fondamentaux comme l'algorithmique, les types de données, les structures de contrôle, la programmation orientée objet et les principes d'héritage. Chaque section fournit des définitions, des exemples et des méthodes associées pour faciliter l'apprentissage du langage Python.

Transféré par

ziyadbahaddou7
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Langage Python

Résumé structuré des cours

Auteur : Said AGOUJIL


Année académique : 2024-2025

─────────────────────────────
Chapitres couverts :
01 – Introduction · 02 – Collections · 03 – Classes · 04 – Héritage
Chapitre 1 — Introduction à Python

1.1 L'Algorithmique
L'algorithmique est la base de la programmation. Un algorithme est la description d'un
processus logique, écrit en langage naturel, qui décrit une succession d'opérations à
exécuter dans un certain ordre et sous certaines conditions pour transformer des données
d'entrée en résultats de sortie.

Propriétés fondamentales d'un algorithme


• Chaque étape est décrite de façon précise
• Chaque étape est déterministe : elle produit des résultats uniques
• L'algorithme s'arrête après un nombre fini d'instructions
• Reçoit des données en entrée et produit des données en sortie

Exemple — Maximum de deux nombres


1. Saisir la valeur du 1er nombre a
2. Saisir la valeur du 2ème nombre b
3. Si a > b alors le maximum est a, sinon le maximum est b

1.2 Les Langages de Programmation


Un langage de programmation est un outil permettant de donner des ordres (instructions) à
la machine. À chaque instruction correspond une action du processeur.

Langages bas niveau


• Langage binaire : l'information est représentée sous forme de bits (0 ou 1)
• 1 octet = 8 bits — permet de coder tous les caractères alphanumériques
• Les opérations arithmétiques de base sont effectuées en binaire

Langages haut niveau


• Proche du langage humain (anglais) — compréhensible
• Portable : indépendant du matériel
• Permet la manipulation de données complexes (réels, objets, expressions)
• Nécessite un traducteur : compilateur ou interpréteur

1.3 Compilateur vs Interpréteur


Le compilateur traduit le programme entier en fichier exécutable avant l'exécution.
L'interpréteur traduit et exécute le programme instruction par instruction à chaque
lancement.

Comparaison
• Compilateur : exécution plus rapide, sécurité du code source, recompilation
nécessaire à chaque modification
• Interpréteur : exécution instantanée, pratique pour les débutants, mais plus lente
1.4 Historique et caractéristiques de Python
Python a été créé en 1989 par Guido van Rossum aux Pays-Bas. La première version
publique a été publiée en 1991. Il existe deux grandes versions : Python 2 (désormais
obsolète depuis 2020) et Python 3 (version actuelle recommandée). Les deux versions ne
sont pas rétrocompatibles.

Caractéristiques de Python
• Structuré et orienté objet
• Modulaire : peut être découpé en modules compilables séparément
• Universel : non limité à un domaine applicatif particulier
• Typé dynamiquement : le type est déterminé lors de l'affectation
• Portable : fonctionne sur tout système disposant d'un interpréteur Python
• Riche en bibliothèques : des milliers de packages disponibles

1.5 Variables et Types de données


Une variable est un emplacement mémoire nommé, dont le contenu peut changer au cours
de l'exécution du programme. En Python, le type est déterminé automatiquement lors de
l'affectation.

Règles de nommage
• Composé de lettres, chiffres et du symbole '_' — doit commencer par une lettre ou '_'
• Sensible à la casse : 'Ma_variable' ≠ 'ma_variable'
• Ne peut pas être un mot réservé Python (if, else, for, while, class…)

Types primitifs
• bool : booléen (True ou False)
• int : entier
• float : nombre flottant (double précision)
• str : chaîne de caractères

1.6 Opérateurs
Opérateurs arithmétiques
+, - (addition/soustraction) · * (multiplication) · / (division réelle) · // (division entière) · ** ou
pow() (puissance) · % (modulo)

Opérateurs relationnels
== · != · < · <= · > · >=

Opérateurs logiques
not (contraire) · and / & (et logique) · or / | (ou logique) · ^ (xor)

1.7 Saisie et Affichage


• input() : saisie au clavier — retourne toujours une chaîne (conversion nécessaire)
• print() : affichage à l'écran — supporte l'affichage de plusieurs valeurs
a = float(input("Saisir une valeur : "))
print("Résultat :", a)
Chapitre 2 — Collections et Instructions de Contrôle

2.1 Les Listes (list)


Une liste est une structure de données permettant de stocker plusieurs éléments de types
quelconques dans une seule variable. Les éléments sont ordonnés et accessibles par leur
indice (commençant à 0).

Opérations de base
• Création : maListe = [] ou maListe = [1, 2, 3]
• Taille : len(maListe)
• Accès par indice : maListe[2], dernier élément : maListe[-1]
• Sous-liste (slice) : maListe[0:2]
• Suppression d'un élément : del maListe[2]
• Inversion : [Link]() ou maListe[::-1]

Méthodes principales
• append(x) : ajouter un élément à la fin
• insert(i, x) : insérer un élément à la position i
• remove(x) : supprimer le premier élément égal à x
• pop() / pop(i) : retirer et retourner le dernier / i-ème élément
• sort() : trier la liste en place
• count(x) : compter les occurrences de x

2.2 Les Tuples (tuple)


Un tuple est similaire à une liste, mais ses éléments sont immuables : ils ne peuvent pas
être modifiés, remplacés ni supprimés après création.

Définition
t = ('a', 'b', 2) # tuple standard
t = () # tuple vide
t = ('a',) # tuple à 1 élément (virgule obligatoire)

Méthodes disponibles
• [Link](x) : nombre d'occurrences de x
• [Link](x) : position de la première occurrence de x
Les tuples supportent les opérateurs +, *, [], in/not in et les comparaisons standard.

2.3 Les Séquences


En Python, une séquence est une chaîne (str), une liste (list) ou un tuple. Les séquences
partagent des opérateurs communs : in, not in (appartenance), is, is not (identité d'objet
mutable).
Conversions entre séquences
• list('abc') → ['a', 'b', 'c']
• tuple(['a', 'b', 'c']) → ('a', 'b', 'c')
• Affectation parallèle : (x, y, z) = (1, 2, 3)

2.4 Les Dictionnaires (dict)


Un dictionnaire stocke des données sous forme de paires clé-valeur. Les clés sont
alphanumériques (ou des tuples de constantes) ; les listes ne peuvent pas être des clés.

Opérations de base
• Création : d = {} ou d = {'clé': valeur}
• Accès : d['clé']
• Affectation : d['clé'] = valeur
• Suppression : del d['clé']
• Test d'existence : 'clé' in d
• Taille : len(d)

Méthodes principales
• [Link]() : liste des clés
• [Link]() : liste des valeurs
• [Link]() : liste de paires (clé, valeur)
• [Link](key, default) : valeur ou default si clé absente
• [Link](key) : retirer et retourner la valeur associée à key
• [Link]() : vider le dictionnaire

2.5 Les Ensembles (set)


Un ensemble est une collection non ordonnée d'éléments uniques et hachables. Les
ensembles sont mutables, mais sans notion de position ou d'indice.

Création
• s = set() — ensemble vide
• s = {'a', 'b', 'c'} ou s = set(['a', 'b', 'c'])
• frozenset : ensemble non modifiable

Opérations ensemblistes
• Union : [Link](s2) ou s | s2
• Intersection : [Link](s2) ou s & s2
• Différence : [Link](s2) ou s - s2
• Différence symétrique : s.symmetric_difference(s2) ou s ^ s2
• Sous-ensemble : [Link](s2) / sur-ensemble : [Link](s2)

2.6 Instructions de Contrôle (if / elif / else)


Les instructions de contrôle permettent de modifier le flux d'exécution d'un programme en
fonction de conditions booléennes.
if condition:
bloc d'instructions
elif condition:
bloc d'instructions
else:
bloc d'instructions
Forme condensée (opérateur ternaire) :
max = a if a > b else b

2.7 Les Boucles


Boucle while
Exécute un bloc tant qu'une condition est vraie. La clause else est exécutée quand la
condition devient fausse.
while condition:
bloc d'instructions
else:
bloc exécuté en fin de boucle

Boucle for
Itère sur les éléments d'un objet itérable (liste, tuple, chaîne, range…).
for element in iterateur:
bloc d'instructions
range([a], b, [c]) génère une séquence d'entiers de a à b-1 avec un pas de c.

Instructions break, continue, pass


• break : quitte immédiatement la boucle
• continue : passe directement à l'itération suivante
• pass : instruction vide — utile pour les corps de boucle vides

2.8 Les Fonctions


Une fonction est un bloc d'instructions nommé, réutilisable, défini avec le mot-clé def.
def maFonction(arg1, arg2, arg3=valeurDefaut):
bloc d'instructions
return résultat

Particularités
• Les paramètres sont passés par valeur (mais les listes/dicts sont passés par
référence)
• Valeurs par défaut : def maFonc(a, b=5) — b vaut 5 si non fourni
• Appel avec argument nommé : maFonc(a=8)
• Retour multiple via un tuple : return x, y (récupérable dans a, b = maFonc())
Chapitre 3 — Classes et Programmation Orientée
Objet

3.1 Principes de la POO


La Programmation Orientée Objet (POO) consiste à définir des objets logiciels et à les faire
interagir entre eux. Les objets modélisent des entités réelles (voiture, personne) ou des
concepts (date, couleur).

Trois concepts fondamentaux


• Classe : modèle ou type définissant les propriétés communes à un ensemble
d'objets
• Objet (instance) : entité créée à partir d'une classe, possédant une identité propre
• Encapsulation : protection des attributs internes, accessibles uniquement via des
méthodes

3.2 Déclaration d'une Classe


En Python, une classe est définie avec le mot-clé class. Par convention, les noms de
classes utilisent le CamelCase (ex. : NomDeClasse).
class NomDeLaClasse:
pass # corps vide

monObjet = NomDeLaClasse() # instanciation

3.3 Méthodes
Une méthode est une fonction définie dans une classe. Le premier paramètre est toujours
self, qui représente l'instance courante (la référence de l'objet).
def maMethode(self, [arguments]):
# corps de la méthode

3.4 Visibilité des Membres


La POO permet de contrôler l'accès aux attributs et méthodes. En Python, tout est public par
défaut ; la confidentialité repose sur des conventions de nommage :
• Public : nom standard — accessible partout
• Protégé : _nom (un tiret bas) — accessible par la classe et ses sous-classes
• Privé : __nom (deux tirets bas) — accessible uniquement dans la classe

3.5 L'Initialisateur __init__


La méthode __init__ est automatiquement invoquée lors de l'instanciation d'un objet. Elle
permet d'initialiser les attributs. Elle ne contient jamais de return.
class Voiture:
def __init__(self, marque):
[Link] = marque # attribut d'instance
Remarque : __init__ est souvent appelée « constructeur » par abus de langage. Le vrai
constructeur est __new__, qui crée l'objet avant son initialisation.

3.6 Attributs d'Instance vs Attributs de Classe


Attribut d'instance
• Variable propre à chaque objet, définie dans __init__ via [Link]
• Sa valeur peut varier d'une instance à l'autre

Attribut de classe
• Variable partagée par toutes les instances de la classe
• Équivalent aux attributs statiques en C++

3.7 Méthodes Spéciales (Dunder methods)


Les méthodes spéciales (entourées de doubles tirets bas __) permettent de définir le
comportement des objets pour les opérations Python standards.

__str__ — représentation textuelle


Renvoie une chaîne de caractères représentant l'objet, utilisée par print().
def __str__(self):
return '%.2d:%.2d:%.2d' % (self.h, self.m, self.s)

Surcharge d'opérateurs
Python permet de redéfinir le comportement des opérateurs (+, -, *, /, ==, <, >…) pour les
objets d'une classe via des méthodes spéciales :
• __add__(self, other) → opérateur +
• __sub__(self, other) → opérateur -
• __mul__(self, other) → opérateur *
• __eq__(self, other) → opérateur ==
• __lt__(self, other) → opérateur <
• __len__(self) → fonction len()
• __str__(self) → fonction str() / print()
• __repr__(self) → représentation officielle de l'objet
Chapitre 4 — Héritage et Polymorphisme

4.1 Concept d'Héritage


L'héritage est un mécanisme fondamental de la POO qui permet à une classe (classe fille)
de réutiliser et d'étendre les fonctionnalités d'une autre classe (classe mère), sans modifier
ni copier son code source.

Ce que l'héritage permet


• Ajouter de nouvelles méthodes et attributs dans la classe fille
• Redéfinir (surcharger) des méthodes existantes de la classe mère
• Réutiliser le code existant et organiser les classes hiérarchiquement

4.2 Vocabulaire
• Classe mère / classe parente / super-classe : la classe dont on hérite
• Classe fille / sous-classe : la classe qui hérite

4.3 Déclaration d'une Sous-classe en Python


class ClasseMere:
"""une classe mère"""
pass

class ClasseFille(ClasseMere):
"""une classe fille héritant de la classe mère"""
pass

4.4 Constructeur de la Classe Fille


Le constructeur de la classe fille doit explicitement appeler le constructeur de la classe mère
pour initialiser les attributs hérités. Deux syntaxes sont possibles :

Syntaxe directe
def __init__(self, para1, para2):
ClasseMere.__init__(self, para1) # appel explicite

Syntaxe avec super()


def __init__(self, para1, para2):
super().__init__(para1) # recommandée pour héritage simple
Remarque : super() n'est utilisable que dans le cas d'un héritage simple.

4.5 La Classe object


En Python, toute classe hérite implicitement de la classe object, qui est l'ancêtre commun de
toutes les classes. Ainsi, si aucune classe mère n'est précisée, c'est object qui est utilisé par
défaut.
4.6 Constructeur et Destructeur
__new__ — le vrai constructeur
La méthode __new__ est le vrai constructeur. Elle est appelée avant la création de l'objet,
prend la classe en premier paramètre et retourne l'objet nouvellement créé. __init__ n'est
qu'un initialisateur.

__del__ — le destructeur
La méthode __del__ est appelée lorsque l'objet est supprimé, soit explicitement (del objet),
soit automatiquement par le garbage collector.
class MaClasse:
def __del__(self):
print('Objet détruit')

4.7 Polymorphisme
Le polymorphisme permet d'utiliser le même nom de méthode pour des comportements
différents selon la classe. En Python, cela se traduit par la redéfinition d'une méthode dans
la classe fille avec le même nom que dans la classe mère. Ce processus s'appelle la
redéfinition (ou surcharge) de méthode.
class Animal:
def parler(self):
print('...')

class Chien(Animal):
def parler(self): # redéfinition
print('Wouf !')

4.8 Héritage Multiple


Python supporte l'héritage multiple, qui permet à une classe fille de posséder plusieurs
classes mères et d'hériter ainsi de leurs attributs et méthodes.
class ClasseFille(ClasseMere1, ClasseMere2):
def __init__(self, p1, p2, p3):
ClasseMere1.__init__(self, p1)
ClasseMere2.__init__(self, p2)
Important : dans le cas d'un héritage multiple, super() ne peut pas être utilisé car il serait
ambigu (plusieurs classes mères possibles). Il faut appeler explicitement les constructeurs
de chaque classe mère.

4.9 Fonctions utilitaires


• isinstance(objet, Classe) : vérifie si un objet est une instance d'une classe donnée
• issubclass(ClasseFille, ClasseMere) : vérifie si une classe est sous-classe d'une
autre

Fin du résumé — Langage Python · Said AGOUJIL · 2024-2025

Vous aimerez peut-être aussi