Math@mine / Seconde 2026 / Ch0

Chapitre 0 — Algorithmique et Python

📋 Prérequis & 🎯 Objectifs du chapitre déplier
📋 Prérequis
  • Cycle 4 — notions de calculs, d’égalités
  • — aucun prérequis spécifique : chapitre d’introduction
🎯 Objectifs — à la fin du chapitre, je saurai…
  • Manipuler variables, types et affectation en Python
  • Écrire une instruction conditionnelle (if/elif/else)
  • Écrire une boucle bornée (for) et non bornée (while)
  • Définir et appeler une fonction

Seconde — Nouveau programme (BO 2026) · Math@mine

Sommaire
1. Notion d’algorithme 2. Variables et types 3. Affectation et séquence 4. Instruction conditionnelle 5. Boucle bornée (for) 6. Boucle non bornée (while) 7. Fonctions Python 8. Listes (tableaux) Bilan — L’essentiel Pieges et contre-exemples

Un convertisseur de température

On souhaite écrire un programme qui convertit une température de degrés Celsius en degrés Fahrenheit. La formule est : \(F = 1{,}8 \times C + 32\).

Comment écrire un programme Python qui demande une température en Celsius et affiche le résultat en Fahrenheit ?
→ On construira ce programme pas a pas dans le cours.

→ Solution complète en fin de chapitre

Al-Khwarizmi, pere de l’algorithme

Muhammad ibn Musa al-Khwarizmi (vers 780–850), mathematicien perse, est considère comme le pere de l’algebre et de l’algorithmique. Le mot algorithme vient de la latinisation de son nom : Algoritmi.

Dans son ouvrage sur le calcul indien, il decrit des procedures de calcul systematiques — les ancetres de nos algorithmes modernes. Ses méthodes, etape par etape, pour résoudre des équations sont exactement ce qu’on appelle aujourd’hui un algorithme : une suite finie d’instructions precises.

📜 Lire l’article — Euclide et Thābit : le plus vieil algorithme →

Deviner un nombre en minimum d’essais

L’ordinateur choisit un nombre secret entre 1 et 100. A chaque essai, il repond « trop grand » ou « trop petit ». Quel est le nombre minimum d’essais pour être sur de trouver ?

Indice : a chaque essai bien choisi, on peut eliminer la moitié des possibilites.

→ Solution complète en fin de chapitre

1. Notion d’algorithme

Définition — Algorithme
Un algorithme est une suite finie d’instructions precises et non ambigues qui, à partir de données initiales, permet d’obtenir un résultat en un nombre fini d’étapes.
Exemple — Recette de cuisine

Une recette de cuisine est un algorithme : les ingredients sont les données, les étapes de preparation sont les instructions, le plat final est le résultat.

Algorithme vs programme
  • Un algorithme est écrit en langage naturel ou en pseudo-code (independant du langage).
  • Un programme est la traduction d’un algorithme dans un langage de programmation (ici Python).
Exemple — Algorithme en langage naturel

Problème : Convertir une température de Celsius en Fahrenheit.

Algorithme :

  1. Demander la température en degrés Celsius (notée \(C\))
  2. Calculer \(F \leftarrow 1{,}8 \times C + 32\)
  3. Afficher \(F\)
🎯 S’entraîner sur Wims
Algorithmes de SecondeExercices variés sur les algorithmes
▸ Algorithmes de Seconde

2. Variables et types

Définition — Variable informatique
Une variable est un espace memoire auquel on donne un nom et qui contient une valeur. On peut la voir comme une « boîte etiquetee » dans laquelle on range une donnée.
Propriété — Les quatre types de base en Python
TypeNom PythonExemples
Entierint3, -7, 0
Flottant (décimal)float3.14, -0.5, 1.0
BooleenboolTrue, False
Chaine de caracteresstr"Bonjour", 'Python'
💡 La fonction print()

La fonction print() affiche à l’écran le contenu passé entre parenthèses. On l’utilise pour visualiser une valeur, un résultat de calcul ou un message :

  • print("Bonjour") → affiche Bonjour
  • print(2 + 3) → affiche 5
  • print("Âge :", age) → affiche par exemple Âge : 16

