🐍 Python Programming

Apprenez Python de zéro à héros - Du débutant au professionnel

🚀 Les Bases de Python

1. Votre premier programme

# Votre premier programme Python print("Hello, World!") # Variables nom = "Alice" age = 25 taille = 1.65 est_etudiant = True print(f"Je m'appelle {nom} et j'ai {age} ans")
💡 À savoir :

Python est un langage interprété, typé dynamiquement. Pas besoin de déclarer le type des variables !

2. Types de données

Type Description Exemple
int Nombre entier 42, -10, 0
float Nombre décimal 3.14, -0.5, 2.0
str Chaîne de caractères "Hello", 'Python'
bool Booléen True, False
list Liste [1, 2, 3]
dict Dictionnaire {"nom": "Alice"}

3. Opérateurs

# Opérateurs arithmétiques a = 10 b = 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 print(a == b) # False print(a != b) # True print(a > b) # True print(a <= b) # False

4. Structures conditionnelles

# Structure if/elif/else age = 18 if age < 18: print("Mineur") elif age == 18: print("Tout juste majeur !") else: print("Majeur") # Opérateurs logiques a = True b = False print(a and b) # False print(a or b) # True print(not a) # False

5. Boucles

# Boucle for for i in range(5): print(i) # Affiche 0, 1, 2, 3, 4 # Parcourir une liste fruits = ["pomme", "banane", "orange"] for fruit in fruits: print(fruit) # Boucle while compteur = 0 while compteur < 5: print(compteur) compteur += 1

✨ Essayez Python en ligne !

Écrivez votre code Python ci-dessous :


Le résultat s'affichera ici...

📊 Structures de données

1. Listes (Lists)

# Création et manipulation de listes ma_liste = [1, 2, 3, 4, 5] # Accès aux éléments premier = ma_liste[0] # 1 dernier = ma_liste[-1] # 5 # Méthodes de liste ma_liste.append(6) # Ajouter à la fin ma_liste.insert(0, 0) # Insérer à l'index 0 ma_liste.remove(3) # Retirer la valeur 3 element = ma_liste.pop() # Retirer le dernier élément # Slicing (tranches) sous_liste = ma_liste[1:4] # Éléments de l'index 1 à 3 inverse = ma_liste[::-1] # Inverser la liste # List comprehension carres = [x**2 for x in range(10)] pairs = [x for x in range(20) if x % 2 == 0]

2. Tuples

# Les tuples sont immutables (non modifiables) mon_tuple = (1, 2, 3) coordonnees = (10.5, 20.3) # Unpacking x, y = coordonnees print(f"x = {x}, y = {y}") # Tuple avec un seul élément single = (1,) # Notez la virgule !

3. Dictionnaires (Dictionaries)

# Création de dictionnaires personne = { "nom": "Alice", "age": 25, "ville": "Paris" } # Accès aux valeurs nom = personne["nom"] age = personne.get("age") # Méthode plus sûre # Modification personne["age"] = 26 personne["email"] = "alice@example.com" # Nouvelle clé # Méthodes utiles cles = personne.keys() valeurs = personne.values() items = personne.items() # Parcourir un dictionnaire for cle, valeur in personne.items(): print(f"{cle}: {valeur}")

4. Sets (Ensembles)

# Les sets ne contiennent que des éléments uniques mon_set = {1, 2, 3, 3, 4} # {1, 2, 3, 4} # Opérations sur les sets set1 = {1, 2, 3} set2 = {3, 4, 5} union = set1 | set2 # {1, 2, 3, 4, 5} intersection = set1 & set2 # {3} difference = set1 - set2 # {1, 2} # Méthodes mon_set.add(5) mon_set.remove(2)

📝 Exemple pratique : Gestion d'étudiants

# Liste d'étudiants avec leurs notes etudiants = [ {"nom": "Alice", "notes": [15, 18, 16]}, {"nom": "Bob", "notes": [12, 14, 13]}, {"nom": "Charlie", "notes": [17, 19, 18]} ] # Calculer la moyenne de chaque étudiant for etudiant in etudiants: moyenne = sum(etudiant["notes"]) / len(etudiant["notes"]) print(f"{etudiant['nom']}: {moyenne:.2f}")

📋 Listes

• Ordonnées

• Modifiables

• Doublons autorisés

• [] ou list()

🔒 Tuples

• Ordonnés

• Immutables

• Doublons autorisés

• () ou tuple()

🗂️ Dictionnaires

• Clé-valeur

• Non ordonnés (3.7+)

• Clés uniques

• {} ou dict()

🎯 Sets

• Non ordonnés

• Éléments uniques

• Modifiables

• {} ou set()

⚙️ Fonctions

1. Définir une fonction

# Fonction simple def saluer(nom): return f"Bonjour {nom} !" # Fonction avec plusieurs paramètres def addition(a, b): return a + b # Fonction avec valeur par défaut def puissance(nombre, exposant=2): return nombre ** exposant # Appels de fonction message = saluer("Alice") resultat = addition(5, 3) carre = puissance(4) # 16 (exposant=2 par défaut) cube = puissance(4, 3) # 64

2. Arguments *args et **kwargs

# *args : nombre variable d'arguments positionnels def somme(*args): total = 0 for nombre in args: total += nombre return total print(somme(1, 2, 3, 4, 5)) # 15 # **kwargs : arguments nommés def afficher_infos(**kwargs): for cle, valeur in kwargs.items(): print(f"{cle}: {valeur}") afficher_infos(nom="Alice", age=25, ville="Paris")

