🐍 Cours Complet Python · De Débutant à Expert
20 chapitres · exemples & résultats · structure claire
📋 Table des matières
Partie 1 · Fondamentaux
Partie 2 · Procédurale
Partie 3 · POO
Partie 4 · Avancé
🔹 PARTIE 1 : FONDAMENTAUX (Cours 1-7)
🐍 1️⃣
Premier programme
Pas besoin de classe ou de
main(). print() affiche. Indentation significative (4 espaces).🔑 Mots‑clés
printindentation
💻 Code
# Premier programme Python
print("Bonjour le monde !")
📤 Résultat : Bonjour le monde !
🐍 2️⃣
Variables
Typage dynamique :
int, float, str, bool, list, dictintfloatstrboollistdict
age = 25
prix = 19.99
nom = "Jean"
est_actif = True
print(f"Nom : {nom}, Âge : {age}")
print("Type age :", type(age))
📤 Résultat : Nom : Jean, Âge : 25
Type age :
Type age :
🐍 3️⃣
Opérateurs arithmétiques
+, -, *, /, // (division entière), % (modulo), ** (puissance)
+-*///%**
a, b = 10, 3
print(f"Addition : {a + b}")
print(f"Division entière : {a // b}")
print(f"Puissance : {a ** 2}")
📤 Résultat : Addition : 13
Division entière : 3
Puissance : 100
Division entière : 3
Puissance : 100
🐍 4️⃣
Conversion (casting)
int(), float(), str()int()float()str()
nombre_str = "42"
nombre_int = int(nombre_str)
prix = 15.7
arrondi = int(prix) # 15
print(f"String → int : {nombre_int}")
print(f"Float → int : {arrondi}")
📤 Résultat : String → int : 42
Float → int : 15
Float → int : 15
🐍 5️⃣
Interaction (input)
input() retourne une chaîne. Penser à convertir.input
nom = input("Entrez votre nom : ")
age = int(input("Âge : "))
print(f"Bonjour {nom}, {age} ans")
📤 Exemple : (saisie "Alice", 25) → Bonjour Alice, 25 ans
🐍 6️⃣
Conditions (if/elif/else, match)
if, elif, else ; match (Python 3.10+)ifelifelsematchcase
age = 18
if age < 13:
print("Enfant")
elif age < 20:
print("Adolescent")
else:
print("Adulte")
📤 Résultat : Adolescent
🐍 7️⃣
Boucles (while, for)
while, for ... in range()whileforrange
# while
c = 1
while c <= 3:
print(c); c+=1
# for
for i in range(1, 4):
print(f"5 x {i} = {5*i}")
📤 Résultat : 1 2 3 puis 5x1=5, 5x2=10, 5x3=15
🔹 PARTIE 2 : PROGRAMMATION PROCÉDURALE (Cours 8-10)
🐍 8️⃣
Fonctions
def, paramètres, retour, arguments variables (*args)defreturn*args
def addition(a, b):
return a + b
def max_nombres(*nombres):
return max(nombres)
print(addition(5,3))
print(max_nombres(5,8,3))
📤 Résultat : 8
8
8
🐍 9️⃣
Listes (arrays)
Création, ajout (
append), parcours, sum, lenlistappendsumlensorted
notes = [15,8,12,18,10]
print(f"Somme : {sum(notes)}")
print(f"Moyenne : {sum(notes)/len(notes)}")
print(f"Tri : {sorted(notes)}")
📤 Résultat : Somme : 63, Moyenne : 12.6, Tri : [8,10,12,15,18]
🐍 🔟
Modules (str, math, random)
import math, random ; méthodes sur les chaînesimportmathrandomstr
import math, random
print(math.sqrt(16))
print(random.randint(1,6))
📤 Résultat : 4.0 et un nombre entre 1 et 6
🔹 PARTIE 3 : PROGRAMMATION ORIENTÉE OBJET (Cours 11-15)
🐍 1️⃣1️⃣
Classes & Objets
Définition avec
class, attributs, méthodesclass__init__self
class Personne:
def __init__(self):
self.nom = ""
self.age = 0
def se_presenter(self):
print(f"Bonjour, {self.nom} ({self.age} ans)")
p = Personne()
p.nom = "Alice"
p.age = 25
p.se_presenter()
📤 Résultat : Bonjour, Alice (25 ans)
🐍 1️⃣2️⃣
Constructeur (__init__)
Initialise les attributs, valeurs par défaut
__init__self
class Etudiant:
def __init__(self, nom="Inconnu", age=18):
self.nom = nom
self.age = age
e = Etudiant("Marie", 20)
print(e.nom, e.age)
📤 Résultat : Marie 20
🐍 1️⃣3️⃣
Encapsulation (propriétés)
Attributs privés
__solde, getters/setters avec @property@property@setterprivate
class Compte:
def __init__(self, solde):
self.__solde = solde
@property
def solde(self):
return self.__solde
def deposer(self, montant):
if montant>0: self.__solde += montant
c = Compte(1000)
c.deposer(500)
print(c.solde)
📤 Résultat : 1500
🐍 1️⃣4️⃣
Héritage
Classe enfant hérite de la classe parent.
super()class Child(Parent)super()
class Animal:
def parler(self): print("Bruit")
class Chien(Animal):
def parler(self): print("Wouf !")
c = Chien()
c.parler()
📤 Résultat : Wouf !
🐍 1️⃣5️⃣
Polymorphisme
Même interface, comportements différents.
polymorphisme
animaux = [Chien(), Chat()]
for a in animaux:
a.parler()
📤 Résultat : Wouf ! Miaou !
🔹 PARTIE 4 : CONCEPTS AVANCÉS (Cours 16-20)
🐍 1️⃣6️⃣
Classes abstraites (ABC)
Module
abc, @abstractmethodABC@abstractmethod
from abc import ABC, abstractmethod
class Forme(ABC):
@abstractmethod
def aire(self): pass
class Cercle(Forme):
def __init__(self, r): self.r = r
def aire(self): return 3.14 * self.r**2
📤 Exemple : Cercle(5).aire() → 78.5
🐍 1️⃣7️⃣
Collections (list, dict, set)
Liste, dictionnaire, set : opérations courantes
listdictsetkeys/values
ages = {"Alice":25, "Bob":30}
print(ages["Bob"])
print(list(ages.keys()))
a = {1,2,3}; b = {3,4,5}
print(a & b) # intersection
📤 Résultat : 30, ['Alice','Bob'], {3}
🐍 1️⃣8️⃣
Gestion des exceptions
try/except/else/finallytryexceptfinally
try:
x = int("abc")
except ValueError:
print("Erreur de conversion")
finally:
print("Terminé")
📤 Résultat : Erreur de conversion
Terminé
Terminé
🐍 1️⃣9️⃣
Gestion des fichiers
open, modes "r", "w", "a", context manager withopenwith
with open("test.txt", "w") as f:
f.write("Ligne 1\n")
with open("test.txt", "r") as f:
print(f.read())
📤 Résultat : Ligne 1
🐍 2️⃣0️⃣
Récursivité
Fonction qui s'appelle elle-même (ex: factorielle, Fibonacci)
récursivitécas de base
def fact(n):
return 1 if n<=1 else n * fact(n-1)
print(fact(5))
📤 Résultat : 120
📊 Comparaison Java vs Python
| Concept | Java | Python |
|---|---|---|
| Variables | int x = 5; | x = 5 |
| Affichage | System.out.println() | print() |
| Input | Scanner.nextLine() | input() |
| Conditions | if (x>0) { } | if x > 0: |
| Boucle for | for (int i=0; i<10; i++) | for i in range(10): |
| Fonctions | public int add(int a) | def add(a): |
| Classes | public class Nom { } | class Nom: |
| Constructeur | public Nom() { } | def __init__(self): |
| Héritage | class Fille extends Mere | class Fille(Mere): |
| Tableaux/Listes | int[] tab = new int[5] | tab = [] |
| Dictionnaires | HashMap | dict = {} |
| Exceptions | try { } catch { } | try: except: |
| Fichiers | new FileWriter() | open("fichier", "r") |
| Commentaires | // ou /* */ | # |
🎯 Exercices recommandés
Calculatrice (+,-,*,/)
Gestion d'étudiants (classes, héritage)
Jeu de cartes (listes, POO)
Bibliothèque (fichiers, exceptions)
Récursivité (Tours de Hanoï)
Web scraping (requests, BS4)
API REST (Flask/FastAPI)
🚀 Spécificités Python
Avantages : syntaxe concise, typage dynamique, vaste bibliothèque standard, multi-paradigme, interprété.
Bonnes pratiques : respecter PEP8, docstrings, compréhensions de listes, with pour fichiers, f‑strings.
🐍 40 QCM Python
Sélectionnez une réponse et vérifiez
1 Quelle fonction affiche quelque chose à l'écran en Python ?
2 Lequel de ces types est immuable (non modifiable) ?
3 Que retourne l'expression `3 // 2` en Python ?
4 Comment convertir une chaîne "123" en entier ?
5 Quelle est la sortie de `print(2 ** 3)` ?
6 Quelle structure de contrôle permet d'exécuter un bloc plusieurs fois ?
7 Comment déclarer une fonction en Python ?
8 Quelle méthode ajoute un élément à la fin d'une liste ?
9 Quelle est la sortie de `len([1, 2, 3])` ?
10 Quelle instruction lit une entrée utilisateur ?
11 Quel mot-clé définit une classe en Python ?
12 Quel est le nom du constructeur d'une classe ?
13 En Python, comment indique-t-on un bloc de code ?
14 Quelle est la sortie de `type(3.14)` ?
15 Comment écrire un commentaire sur une seule ligne ?
16 Quelle fonction donne la longueur d'une chaîne ?
17 Que vaut `bool(0)` en Python ?
18 Quelle méthode lit une ligne depuis un fichier ?
19 Quelle est la sortie de `"a" + "b" * 2` ?
20 Comment importer le module math ?
21 Que fait `random.randint(1,10)` ?
22 Quel est le résultat de `5 % 2` ?
23 Quelle est la sortie de `list(range(3))` ?
24 Comment écrire une condition « a différent de b » ?
25 Que signifie `self` dans une méthode ?
26 Quelle instruction permet de quitter une boucle prématurément ?
27 Que fait l'instruction `continue` dans une boucle ?
28 Quelle est la sortie de `print(0.1 + 0.2 == 0.3)` ?
29 Quel opérateur teste l'appartenance à une séquence ?
30 Comment écrire une boucle qui parcourt une liste `fruits` ?
31 Que fait la méthode `pop()` sur une liste ?
32 Quelle exception est levée pour une division par zéro ?
33 Quel est le résultat de `sorted([3,1,2])` ?
34 Quelle fonction donne le nombre d'éléments d'une liste ?
35 Comment écrire un bloc `try` / `except` ?
36 Quelle est la sortie de `bool([])` ?
37 Quelle méthode transforme une chaîne en liste de mots ?
38 Que retourne `type({})` ?
39 Quel est le résultat de `3 * 'ab'` ?
40 Quelle fonction donne la valeur absolue ?
Aucun commentaire:
Enregistrer un commentaire