Fiche de révision - Langages et programmation¶
1. Constructions élémentaires¶
Tout programme impératif repose sur six briques :
| Construction | Python | Description |
|---|---|---|
| Affectation | x = 5 |
Associe une valeur à un nom |
| Séquence | ligne après ligne | Exécution dans l'ordre |
| Conditionnelle | if / elif / else |
Exécution selon une condition |
| Boucle bornée | for i in range(n): |
Nombre de répétitions connu |
| Boucle non bornée | while condition: |
Tant que la condition est vraie |
| Appel de fonction | def f(x): ... return |
Bloc réutilisable avec paramètres et retour |
2. Variables et portée¶
| Type | Définition | Portée |
|---|---|---|
| Locale | Définie dans une fonction | N'existe que dans cette fonction |
| Globale | Définie hors de toute fonction | Accessible partout (lecture) |
- Types simples (int, float, str, bool) : passage par copie
- Types mutables (list, dict) : passage par référence
3. Diversité des langages¶
| Trait | Python | C / Java / JavaScript |
|---|---|---|
| Typage | Dynamique | Statique (C/Java) |
| Blocs | Indentation | Accolades { } |
| Point-virgule | Non | Oui |
| Exécution | Interprété | Compilé (C/Java) |
Tous les langages impératifs partagent les mêmes constructions ; seule la syntaxe change.
4. Spécification¶
- Prototype :
def f(param: type) -> type_retour: - Docstring : description, préconditions, postconditions
- Précondition : ce que les arguments doivent vérifier
- Postcondition : ce que le résultat garantit
def moyenne(notes: list) -> float:
"""Calcule la moyenne d'une liste.
Preconditions: notes non vide, que des nombres.
Postconditions: min(notes) <= résultat <= max(notes).
"""
5. Assertions et tests¶
Assertion : assert condition, "message" → AssertionError si faux
Jeu de tests — couvrir :
| Type | Exemple |
|---|---|
| Cas normal | Entrée courante |
| Cas limite | 0, liste vide, chaîne vide |
| Cas extrême | Très grands/petits nombres |
| Cas d'erreur | Type invalide |
doctest : tests dans la docstring (>>> appel / résultat attendu)
TDD : écrire les tests avant le code
6. Modules¶
import math # module entier
from random import randint # fonction spécifique
import csv as c # avec alias
Modules utiles : math, random, csv, os, json, time, doctest
help(module)/dir(module): documentationif __name__ == "__main__":: code exécuté uniquement en lancement direct
7. Mise au point¶
| Type d'erreur | Quand | Exemple |
|---|---|---|
| Syntaxe | Avant exécution | if x = 5: |
| Exécution | Pendant | 10 / 0 |
| Logique | Résultat faux | Condition inversée |
Techniques de débogage :
print(): afficher l'état des variables- Débogueur : points d'arrêt, pas à pas (Thonny)
- Tests unitaires : tester chaque fonction isolément
Erreurs courantes : SyntaxError, NameError, TypeError, IndexError, KeyError, ZeroDivisionError, ValueError