Objectifs d’apprentissage
- manipuler les principaux types et opérateurs ;
- écrire conditions et boucles lisibles ;
- concevoir des fonctions avec paramètres et valeurs de retour ;
- choisir entre liste, tuple, dictionnaire et ensemble ;
- gérer les erreurs avec
try/except; - isoler les dépendances d’un projet avec
venv.
1. Premier programme
name = "Awa"
print(f"Bonjour {name} !")Python privilégie une syntaxe lisible. Les chaînes préfixées par f permettent d’insérer facilement des expressions dans du texte.
2. Variables et types
age = 17 # int
price = 12.5 # float
name = "Moussa" # str
active = True # bool
nothing = None # absence de valeurPython est dynamiquement typé : le type est associé à la valeur plutôt qu’à une déclaration explicite de variable. Cela ne signifie pas que les types sont inexistants.
3. Conditions
score = 14
if score >= 10:
print("Validé")
elif score >= 8:
print("Presque")
else:
print("À retravailler")L’indentation regroupe les instructions appartenant au même bloc.
4. Boucles
skills = ["HTML", "CSS", "Python"]
for skill in skills:
print(skill)
attempts = 0
while attempts < 3:
attempts += 1Utilise for lorsque tu parcours une collection, et while lorsqu’une répétition dépend d’une condition.
5. Structures de données
| Type | Caractéristique | Exemple |
|---|---|---|
list | ordonnée, modifiable | ["HTML", "CSS"] |
tuple | ordonné, non modifiable | (12.6, -8.0) |
dict | paires clé-valeur | {"name": "Awa"} |
set | valeurs uniques | {"Python", "JS"} |
student = {
"name": "Fanta",
"score": 16,
"skills": ["Python", "HTML"]
}
print(student["name"])6. Fonctions
def calculate_total(price, quantity=1):
return price * quantity
total = calculate_total(4500, 3)
print(total)Une fonction doit idéalement accomplir une responsabilité identifiable. Les paramètres configurent son comportement et return fournit le résultat à l’appelant.
7. Compréhensions : transformer une collection
prices = [5000, 12000, 28000, 45000]
affordable = [price for price in prices if price <= 30000]Les compréhensions sont puissantes, mais une version trop complexe devient moins lisible qu’une boucle classique. La clarté reste prioritaire.
8. Gérer les erreurs
raw = input("Âge : ")
try:
age = int(raw)
except ValueError:
print("Entre un nombre valide.")Évite les except: trop larges lorsque tu peux cibler une exception précise. Cela empêche de masquer des erreurs inattendues.
9. Modules et imports
# tools.py
def slugify(text):
return text.lower().replace(" ", "-")
# app.py
from tools import slugify
print(slugify("Mon Projet"))Les modules permettent de répartir les responsabilités dans plusieurs fichiers plutôt que d’accumuler tout le programme dans un seul script.
10. Environnements virtuels
Deux projets peuvent dépendre de versions différentes d’une bibliothèque. La documentation Python recommande les environnements virtuels pour isoler les dépendances.
python -m venv .venvActive ensuite l’environnement selon ton système, puis installe uniquement les dépendances nécessaires au projet. Le dossier d’environnement lui-même ne doit généralement pas être versionné.
11. Lire un fichier proprement
with open("notes.txt", "r", encoding="utf-8") as file:
content = file.read()
print(content)Le bloc with garantit la fermeture correcte de la ressource après utilisation.
Simule une boucle de salutation
Entre trois prénoms séparés par des virgules. Le navigateur simule la sortie attendue.
Bonjour Awa ! Bonjour Moussa ! Bonjour Fanta !
Mini-projet — analyser des notes
Crée une liste de dictionnaires contenant name et score. Écris une fonction qui calcule la moyenne, affiche les élèves ayant au moins 10 et gère le cas d’une liste vide. Découpe le calcul et l’affichage en fonctions différentes.
Décomposer un problème en fonctions testables
Python permet de se concentrer sur la logique sans beaucoup de syntaxe. Pour progresser, il ne suffit pas de connaître les mots-clés : il faut savoir décomposer un problème en entrées, traitement et résultat. Les fonctions facilitent les vérifications, les listes rassemblent des valeurs et les conditions décrivent les cas à traiter. La gestion des erreurs évite qu’une entrée inattendue interrompe tout le programme.
Pratique pas à pas
- Crée un fichier notes.py avec l’exemple ci-dessous et exécute-le avec Python 3.
- Remplace les notes par une liste vide pour observer la gestion de ce cas particulier.
- Ajoute un appel avec [10, 15, 20] et prédis le résultat avant de relancer le programme. Explique la différence entre return et print.
Exemple à essayer
def moyenne(notes):
if not notes:
return None
return sum(notes) / len(notes)
resultat = moyenne([12, 14, 16])
if resultat is None:
print('Aucune note')
else:
print(f'Moyenne : {resultat:.1f}')
Ce que tu dois observer : Le programme affiche Moyenne : 14.0. Avec une liste vide, il renvoie None et évite une division par zéro.
Erreur fréquente : Oublier de tester la liste vide ou confondre l’affichage d’un résultat avec la valeur renvoyée par une fonction.
Vérifie que tu as compris
Pourquoi découper un programme en fonctions courtes ?
Pour faciliter la lecture, la réutilisation et les tests indépendants.
Quelle erreur une liste vide pourrait-elle provoquer sans vérification ?
Une division par zéro lors du calcul de la moyenne.
Une fois l’atelier réalisé et les questions comprises, valide cette étape dans ton parcours.
À retenir
- Python mise beaucoup sur la lisibilité et l’indentation.
- Choisir la bonne structure de données simplifie le reste du programme.
- Les fonctions et modules permettent de maîtriser la complexité.
- Les environnements virtuels isolent les dépendances entre projets.
Teste ta compréhension
Pourquoi utiliser un environnement virtuel ?