On peut passer plusieurs arguments séparés par des virgules ; ils sont affichés côte à côte avec un espace.

Exemple — Verifier le type d’une variable
age = 16            # int
taille = 1.72       # float
reussi = True       # bool
nom = "Alice"       # str

print(type(age))    # <class 'int'>
print(type(taille)) # <class 'float'>
Attention
  • 5 est un entier (int), mais 5.0 est un flottant (float).
  • "5" est une chaîne de caractères (str), pas un nombre !
  • Les booléens True et False commencent par une majuscule en Python.

Opérateurs arithmétiques

Propriété — Les opérateurs Python
OpérateurRôleExempleRésultat
+Addition7 + 310
-Soustraction7 - 34
*Multiplication7 * 321
/Division flottante (résultat float)7 / 32.333...
//Division entière (quotient)7 // 32
%Modulo (reste de la division entière)7 % 31
**Puissance2 ** 532
Exemple — Lien avec la division euclidienne

Pour tout entier \(a\) et tout entier \(b > 0\), la division euclidienne donne \(a = b \times q + r\) avec \(0 \leqslant r < b\) :

a = 47
b = 6
q = a // b           # quotient = 7
r = a % b            # reste = 5
print(q, r)          # 7 5
print(a == b * q + r) # True
💡 Pair / impair, divisible
  • Tester si \(n\) est pair : n % 2 == 0
  • Tester si \(a\) est divisible par \(b\) : a % b == 0
  • Récupérer le chiffre des unités de \(n\) : n % 10
🎯 S’entraîner sur Wims
Opérations PythonCalculer avec des variables et opérateurs
▸ Opérations Python

3. Affectation et séquence

Définition — Affectation
L'affectation consiste a stocker une valeur dans une variable. En Python, on utilise le signe =. En langage naturel, on écrit \(\leftarrow\).
Exemple — Affectations successives
x = 5          # x contient 5
x = x + 3     # x contient maintenant 8
y = 2 * x     # y contient 16
print(x, y)   # Affiche : 8 16
Attention — Le = en Python n’est pas le = mathematique

En mathematiques, \(x = x + 3\) est une équation sans solution. En Python, x = x + 3 signifie : « calculer x + 3 et stocker le résultat dans x ».

Définition — Séquence d’instructions
Une séquence est une suite d’instructions exécutées l’une après l’autre, dans l’ordre ou elles sont ecrites.
⚠️ Attention — input() retourne toujours du texte

La fonction input() renvoie une chaîne de caractères (str), même si l’utilisateur tape un nombre. Pour faire des calculs, il faut convertir :

  • int(input("...")) → entier
  • float(input("...")) → nombre à virgule

Sans conversion, input() + 1 déclenche une erreur TypeError, et input() * 3 répète le texte 3 fois au lieu de multiplier.

Exemple — Convertisseur Celsius → Fahrenheit
celsius = float(input("Temperature en Celsius : "))  # float() pour convertir
fahrenheit = 1.8 * celsius + 32
print("En Fahrenheit :", fahrenheit)
Méthode — Echanger deux variables

Pour echanger les valeurs de a et b, on utilise une variable temporaire ou l’affectation simultanee :

# Méthode 1 : variable temporaire
temp = a
a = b
b = temp

# Méthode 2 : affectation simultanee (Python)
a, b = b, a
🎯 S’entraîner sur Wims
AffectationSuivre l’état des variables
▸ Affectation

4. Instruction conditionnelle

Définition — Instruction conditionnelle
Une instruction conditionnelle permet d’exécuter des instructions différentes selon qu’une condition est vraie ou fausse.
Syntaxe — if / elif / else
if condition:
    instructions si vrai
elif autre_condition:
    instructions si autre condition vraie
else:
    instructions sinon
⚠️ Attention — L’indentation est obligatoire en Python

Contrairement à d’autres langages, Python utilise l’indentation (décalage à droite par 4 espaces) pour délimiter les blocs d’instructions. Tout le bloc exécuté dans un if, else, for ou while doit être indenté exactement de la même manière.

  • Pas d’indentation du tout → IndentationError.
  • Indentations incohérentes (mélange espaces/tab ou nombres différents) → erreur.
  • Astuce : toujours utiliser 4 espaces (la touche Tab des éditeurs Python fait ça automatiquement).
