Module 3Programmer en Python
Chapitre 7 sur 11
Transformer un algorithme en programme Python
Choisir un langage, découvrir Python, traduire un algorithme et appliquer la PEP 8.
- ≈ 165 min
- 7 leçons
- 5 vidéos
- 3 exercices
Module 3Programmer en Python
Chapitre 7 sur 11
Choisir un langage, découvrir Python, traduire un algorithme et appliquer la PEP 8.
Objectifs
Avec ce chapitre, tu sauras…
input(), print() et les opérations sur les nombres et les chaînes ;Ce chapitre est le pont entre le pseudo-code de la Partie 2 et le code exécutable. La bonne nouvelle : la logique ne change pas. Seule la syntaxe change, et celle de Python est très proche du pseudo-code.
Leçon 1
Tableau: Les trois critères d'évaluation (résumé OFPPT)
| Critère | Définition | Ce qui l'influence |
|---|---|---|
| lisibilité | facilité avec laquelle un programme peut être lu et compris | simplicité, orthogonalité, structures de contrôle, types de données |
| facilité d'écriture | facilité avec laquelle on crée un programme | simplicité, abstraction, expressivité |
| fiabilité | confiance dans le fait qu'un programme donne les mêmes résultats dans toutes les conditions | vérification des types, gestion des exceptions, lisibilité |
| Notion | Sens |
|---|---|
| simplicité | peu de concepts de base, une seule façon de faire chaque chose |
| orthogonalité | « changer A ne change pas B » : chaque instruction fait seulement ce qu'elle dit |
| abstraction | définir des opérations complexes en cachant leurs détails (sous-programmes, structures de données) |
| expressivité | des outils simples et intuitifs (for, while plutôt que goto) |
| vérification des types | détecter les erreurs de type à la compilation ou à l'exécution |
| coût | formation, écriture, compilation, exécution, maintenance |
Leçon 2
| Caractéristique | Sens |
|---|---|
| portable | fonctionne sous Windows, macOS, Linux… |
| gratuit | utilisable sans restriction, même dans des projets commerciaux |
| simple et lisible | syntaxe courte, programmes compacts |
| gestion automatique de la mémoire | pas besoin de libérer la mémoire soi-même |
| orienté objet |
Leçon 3
Leçon 4
| Opération | Python | Exemple | Pseudo-code |
|---|---|---|---|
| addition, soustraction, multiplication | + - * | 7 * 3 → 21 | + - * |
| division réelle | / | 17 / 5 → 3.4 | / |
Leçon 5
| Écriture | Valeurs |
|---|---|
range(5) | 0, 1, 2, 3, 4 |
range(2, 6) | 2, 3, 4, 5 (6 exclu) |
range(2, 30, 3) | 2, 5, 8, … , 29 |
range(10, 0, -1) | 10, 9, … , 1 (pas négatif) |
Leçon 6
| Pseudo-code OFPPT | Python |
|---|---|
Var x : Entier | (pas de déclaration) x = 0 |
Const PI = 3.14 : Réel | PI = 3.14 (majuscules par convention) |
x := 5 | x = 5 |
Lire(x) (entier) | x = int(input()) |
Ecrire("Total : ", t) | print("Total :", t) |
Leçon 7
| Thème | Règle | Exemple |
|---|---|---|
| indentation | 4 espaces par niveau | |
| imports | en début de fichier, un module par ligne | import math |
| nommage | variables, fonctions, modules en snake_case ; constantes en MAJUSCULES | prix_total, TAUX_TVA |
1En Python, un bloc d'instructions est délimité par…
2input() renvoie toujours…
317 // 5 vaut…
4Pour traduire Pour i de 1 à 10, on écrit…
5Selon la PEP 8, une constante s'écrit…
6"Python"[1:4] vaut…
L'essentiel du chapitre
: puis 4 espaces d'indentation.input() renvoie une chaîne → int(), float() ; print(..., sep=, end=), f-strings.// = div, % = mod, ** = puissance ; range(1, n + 1) pour Pour i de 1 à n ; indices à partir de 0.snake_case, CONSTANTES, espaces autour des opérateurs, 79 caractères, commentaires # .| autres |
| portabilité, vitesse d'exécution, généralité |
| tout est objet (classes, méthodes) |
| exceptions | gestion des erreurs simplifiée (chapitre 9) |
| typage dynamique | les variables n'ont pas besoin d'être déclarées avec un type |
| interprété | le code est exécuté ligne par ligne par l'interpréteur |
| extensible, bibliothèque riche | des milliers de modules (fichiers, web, données, IA…) |
Vidéo · À regarder
FRPython - Cours complet pour débutants (2026)
SimpleTech par Sergio · YouTube
// |
17 // 5 → 3 |
div |
| reste | % | 17 % 5 → 2 | mod |
| puissance | ** | 2 ** 10 → 1024 | ^ |
Vidéo · À regarder
FRPython - Cours complet pour débutants (2026)
SimpleTech par Sergio · YouTube
break et continue
a = b, a # ba == b, a != b |
ET, OU, NON | and, or, not |
div, mod, ^ | //, %, ** |
Si … alors … Sinon … FinSi | if …: / else: |
Sinon Si | elif |
Cas … de | if/elif (ou match/case depuis Python 3.10) |
Pour i de 1 à n faire | for i in range(1, n + 1): |
TantQue cond faire … FinTQ | while cond: |
Répéter … Jusqu'à cond | while True: … if cond: break |
Fonction f(a : Entier) : Réel … retourner r | def f(a): … return r |
T : tableau [1..n] d'Entier, T[1] | liste T = [0] * n, T[0] (indices à partir de 0) |
Vidéo · À regarder
FRPython - Cours complet pour débutants (2026)
SimpleTech par Sergio · YouTube
Vidéo · À regarder
FRPython - Cours complet pour débutants (2026)
SimpleTech par Sergio · YouTube
Vidéo · À regarder
FRPython - Cours complet pour débutants (2026)
SimpleTech par Sergio · YouTube
| espaces | un espace autour des opérateurs, après , et : ; aucun à l'intérieur des parenthèses et crochets, ni avant ( d'un appel | x = a + b, f(x, y) |
| tranches | pas d'espace autour de : | liste[1:3] |
| longueur de ligne | 79 caractères maximum ; couper avec \ ou à l'intérieur de parenthèses |
| lignes vides | deux lignes vides avant une définition de fonction |
| commentaires | # suivi d'un espace, phrases complètes, au même niveau d'indentation, tenus à jour | # Calcule la moyenne. |
Tableau: Les notions à connaître
Python est un langage de programmation créé par Guido van Rossum à partir de 1989. Première version publique (0.9.0) en février 1991 ; Python 3.0 en décembre 2008, qui corrige des défauts du langage et n'est pas compatible avec Python 2.
Tableau: Les caractéristiques de Python
En Python, il n'y a ni Début/Fin, ni FinSi, ni accolades. Une ligne d'en-tête (if, for, while, def…) se termine par deux-points :, et le bloc qui en dépend est indenté de 4 espaces. La fin de l'indentation marque la fin du bloc.
note = 14
if note >= 10:
print("Admis") # dans le bloc du if
print("Bravo !") # dans le bloc du if
print("Fin") # hors du bloc : toujours exécutéMélanger tabulations et espaces, ou décaler une ligne d'un espace, provoque une IndentationError. Configure VS Code pour insérer 4 espaces à chaque appui sur Tab (c'est le réglage par défaut avec l'extension Python).
age = 20 # int (entier)
taille = 1.75 # float (réel)
nom = "Anas" # str (chaîne), guillemets simples ou doubles
admis = True # bool (booléen) : True / False
x, y, z = 1, 2, 3 # affectation multiple
print(type(taille)) # <class 'float'>Un nom commence par une lettre ou _, ne commence pas par un chiffre, ne contient que des lettres, chiffres et _, et est sensible à la casse : age, Age et AGE sont trois variables différentes.
nom = input("Ton prénom : ") # input() renvoie TOUJOURS une chaîne
age = int(input("Ton âge : ")) # int() convertit en entier, float() en réel
print("Bonjour", nom) # séparés par un espace
print("Bonjour " + nom) # concaténation avec +
print(nom, age, sep=" | ") # sep : séparateur
print("Sans retour à la ligne", end=" ")
print("Tu as {} ans".format(age)) # méthode format()
print(f"Dans 10 ans, tu auras {age + 10} ans") # f-string (Python 3.6+)Tableau: Les opérations sur les nombres
note = float(input("Note : "))
if note >= 16:
print("Très bien")
elif note >= 10:
print("Admis")
else:
print("Ajourné")
if note >= 0 and note <= 20: # ou : if 0 <= note <= 20:
print("Note valide")for i in range(1, 11): # i de 1 à 10 (11 exclu)
print(7, "x", i, "=", 7 * i)
for c in "Rabat": # parcourt les caractères
print(c)
n = int(input("n > 0 : "))
while n <= 0: # contrôle de saisie
n = int(input("n > 0 : "))
while True: # équivalent de Répéter … Jusqu'à
y = int(input("Diviseur : "))
if y > 0:
break # sort de la boucleTableau: range()
range(1, n) s'arrête à n − 1. Pour traduire Pour i de 1 à n, il faut écrire range(1, n + 1).
Tableau: La table de correspondance
Les PEP (Python Enhancement Proposals) sont des propositions d'amélioration publiées par la communauté Python. La PEP 8 (Style Guide for Python Code) regroupe les règles de style à respecter. Un code qui suit ces règles et les usages du langage est dit pythonique.
Tableau: Les règles principales de la PEP 8
Écris un programme qui lit une phrase et affiche : sa longueur, la phrase en majuscules, le nombre de « a » qu'elle contient, ses trois premiers caractères, et si elle se termine par un point.
Traduis en Python les algorithmes des exercices 4.3 (plus grand de trois nombres), 4.5 (mention avec contrôle de saisie) et 4.6 (somme des chiffres).
Réécris ce code en respectant la PEP 8 :
import math,random
def Aire_Cercle( R ):
return math.pi*R**2
Liste=[1,2,3]
print(Liste[ 0 : 2 ],Aire_Cercle(2))L'installation de l'environnement de développement Python, pas à pas.
Les chaînes de caractères
s = "Welcome"
print(len(s)) # 7
print(s[0], s[-1]) # W e (indices à partir de 0 ; -1 = dernier)
print(s[3:7]) # come (tranche : de 3 inclus à 7 exclu)
print(s + " !" * 3) # concaténation et répétition
print("come" in s) # True
print(max(s), min(s)) # o W (selon le code ASCII)
print(s.upper(), s.lower())
print(s.startswith("Wel"), s.endswith("me")) # True True
print(s.find("co"), s.count("e")) # 3 2input(), les conversions et les f-strings, en français.
break arrête la boucle immédiatement ; continue passe au tour suivant sans exécuter la fin du bloc. Python n'a pas de boucle « Répéter … Jusqu'à » : on l'écrit avec while True: et un break quand la condition d'arrêt est vraie.
Algorithme Moyenne
Var n, i : Entier
x, s : Réel
Début
Lire(n)
s := 0
Pour i de 1 à n faire
Lire(x)
s := s + x
FinPour
Ecrire("La moyenne est : ", s / n)
Finn = int(input("Nombre de valeurs : "))
s = 0
for i in range(1, n + 1):
x = float(input(f"Valeur {i} : "))
s = s + x
print("La moyenne est :", s / n)Les conditions en Python : if, elif, else.
La boucle while en Python.
La boucle for et range() en Python.
# Non conforme
def CalculPrix(Q,P) :
T=Q*P*1.2
return T
# Conforme
TAUX_TVA = 0.2
def calcul_prix(quantite, prix_unitaire):
"""Renvoie le prix TTC d'une commande."""
return quantite * prix_unitaire * (1 + TAUX_TVA)Dans VS Code, les extensions Pylint ou Flake8 signalent les écarts à la PEP 8, et Black ou autopep8 reformatent le code automatiquement.