Algorithmique et Python en seconde : cours complet
En seconde, tu passes de Scratch à Python, un vrai langage de programmation utilisé dans la recherche, l'industrie, le web. Tu manipules variables, fonctions, boucles, conditions, listes, et tu programmes de vrais algorithmes mathématiques.
Python : les bases
Variables
a = 5 # entier
b = 3.14 # décimal (float)
nom = "Léa" # chaîne de caractères
ok = True # booléen
Opérations
3 + 5 # → 8
10 / 3 # → 3.333...
10 // 3 # → 3 (division entière)
10 % 3 # → 1 (reste)
2 ** 8 # → 256 (puissance)
Affichage et saisie
print("Bonjour", nom)
age = int(input("Quel âge as-tu ? "))
Conditions
if x > 0:
print("positif")
elif x == 0:
print("nul")
else:
print("négatif")
Opérateurs de comparaison
== (égal), != (différent), <, >, <=, >=
Opérateurs logiques
if 0 < x and x < 10:
print("entre 0 et 10")
Boucles
Boucle for
for i in range(5): # 0, 1, 2, 3, 4
print(i)
for i in range(1, 11): # 1 à 10
print(i)
Boucle while
n = 0
while n < 100:
n = n + 1
print(n)
Listes
Définition et accès
notes = [12, 15, 18, 9, 14]
print(notes[0]) # 12 (premier élément)
print(notes[-1]) # 14 (dernier élément)
print(len(notes)) # 5
Parcours
for note in notes:
print(note)
for i in range(len(notes)):
print("Note", i, ":", notes[i])
Méthodes utiles
notes.append(16) # ajouter à la fin
notes.remove(9) # supprimer la valeur 9
notes.sort() # trier
sum(notes) # somme
max(notes), min(notes)
Fonctions
Définition
def carre(x):
return x * x
print(carre(5)) # 25
Avec plusieurs paramètres
def maximum(a, b):
if a > b:
return a
else:
return b
Sans retour (procédure)
def dire_bonjour(nom):
print("Bonjour", nom)
Algorithmes classiques
Moyenne
def moyenne(notes):
return sum(notes) / len(notes)
PGCD (algorithme d'Euclide)
def pgcd(a, b):
while b != 0:
a, b = b, a % b
return a
print(pgcd(420, 156)) # 12
Recherche dans une liste
def recherche(liste, valeur):
for i in range(len(liste)):
if liste[i] == valeur:
return i
return -1
Maximum sans utiliser max()
def mon_max(liste):
m = liste[0]
for x in liste:
if x > m:
m = x
return m
Modules utiles
Module math
import math
math.sqrt(16) # 4.0
math.pi # 3.14159...
math.cos(0) # 1.0
math.floor(3.7) # 3 (partie entière)
Module random
import random
random.randint(1, 6) # entier entre 1 et 6
random.random() # entre 0 et 1
random.choice([1, 2, 3, 4]) # choix aléatoire
Programmes types
Tirage d'un dé
import random
def lancer_de():
return random.randint(1, 6)
Simulation de la loi des grands nombres
import random
def frequence_six(n):
cpt = 0
for _ in range(n):
if random.randint(1, 6) == 6:
cpt += 1
return cpt / n
print(frequence_six(10000)) # proche de 1/6 ≈ 0.167
Calcul itératif
def somme_n_premiers(n):
s = 0
for i in range(1, n+1):
s += i
return s
print(somme_n_premiers(100)) # 5050
Erreurs fréquentes à éviter
- Confondre
= (affectation) et == (test d'égalité).
- Mauvaise indentation : essentielle en Python (souvent 44 espaces).
- Index hors plage : pour une liste de longueur nn, valides : 00 à n−1n-1.
- Boucle infinie : penser à modifier la condition de sortie.
- Type incorrect :
input() retourne toujours une chaîne, convertir avec int() ou float().
FAQ — Algorithmique et Python en seconde
Pourquoi Python plutôt que Scratch ?
Python est professionnel, utilisé dans la vraie vie (recherche, IA, web). Il prépare aux études supérieures et au monde du travail.
Comment exécuter du Python ?
Avec un éditeur EduPython, Pyzo, Thonny, ou en ligne (replit.com, basthon.fr). En lycée, Edupython est très utilisé.
Quelle est la différence entre une fonction et une procédure ?
Une fonction retourne une valeur (return). Une procédure fait une action sans retourner de valeur (juste un print() par exemple).
À quoi sert l'algorithmique ?
À résoudre n'importe quel problème : calculs scientifiques, traitement de données, intelligence artificielle, jeux, sites web…