Exemple — Majorite
age = int(input("Quel age as-tu ? "))
if age >= 18:
    print("Tu es majeur.")
else:
    print("Tu es mineur.")
Exemple — Signe d’un nombre
n = float(input("Entre un nombre : "))
if n > 0:
    print("Positif")
elif n < 0:
    print("Negatif")
else:
    print("Nul")
Operateurs de comparaison
OperateurSignification
==egal a
!=différent de
<, >strictement inférieur, supérieur
<=, >=inférieur ou egal, supérieur ou egal

On peut combiner des conditions avec and, or, not.

5. Boucle bornée (for)

Définition — Boucle for
Une boucle for (boucle bornée) repete un bloc d’instructions un nombre détermine de fois.
Syntaxe — for … in range(…)
for i in range(n):
    instructions

La variable i prend successivement les valeurs \(0, 1, 2, \ldots, n-1\). Le bloc est exécuté \(n\) fois.

Exemple — Table de multiplication
n = int(input("Quelle table ? "))
for i in range(1, 11):
    print(n, "x", i, "=", n * i)
Exemple — Somme des entiers de 1 à n
n = 100
s = 0
for i in range(1, n + 1):
    s = s + i
print("Somme =", s)  # Affiche 5050
Variantes de range
  • range(n) : de 0 a \(n-1\)
  • range(a, b) : de \(a\) a \(b-1\)
  • range(a, b, p) : de \(a\) a \(b-1\) avec un pas de \(p\)

6. Boucle non bornée (while)

Définition — Boucle while
Une boucle while (boucle non bornée) repete un bloc d’instructions tant qu’une condition est vraie. Le nombre de répétitions n’est pas connu a l’avance.
Syntaxe — while
while condition:
    instructions

Tant que la condition est True, le bloc est exécuté. Des que la condition devient False, on sort de la boucle.

Exemple — Premiere puissance de 2 depassant 1000
p = 1
n = 0
while p <= 1000:
    p = p * 2
    n = n + 1
print("2 ^", n, "=", p)  # Affiche : 2 ^ 10 = 1024
Exemple — Jeu du nombre secret
from random import randint
secret = randint(1, 100)
essai = 0
while essai != secret:
    essai = int(input("Ton essai : "))
    if essai < secret:
        print("Trop petit !")
    elif essai > secret:
        print("Trop grand !")
print("Bravo, c'est", secret, "!")
Attention — Boucle infinie

Si la condition ne devient jamais False, la boucle ne s’arrete jamais. Il faut toujours s’assurer que la condition finira par devenir fausse.

7. Fonctions Python

Définition — Fonction
Une fonction est un bloc d’instructions reutilisable, qui peut recevoir des données en entrée (les arguments ou paramètres) et renvoyer un résultat grace a l’instruction return.
Syntaxe — def
def nom_fonction(parametre1, parametre2):
    instructions
    return resultat
Exemple — Convertisseur en fonction
def celsius_vers_fahrenheit(c):
    """Convertit des Celsius en Fahrenheit."""
    return 1.8 * c + 32

print(celsius_vers_fahrenheit(0))    # 32.0
print(celsius_vers_fahrenheit(100))  # 212.0
print(celsius_vers_fahrenheit(37))   # 98.6
Exemple — Fonction a plusieurs paramètres
def aire_rectangle(longueur, largeur):
    return longueur * largeur

print(aire_rectangle(5, 3))  # 15
Exemple — Fonction avec random
from random import randint

def lancer_de():
    """Simule un lancer de de a 6 faces."""
    return randint(1, 6)

# Simuler 10 lancers
for i in range(10):
    print(lancer_de(), end=" ")
Difference entre print et return
  • print affiche une valeur a l’ecran mais ne renvoie rien.
  • return renvoie une valeur qu’on peut stocker dans une variable ou utiliser dans un calcul.
Modules Python utiles — math et random

