COURS
Python
Révision complète pour l'examen
1. Fonctions 5. Chaînes
2. Boucles 6. Conditions
3. Listes 7. Maths
4. Dictionnaires
Chapitre 1 ★★★★★
Fonctions Python
def · return · paramètres · appel
def return Paramètres Appel
Définit une fonction. Retourne une valeur. Variables reçues. nom() avec arguments.
Suivie du nom et des Sans return → None Peuvent avoir des On peut stocker
paramètres (). est renvoyé. valeurs par défaut. le résultat.
def factorielle(n): def combinaison(n, k):
resultat = 1 # C(n,k) = n! / (k! × (n-k)!)
for i in range(1, n + 1): return (factorielle(n) //
resultat *= i (factorielle(k) *
return resultat factorielle(n - k)))
print(factorielle(5)) # → 120 print(combinaison(5, 2)) # → 10
Chapitre 1 — Fonctions (suite)
f(x) et g(x) Distance entre villes
def f(x): def distance(x1, y1, x2, y2):
return 2*x**2 - 3*x + 1 d = ((x2-x1)**2 +
(y2-y1)**2) ** 0.5
def g(x): return d
return x + 5
# Avec un dictionnaire
# Composition : h(x) = f(g(x)) coord = {
def h(x): "Paris" : (2.35, 48.85),
return f(g(x)) "Lyon" : (4.83, 45.74)
}
print(f(3)) # → 10 x1,y1 = coord['Paris']
print(h(3)) # → f(8) = 105 x2,y2 = coord['Lyon']
print(round(distance(x1,y1,x2,y2),2))
Validation de date
jours = {1:31,2:28,3:31,4:30,5:31,
6:30,7:31,8:31,9:30,
10:31,11:30,12:31}
def est_valide(j, m):
if m not in jours: return False
return 1 <= j <= jours[m]
print(est_valide(31, 4)) # False
print(est_valide(15, 6)) # True
Chapitre 2 ★★★★★
Boucles
for · while · range() · boucles imbriquées
range(5) range(1, 6) range(0, 11, 2) range(5, 0, -1)
0 1 2 3 4 1 2 3 4 5 0 2 4 6 8 10 5 4 3 2 1
→ 0 → stop-1 → start → stop-1 → avec pas → à l'envers
⚠ La borne de fin est EXCLUE — range(5) donne 0,1,2,3,4 (pas 5)
# while : boucle conditionnelle # Boucles imbriquées
n = 1 for i in range(1, 4):
while n <= 1000: for j in range(1, 4):
n = n * 2 print(i*j, end=' ')
print(n) # → 1024 print()
# → 1 2 3
# break : sortir de la boucle # → 2 4 6
i = 0 # → 3 6 9
while True:
if i == 3: break # Somme d'une liste
i += 1 somme = 0
Chapitre 3 ★★★★★
Listes et indexation
Accès · slicing · matrices · output questions
0 1 2 3 4
Index positifs →
10 20 30 40 50
← Index négatifs
-5 -4 -3 -2 -1
L = [10, 20, 30, 40, 50] # Matrice = liste de listes
M = [[1,2,3],
L[0] # → 10 (premier) [4,5,6],
L[-1] # → 50 (dernier) [7,8,9]]
L[1:3] # → [20, 30]
L[2:] # → [30, 40, 50] M[0] # → [1, 2, 3]
L[:3] # → [10, 20, 30] M[1][2] # → 6
L[::2] # → [10, 30, 50] M[2][0] # → 7
L[::-1] # → [50, 40, 30, 20, 10]
# Méthodes utiles
[Link](9) # ajouter
len(L) # longueur
sum(L) # somme
max(L), min(L)
MÉMO : matrice[ligne][colonne] — L'indice -1 = dernier élément
Chapitre 4 ★★★★★
Dictionnaires
clé → valeur · keys() · values() · parcourir
# Créer dico = {'a':1, 'b':2, 'c':3}
villes = {
"Paris" : (2.35, 48.85), [Link]() # → dict_keys(['a','b','c'])
"Lyon" : (4.83, 45.74), [Link]() # → dict_values([1, 2, 3])
} [Link]() # → [('a',1),...]
# Accès # Vérifier une clé
villes["Paris"] # (2.35, 48.85) "a" in dico # → True
villes["Lyon"][0] # 4.83 [Link]('z', 0) # → 0 (pas d'erreur)
# Ajouter / modifier # Parcourir clé + valeur
villes["Nice"] = (7.26, 43.71) for nom, note in [Link]():
print(nom, note)
# Supprimer
del villes["Lyon"]
# Exemple examen : validation avec dico
jours_mois = {1:31,2:28,4:30,6:30,9:30,11:30}
# mois non listés ont 31 jours
Chapitre 5 ★★★★★
Chaînes de caractères
slicing · replace() · split() · int() · exercice IBAN
s = "Python2024" # Conversions
# 0123456789 x = "42"
int(x) # → 42
s[0] # → 'P' float(x) # → 42.0
s[-1] # → '4' str(100) # → '100'
s[:6] # → 'Python'
s[6:] # → '2024' # Extraire une date
s[::-1] # → '4202nohtyP' d = "15/06/2024"
len(s) # → 10 p = [Link]("/")
# → ['15', '06', '2024']
# Méthodes jour = int(p[0]) # 15
[Link]() # PYTHON2024 mois = int(p[1]) # 6
[Link]("o","0") # Pyth0n2024 annee = int(p[2]) # 2024
[Link]("2") # ["Python","","24"]
Exercice IBAN — Septembre 2024
def verif_iban(iban):
Chapitre 6 ★★★★★
Conditions
if · elif · else · and · or · not
def mention(note): # Opérateurs de comparaison
if note >= 18: x = 10
return "Très bien" x == 10 # True (égal)
elif note >= 16: x != 5 # True (différent)
return "Bien" x > 5 # True
elif note >= 14: x >= 10 # True
return "Assez bien" 0 <= x <= 20 # True (pythonique)
elif note >= 10:
return "Passable" # and / or / not
else: age = 20; carte = True
return "Insuffisant" if age >= 18 and carte:
print("Accès OK")
print(mention(17)) # "Bien" if not carte:
print("Carte manquante")
# Modulo : pair/impair et multiples
if n % 2 == 0: print('pair')
Chapitre 7 ★★★★★
Calculs mathématiques
moyenne · distance · puissance · racine · modulo
a, b = 17, 5 # Moyenne # Distance
a + b # → 22 def moyenne(L): def distance(x1,y1,x2,y2):
a - b # → 12 return sum(L) / len(L) return ((x2-x1)**2 +
a * b # → 85 (y2-y1)**2)**0.5
a / b # → 3.4 (réel) # Moyenne pondérée
a // b # → 3 (entier) def moy_pond(notes, coeffs): # Exemple : triangle 3-4-5
a % b # → 2 (reste) t = sum(coeffs) d=distance(0,0,3,4) # → 5.0
a ** 2 # → 289 (puissance) s = sum(notes[i]*coeffs[i]
a ** 0.5 # → 4.12 (racine) for i in import math
abs(-7) # → 7 range(len(notes))) [Link](25) # → 5.0
round(3.456, 2) # → 3.46 return s / t [Link] # → 3.14159
[Link](3.7)# → 3
print(moyenne([12,15,9,18])) #
13.5
Antisèche finale
n % 2 == 0 → n est pair range(0, 101) → 0 à 100 inclus