Python 🐍
Python est un langage de programmation polyvalent, simple à apprendre et très puissant. Il est parfait pour débuter la programmation tout en étant utilisé par les plus grandes entreprises technologiques du monde.
🎯 Pourquoi apprendre Python ?
Simplicité et lisibilité
Python privilégie la lisibilité du code. Sa syntaxe claire et intuitive permet de se concentrer sur la logique plutôt que sur les détails techniques complexes.
# Python vs autres langages - comparaison "Hello World"
# Python (3 caractères de ponctuation)
print("Hello World!")
# Java (47 caractères de ponctuation)
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Polyvalence exceptionnelle
Python est utilisé dans de nombreux domaines :
- 🌐 Développement web (Django, Flask, FastAPI)
- 🤖 Intelligence artificielle et Machine Learning (TensorFlow, PyTorch)
- 📊 Analyse de données (Pandas, NumPy, Matplotlib)
- 🔬 Sciences et recherche (SciPy, Jupyter)
- 🎮 Développement de jeux (Pygame)
- 🛠️ Automatisation et scripts
- 📱 Applications desktop (Tkinter, PyQt)
Écosystème riche
Avec plus de 400 000 packages disponibles sur PyPI (Python Package Index), Python dispose d'une bibliothèque pour pratiquement tout ce que tu veux faire.
🚀 Installation et configuration
Installation de Python
Sur Windows 🪟
- Va sur python.org
- Télécharge la dernière version de Python 3
- Lance l'installateur et coche "Add Python to PATH"
- Clique sur "Install Now"
Sur macOS 🍎
# Avec Homebrew (recommandé)
brew install python
# Ou télécharge directement depuis python.org
Sur Linux 🐧
# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip
# CentOS/RHEL
sudo yum install python3 python3-pip
# Arch Linux
sudo pacman -S python python-pip
Vérification de l'installation
# Vérifier la version de Python
python --version
# ou
python3 --version
# Vérifier pip (gestionnaire de packages)
pip --version
# ou
pip3 --version
🎓 Les bases de Python
Variables et types de données
# Nombres
age = 25 # int (entier)
prix = 19.99 # float (décimal)
complexe = 3 + 4j # complex (nombre complexe)
# Texte
nom = "Alice" # str (chaîne de caractères)
message = 'Bonjour!' # Les guillemets simples ou doubles fonctionnent
# Booléens
actif = True # bool (Vrai)
termine = False # bool (Faux)
# Collections
fruits = ["pomme", "banane", "orange"] # list (liste)
coordonnees = (10, 20) # tuple (tuple)
utilisateur = {"nom": "Bob", "age": 30} # dict (dictionnaire)
nombres_uniques = {1, 2, 3, 4, 5} # set (ensemble)
Opérations de base
# Opérations arithmétiques
addition = 5 + 3 # 8
soustraction = 10 - 4 # 6
multiplication = 6 * 7 # 42
division = 15 / 3 # 5.0 (toujours un float)
division_entiere = 15 // 4 # 3 (division entière)
modulo = 17 % 5 # 2 (reste de la division)
puissance = 2 ** 3 # 8 (2 puissance 3)
# Opérations sur les chaînes
prenom = "Alice"
nom = "Dupont"
nom_complet = prenom + " " + nom # "Alice Dupont"
repetition = "Ha" * 3 # "HaHaHa"
Structures de contrôle
Conditions
age = 18
if age >= 18:
print("Tu es majeur")
elif age >= 16:
print("Tu peux conduire")
else:
print("Tu es mineur")
# Opérateurs de comparaison
# == (égal), != (différent), < (plus petit), > (plus grand)
# <= (plus petit ou égal), >= (plus grand ou égal)
# Opérateurs logiques
if age >= 18 and age < 65:
print("En âge de travailler")
if age < 13 or age > 65:
print("Tarif réduit")
Boucles
# Boucle for - répéter un nombre défini de fois
for i in range(5):
print(f"Compteur: {i}")
# Boucle sur une liste
fruits = ["pomme", "banane", "orange"]
for fruit in fruits:
print(f"J'aime les {fruit}s")
# Boucle while - répéter tant qu'une condition est vraie
compteur = 0
while compteur < 3:
print(f"Tour {compteur}")
compteur += 1
# Break et continue
for i in range(10):
if i == 3:
continue # Passe au tour suivant
if i == 7:
break # Sort de la boucle
print(i)
Fonctions
# Définir une fonction
def saluer(nom):
return f"Bonjour {nom}!"
# Utiliser la fonction
message = saluer("Alice")
print(message) # Bonjour Alice!
# Fonction avec plusieurs paramètres
def calculer_aire_rectangle(longueur, largeur):
aire = longueur * largeur
return aire
# Fonction avec paramètres par défaut
def saluer_personne(nom, titre="M./Mme"):
return f"Bonjour {titre} {nom}"
print(saluer_personne("Dupont")) # Bonjour M./Mme Dupont
print(saluer_personne("Martin", "Dr")) # Bonjour Dr Martin
# Fonction avec nombre variable de paramètres
def additionner(*nombres):
total = 0
for nombre in nombres:
total += nombre
return total
print(additionner(1, 2, 3, 4, 5)) # 15
📚 Structures de données essentielles
Listes
# Créer une liste
nombres = [1, 2, 3, 4, 5]
vide = []
# Ajouter des éléments
nombres.append(6) # Ajoute à la fin
nombres.insert(0, 0) # Insère à l'index 0
# Accéder aux éléments
premier = nombres[0] # Premier élément
dernier = nombres[-1] # Dernier élément
sous_liste = nombres[1:4] # Éléments de l'index 1 à 3
# Opérations utiles
taille = len(nombres) # Taille de la liste
nombres.remove(3) # Supprime la première occurrence de 3
element = nombres.pop() # Retire et retourne le dernier élément
# Parcourir une liste
for i, nombre in enumerate(nombres):
print(f"Index {i}: {nombre}")
Dictionnaires
# Créer un dictionnaire
personne = {
"nom": "Dupont",
"prenom": "Alice",
"age": 25,
"ville": "Paris"
}
# Accéder aux valeurs
nom = personne["nom"] # "Dupont"
age = personne.get("age", 0) # 25, ou 0 si la clé n'existe pas
# Modifier/ajouter
personne["age"] = 26 # Modifie
personne["profession"] = "Dev" # Ajoute
# Parcourir un dictionnaire
for cle, valeur in personne.items():
print(f"{cle}: {valeur}")
# Opérations utiles
cles = list(personne.keys()) # Liste des clés
valeurs = list(personne.values()) # Liste des valeurs
🛠️ Gestion des erreurs
# Try/except pour gérer les erreurs
try:
nombre = int(input("Entre un nombre: "))
resultat = 10 / nombre
print(f"10 / {nombre} = {resultat}")
except ValueError:
print("Ce n'est pas un nombre valide!")
except ZeroDivisionError:
print("Impossible de diviser par zéro!")
except Exception as e:
print(f"Une erreur inattendue s'est produite: {e}")
finally:
print("Cette ligne s'exécute toujours")
📁 Travail avec les fichiers
# Écrire dans un fichier
with open("mon_fichier.txt", "w") as fichier:
fichier.write("Bonjour le monde!\n")
fichier.write("Python est génial!")
# Lire un fichier
with open("mon_fichier.txt", "r") as fichier:
contenu = fichier.read()
print(contenu)
# Lire ligne par ligne
with open("mon_fichier.txt", "r") as fichier:
for ligne in fichier:
print(ligne.strip()) # strip() enlève les retours à la ligne
# Gérer les erreurs de fichier
try:
with open("fichier_inexistant.txt", "r") as f:
contenu = f.read()
except FileNotFoundError:
print("Le fichier n'existe pas!")
🎯 Exercices pratiques
Exercice 1 : Calculatrice simple
def calculatrice():
"""
Crée une calculatrice simple avec les 4 opérations de base
"""
print("=== CALCULATRICE PYTHON ===")
while True:
try:
num1 = float(input("Premier nombre: "))
operation = input("Opération (+, -, *, /) ou 'q' pour quitter: ")
if operation == 'q':
break
num2 = float(input("Deuxième nombre: "))
if operation == '+':
resultat = num1 + num2
elif operation == '-':
resultat = num1 - num2
elif operation == '*':
resultat = num1 * num2
elif operation == '/':
if num2 != 0:
resultat = num1 / num2
else:
print("Erreur: Division par zéro!")
continue
else:
print("Opération non reconnue!")
continue
print(f"Résultat: {num1} {operation} {num2} = {resultat}")
except ValueError:
print("Erreur: Veuillez entrer des nombres valides!")
# calculatrice() # Décommente pour tester
Exercice 2 : Gestionnaire de tâches
def gestionnaire_taches():
"""
Un simple gestionnaire de tâches en ligne de commande
"""
taches = []
while True:
print(f"\n=== GESTIONNAIRE DE TÂCHES ({len(taches)} tâches) ===")
print("1. Voir les tâches")
print("2. Ajouter une tâche")
print("3. Marquer comme terminée")
print("4. Supprimer une tâche")
print("5. Quitter")
choix = input("Votre choix: ")
if choix == "1":
if not taches:
print("Aucune tâche pour le moment.")
else:
for i, tache in enumerate(taches, 1):
statut = "✓" if tache["terminee"] else "○"
print(f"{i}. {statut} {tache['description']}")
elif choix == "2":
description = input("Description de la tâche: ")
taches.append({"description": description, "terminee": False})
print("Tâche ajoutée!")
elif choix == "3":
try:
numero = int(input("Numéro de la tâche à terminer: ")) - 1
if 0 <= numero < len(taches):
taches[numero]["terminee"] = True
print("Tâche marquée comme terminée!")
else:
print("Numéro de tâche invalide!")
except ValueError:
print("Veuillez entrer un numéro valide!")
elif choix == "4":
try:
numero = int(input("Numéro de la tâche à supprimer: ")) - 1
if 0 <= numero < len(taches):
tache_supprimee = taches.pop(numero)
print(f"Tâche '{tache_supprimee['description']}' supprimée!")
else:
print("Numéro de tâche invalide!")
except ValueError:
print("Veuillez entrer un numéro valide!")
elif choix == "5":
print("Au revoir!")
break
else:
print("Choix invalide!")
# gestionnaire_taches() # Décommente pour tester
Exercice 3 : Analyseur de texte
def analyser_texte(texte):
"""
Analyse un texte et retourne des statistiques
"""
# Statistiques de base
nb_caracteres = len(texte)
nb_caracteres_sans_espaces = len(texte.replace(" ", ""))
nb_mots = len(texte.split())
nb_lignes = len(texte.split("\n"))
# Compter les voyelles
voyelles = "aeiouAEIOU"
nb_voyelles = sum(1 for char in texte if char in voyelles)
# Mots les plus fréquents
mots = texte.lower().split()
frequence_mots = {}
for mot in mots:
# Nettoyer la ponctuation
mot_propre = ''.join(char for char in mot if char.isalnum())
if mot_propre:
frequence_mots[mot_propre] = frequence_mots.get(mot_propre, 0) + 1
# Trier par fréquence
mots_tries = sorted(frequence_mots.items(), key=lambda x: x[1], reverse=True)
print("=== ANALYSE DU TEXTE ===")
print(f"Caractères (total): {nb_caracteres}")
print(f"Caractères (sans espaces): {nb_caracteres_sans_espaces}")
print(f"Mots: {nb_mots}")
print(f"Lignes: {nb_lignes}")
print(f"Voyelles: {nb_voyelles}")
print("\nMots les plus fréquents:")
for mot, freq in mots_tries[:5]: # Top 5
print(f" {mot}: {freq} fois")
# Exemple d'utilisation
texte_exemple = """
Python est un langage de programmation interprété, multi-paradigme et
multiplateformes. Il favorise la programmation impérative structurée,
fonctionnelle et orientée objet. Python est un langage puissant et facile à apprendre.
"""
# analyser_texte(texte_exemple) # Décommente pour tester
🌟 Bonnes pratiques
Convention de nommage (PEP 8)
# Variables et fonctions : snake_case
nom_utilisateur = "Alice"
def calculer_moyenne(notes):
pass
# Constantes : MAJUSCULES
PI = 3.14159
COULEUR_ROUGE = "#FF0000"
# Classes : PascalCase
class GestionnaireFichier:
pass
# Modules et packages : minuscules
import math
import mon_module
Documentation du code
def calculer_imc(poids, taille):
"""
Calcule l'Indice de Masse Corporelle (IMC)
Args:
poids (float): Poids en kilogrammes
taille (float): Taille en mètres
Returns:
float: IMC calculé
Raises:
ValueError: Si le poids ou la taille sont négatifs ou nuls
"""
if poids <= 0 or taille <= 0:
raise ValueError("Le poids et la taille doivent être positifs")
return poids / (taille ** 2)
📦 Packages essentiels à connaître
Pour débuter
# Installer un package avec pip
pip install requests numpy pandas matplotlib
# Créer un fichier requirements.txt
pip freeze > requirements.txt
# Installer depuis requirements.txt
pip install -r requirements.txt
Exemples d'utilisation
# Requests - pour les requêtes HTTP
import requests
response = requests.get("https://api.github.com/users/octocat")
data = response.json()
print(data["name"])
# NumPy - pour les calculs numériques
import numpy as np
tableau = np.array([1, 2, 3, 4, 5])
moyenne = np.mean(tableau)
print(f"Moyenne: {moyenne}")
# Pandas - pour l'analyse de données
import pandas as pd
# Créer un DataFrame
data = {
"nom": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"ville": ["Paris", "Lyon", "Marseille"]
}
df = pd.DataFrame(data)
print(df)
🎯 Défis pour progresser
Défi 1 : Deviner le nombre
Crée un jeu où l'ordinateur choisit un nombre aléatoire et l'utilisateur doit le deviner.
Défi 2 : Convertisseur d'unités
Crée un programme qui convertit entre différentes unités (température, distance, poids).
Défi 3 : Générateur de mots de passe
Crée un générateur de mots de passe sécurisés avec options de personnalisation.
Défi 4 : Mini-jeu du pendu
Implémente le jeu du pendu avec une liste de mots prédéfinis.
🚀 Pour aller plus loin
Programmation orientée objet
class Voiture:
def __init__(self, marque, modele, annee):
self.marque = marque
self.modele = modele
self.annee = annee
self.vitesse = 0
def accelerer(self, increment=10):
self.vitesse += increment
print(f"Vitesse: {self.vitesse} km/h")
def freiner(self, decrement=10):
self.vitesse = max(0, self.vitesse - decrement)
print(f"Vitesse: {self.vitesse} km/h")
def __str__(self):
return f"{self.marque} {self.modele} ({self.annee})"
# Utilisation
ma_voiture = Voiture("Toyota", "Prius", 2022)
print(ma_voiture)
ma_voiture.accelerer(20)
ma_voiture.freiner(5)
Ressources pour continuer
- 📖 Documentation officielle : docs.python.org
- 🎓 Tutoriels interactifs : codecademy.com/python
- 🏆 Défis de code : codewars.com, leetcode.com
- 📚 Livres recommandés : "Automate the Boring Stuff with Python", "Python Crash Course"
- 🎥 Chaînes YouTube : Corey Schafer, Real Python, Programming with Mosh
Félicitations ! 🎉
Tu as maintenant une base solide en Python. La clé du succès est la pratique régulière. Commence par des petits projets et augmente progressivement la complexité. Python est un langage qui récompense la curiosité et l'expérimentation !
🔗 Liens utiles
- Python.org - Site officiel
- PyPI - Repository de packages Python
- Real Python - Tutoriels avancés
- Python Package Index - Packages Python
- GitHub - Projets Python open source