3. Fonctions lambda

# Fonction lambda (anonyme) carre = lambda x: x ** 2 print(carre(5)) # 25 # Lambda avec map, filter, reduce nombres = [1, 2, 3, 4, 5] # map : appliquer une fonction à chaque élément carres = list(map(lambda x: x**2, nombres)) # filter : filtrer les éléments pairs = list(filter(lambda x: x % 2 == 0, nombres)) # Trier avec lambda etudiants = [("Alice", 15), ("Bob", 12), ("Charlie", 18)] trie = sorted(etudiants, key=lambda x: x[1], reverse=True)

4. Décorateurs

# Décorateur simple def mon_decorateur(fonction): def wrapper(*args, **kwargs): print("Avant l'exécution") resultat = fonction(*args, **kwargs) print("Après l'exécution") return resultat return wrapper @mon_decorateur def dire_bonjour(nom): print(f"Bonjour {nom}") dire_bonjour("Alice")

Quiz : Fonctions

Quelle est la syntaxe correcte pour définir une fonction en Python ?

🎭 Programmation Orientée Objet

1. Classes et Objets

# Définir une classe class Personne: # Constructeur def __init__(self, nom, age): self.nom = nom self.age = age # Méthode def se_presenter(self): return f"Je m'appelle {self.nom} et j'ai {self.age} ans" # Méthode pour modifier l'âge def anniversaire(self): self.age += 1 # Créer des objets alice = Personne("Alice", 25) bob = Personne("Bob", 30) print(alice.se_presenter()) alice.anniversaire()

2. Héritage

# Classe parente class Animal: def __init__(self, nom): self.nom = nom def parler(self): pass # Classes enfants class Chien(Animal): def parler(self): return f"{self.nom} dit Wouf!" class Chat(Animal): def parler(self): return f"{self.nom} dit Miaou!" # Utilisation rex = Chien("Rex") felix = Chat("Felix") print(rex.parler()) # Rex dit Wouf! print(felix.parler()) # Felix dit Miaou!

3. Encapsulation

class CompteBancaire: def __init__(self, solde_initial): self.__solde = solde_initial # Attribut privé def deposer(self, montant): if montant > 0: self.__solde += montant def retirer(self, montant): if 0 < montant <= self.__solde: self.__solde -= montant return True return False def get_solde(self): return self.__solde compte = CompteBancaire(1000) compte.deposer(500) print(compte.get_solde()) # 1500

📝 Exemple complet : Système de gestion

class Etudiant: nombre_etudiants = 0 # Variable de classe def __init__(self, nom, age, notes=None): self.nom = nom self.age = age self.notes = notes if notes else [] Etudiant.nombre_etudiants += 1 def ajouter_note(self, note): self.notes.append(note) def moyenne(self): if not self.notes: return 0 return sum(self.notes) / len(self.notes) def __str__(self): return f"Étudiant: {self.nom}, Moyenne: {self.moyenne():.2f}" # Utilisation alice = Etudiant("Alice", 20) alice.ajouter_note(15) alice.ajouter_note(18) alice.ajouter_note(16) print(alice)

🚀 Concepts Avancés

1. Gestion des fichiers

# Écrire dans un fichier with open("fichier.txt", "w") as f: f.write("Bonjour Python!\n") f.write("Deuxième ligne\n") # Lire un fichier with open("fichier.txt", "r") as f: contenu = f.read() print(contenu) # Lire ligne par ligne with open("fichier.txt", "r") as f: for ligne in f: print(ligne.strip())

2. Gestion des exceptions

# Try/Except try: nombre = int(input("Entrez un nombre: ")) resultat = 10 / nombre print(f"Résultat: {resultat}") except ValueError: print("Veuillez entrer un nombre valide!") except ZeroDivisionError: print("Division par zéro impossible!") finally: print("Bloc finally exécuté")

3. Modules et packages

# Importer un module import math print(math.pi) print(math.sqrt(16)) # Import avec alias import numpy as np import pandas as pd # Import spécifique from datetime import datetime, timedelta from random import randint, choice # Modules utiles import os # Système d'exploitation import sys # Système Python import json # Manipulation JSON import requests # Requêtes HTTP

4. Compréhensions avancées

# List comprehension avec condition nombres = [x for x in range(20) if x % 2 == 0] # Dict comprehension carres = {x: x**2 for x in range(10)} # Set comprehension unique_lettres = {c.lower() for c in "Hello World" if c.isalpha()} # Generator expression (économise mémoire) gen = (x**2 for x in range(1000000))

📦 Bibliothèques populaires

NumPy: Calcul scientifique

Pandas: Analyse de données

Matplotlib: Visualisation

Django/Flask: Web

🛠️ Outils essentiels

pip: Gestionnaire de packages

venv: Environnements virtuels

pytest: Tests unitaires

pylint: Qualité du code

💡 Bonnes pratiques

• Code lisible et commenté

• Noms de variables clairs

• DRY (Don't Repeat Yourself)

• PEP 8 style guide

🎯 Projets à réaliser

• Calculatrice

• To-Do List

• Web scraper

• API REST

🎉 Félicitations !

Vous avez maintenant les bases solides de Python ! Continuez à pratiquer en créant vos propres projets.

Prochaines étapes :

  • Explorez les bibliothèques spécialisées (NumPy, Pandas, etc.)
  • Créez des projets personnels
  • Contribuez à des projets open source
  • Apprenez les frameworks web (Django, Flask)