Python propose des modules : des bibliothèques de fonctions prêtes à l’emploi. Au programme de Seconde :

  • from math import sqrt, cos, sin, pi — racine carrée, trigonométrie, constante \(\pi\)
  • from random import randint, random — entier aléatoire, nombre réel dans \([0\,;\,1[\)
from math import sqrt, pi
print(sqrt(2))        # 1.4142135...
print(pi)             # 3.141592...
🎯 S’entraîner sur Wims
✅ Vérifie que tu as compris — Fonctions PythonFonctions Python · Fonctions Python (bis) · Pixel art
▸ Fonctions Python ▸ Fonctions Python (bis) ▸ Pixel art

8. Listes (tableaux)

Définition — Liste Python
Une liste est une suite ordonnée de valeurs, notée entre crochets et séparées par des virgules. Une liste peut contenir des nombres, des chaînes, ou même d’autres listes.
Exemple — Création et accès
notes = [12, 15, 9, 17, 13]   # liste de 5 entiers
prenoms = ["Anna", "Bob", "Inès"]

print(notes[0])               # 12 (premier élément, indice 0)
print(notes[2])               # 9
print(notes[-1])              # 13 (dernier élément)
print(len(notes))             # 5 (longueur de la liste)
⚠️ Indices : on commence à 0 !
  • Le premier élément a l’indice 0.
  • Le dernier élément a l’indice len(L) - 1 (ou -1).
  • L[len(L)] provoque une erreur (IndexError) — l’indice est hors limite.
Propriété — Opérations courantes sur les listes
OpérationSyntaxeRésultat
Longueurlen(L)nombre d’éléments
AccèsL[i]élément d’indice i
ModificationL[i] = vremplace l’élément d’indice i
Ajout en finL.append(x)ajoute x à la fin
Test d’appartenancex in LTrue ou False
Liste videL = []aucune valeur
Exemple — Parcours d’une liste avec for
notes = [12, 15, 9, 17, 13]

# Parcourir les valeurs
total = 0
for n in notes:
    total = total + n
print("Somme :", total)        # Somme : 66
print("Moyenne :", total / len(notes))  # Moyenne : 13.2

# Parcourir les indices (utile pour modifier)
for i in range(len(notes)):
    notes[i] = notes[i] + 1     # bonus de +1 sur chaque note
print(notes)                    # [13, 16, 10, 18, 14]
Exemple — Construction d’une liste avec append
# Liste des carrés des entiers de 1 à 5
carres = []
for n in range(1, 6):
    carres.append(n * n)
print(carres)                   # [1, 4, 9, 16, 25]
💡 Listes vs chaînes

Une chaîne "Bonjour" se manipule presque comme une liste de caractères : "Bonjour"[0] donne "B", len("Bonjour") vaut 7, etc. La grande différence : une chaîne est immuable (on ne peut pas faire s[0] = "X"), alors qu’une liste est modifiable.

Bilan — L’essentiel

NotionPython
Affectationx = valeur
Saisie utilisateurinput("message")
Affichageprint(valeur)
Conditionnelleif / elif / else
Boucle bornéefor i in range(n):
Boucle non bornéewhile condition:
Fonctiondef f(x): return ...
Nombre aléatoirefrom random import randint
Retenir :
  • Un algorithme est une suite finie d’instructions precises
  • Les quatre types de base : int, float, bool, str
  • for quand on connait le nombre de répétitions, while sinon
  • Une fonction prend des paramètres et renvoie un résultat avec return
Solution du problème d’ouverture — Convertisseur Celsius → Fahrenheit

On définit une fonction qui applique la formule \(F = 1{,}8 \times C + 32\), puis on l’appelle avec la valeur saisie.

def celsius_vers_fahrenheit(c):
    return 1.8 * c + 32

c = float(input("Temperature en Celsius : "))
print("Soit", celsius_vers_fahrenheit(c), "Fahrenheit")

Quelques résultats : \(0°C \to 32°F\), \(100°C \to 212°F\), \(37°C \to 98{,}6°F\) (température corporelle).

Solution de l’énigme — Deviner un nombre en minimum d’essais

Principe de la dichotomie. La recherche dichotomique (du grec dikha, « en deux », et tomos, « coupe ») consiste, pour trouver un élément dans un intervalle ordonne, a proposer systematiquement le milieu de l’intervalle restant, puis a eliminer la moitié qui ne contient pas la valeur cherchee. A chaque etape, le nombre de possibilites est divise par 2.

Applique a notre jeu : pour un nombre entre 1 et 100, on propose 50 ; selon la reponse « plus petit » ou « plus grand », on restreint a l’intervalle \([1\,;\,49]\) ou \([51\,;\,100]\) ; on recommence avec 25 ou 75, etc.

Il faut au maximum 7 essais. En effet, après \(k\) essais le nombre de possibilités a été divisé par \(2^k\). Comme \(2^6 = 64 < 100\) mais \(2^7 = 128 > 100\), 7 essais suffisent toujours.

La dichotomie est un algorithme fondamental en informatique (recherche dans un tableau trie, résolution approchee d’une équation, etc.).

⚠️ Pieges et contre-exemples

Algorithmique et Python : teste d’abord ton intuition, puis lis l’explication.

Score : 0 / 5 pieges identifies
1 Un algorithme donne toujours le résultat le plus rapide

« Un algorithme donne toujours le résultat le plus rapide. »

Cette affirmation est-elle vraie ?

📖 Explication

FAUX. Un algorithme donne un résultat correct, mais pas forcement le plus rapide. Il existe souvent plusieurs algorithmes pour un même problème, avec des vitesses tres différentes.

💡 Memo : Un algorithme = une méthode qui termine et donne un résultat correct. La rapidite est une question d’optimisation, pas de correction.

Mini-test : un algorithme doit obligatoirement être le plus rapide possible ?

🔗 Travaille dans les exercices sur l’algorithmique

2 Une boucle while s’exécute toujours un nombre fini de fois

« Une boucle while s’exécute toujours un nombre fini de fois. »

Cette affirmation est-elle vraie ?

📖 Explication

FAUX. Si la condition du while ne devient jamais fausse, la boucle tourne indefiniment : c’est une boucle infinie.

💡 Memo : Toujours vérifier que la condition du while finira par devenir fausse. Exemple de boucle infinie : while True: pass.

Mini-test : que fait while True: print('ok') ?

🔗 Travaille dans les exercices sur les boucles

3 if et elif sont interchangeables

« if et elif sont interchangeables. »

Cette affirmation est-elle vraie ?

📖 Explication

FAUX. elif n’est evalue que si le if precedent (et les elif precedents) sont faux. Deux if successifs sont evalues independamment.

💡 Memo : Utilise elif pour des cas mutuellement exclusifs, et plusieurs if pour des conditions independantes.

Mini-test : si x = 5, combien de branches sont exécutées avec if x>3: ... elif x>4: ... ?

🔗 Travaille dans les exercices sur les conditions

4 Une fonction sans return renvoie une erreur

« Une fonction sans return renvoie une erreur. »

Cette affirmation est-elle vraie ?

📖 Explication

FAUX. Une fonction sans return renvoie None par defaut, sans erreur. Elle peut tres bien effectuer des actions (afficher, modifier une liste) sans rien renvoyer.

💡 Memo : Pas de return = la fonction renvoie None. Ce n’est pas une erreur.

Mini-test : que renvoie def f(): print('bonjour') quand on fait x = f() ?

🔗 Travaille dans les exercices sur les fonctions

5 range(5) donne les entiers de 0 à 4

« range(5) donne les entiers de 0 à 4. »

Cette affirmation est-elle vraie ou fausse ?

📖 Explication

C’est VRAI ! range(5) produit les entiers 0, 1, 2, 3, 4 — soit 5 valeurs commencant a 0.

💡 Memo : range(n) donne n valeurs de 0 à n-1. C’est un intrus parmi les pieges !

Mini-test : combien de valeurs produit range(10) ?

🔗 Voir la section sur les boucles

➡️ Pour la suite
Ch. 1 — Arithmétique — Tu utiliseras Python pour illustrer la notion de divisibilité et tester les nombres pairs/impairs.