00:00
Score : / 48
0%
⏱ Temps de travail
00:00
M
MathsOtop®
SECONDE
Fiche N° 01Chapitre 1 — Programmation Python
Variables, boucles, fonctions

Chapitre 1 — Programmation Python

12 EXERCICES
Nom — Prénom
Classe
Date
Niveau →
Problèmes
★
Niveau 1 — FacileEx. 1 à 3
Ex.1 Variables et affectation ★ 3 pts
Qu'affiche Python pour chaque programme ? Répondre sans machine.
  1. x = 5 ; y = x + 3 ; print(y)
  2. a = 2 ; a = a * 3 ; print(a)
  3. s = 'Bonjour' ; print(s + ' !')
Réponse  
Ex.2 Boucle for ★ 4 pts
Écrire le programme Python qui affiche :
  1. Les entiers de 1 à 10.
  2. La table de multiplication de 7 (de 1×7 à 10×7).
Réponse  
Ex.3 Boucle while ★ 4 pts
Que fait ce programme ? Combien de fois la boucle s'exécute-t-elle ?
n = 1 ; while n < 100 : n = n * 2 ; print(n)
  1. Suivre pas à pas les valeurs de n.
  2. Quelle valeur est affichée au final ?
Réponse  
mathsotop.frCh1 — Programmation Python1 / 4
M
MathsOtop®
SECONDE
Fiche N° 01Chapitre 1 — Programmation Python
Fiche N° 01
★★
Niveau 2 — IntermédiaireEx. 4 à 6
Ex.4 Conditions if/elif/else ★ 4 pts
Écrire un programme qui demande l'âge de l'utilisateur et affiche :
  • « Enfant » si âge < 12
  • « Ado » si 12 ≤ âge < 18
  • « Adulte » sinon
Réponse  
Ex.5 Fonctions Python ★★ 4 pts
  1. Écrire une fonction carre(x) qui retourne x².
  2. Écrire une fonction perimetre_rect(L, l) qui retourne le périmètre.
  3. Appeler chaque fonction avec des valeurs test.
Réponse  
Ex.6 Listes ★★ 4 pts
notes = [12, 15, 8, 17, 10, 14]
  1. Afficher la première et la dernière note.
  2. Calculer la somme avec une boucle for.
  3. Calculer la moyenne.
Réponse  
mathsotop.frCh1 — Programmation Python2 / 4
M
MathsOtop®
SECONDE
Fiche N° 01Chapitre 1 — Programmation Python
Fiche N° 01
★★
Niveau 2 — IntermédiaireEx. 7 à 9
Ex.7 Recherche du maximum ★★ 4 pts
Écrire une fonction maximum(liste) qui retourne le plus grand élément sans utiliser max().
  1. Écrire l'algorithme en français d'abord.
  2. Traduire en Python.
  3. Tester avec [3, 8, 1, 9, 4].
Réponse  
Ex.8 Tri à bulles ★★ 4 pts
L'algorithme de tri à bulles compare deux éléments adjacents et les échange si nécessaire.
  1. Appliquer à la main sur [5, 2, 8, 1, 9].
  2. Compléter le code Python fourni.
Réponse  
Ex.9 Calcul de termes par boucle ★★★ 4 pts
On part de deux nombres, 1 et 1. À chaque étape, on calcule un nouveau nombre égal à la somme des deux précédents : on obtient ainsi 1, 1, 2, 3, 5, ...
  1. Calculer à la main le 3e au 8e nombre de cette façon.
  2. Écrire une fonction Python fibo(n) qui renvoie le n-ième nombre obtenu par ce procédé, en utilisant une boucle for.
  3. Utiliser cette fonction pour calculer le 20e nombre.
Réponse  
mathsotop.frCh1 — Programmation Python3 / 4
M
MathsOtop®
SECONDE
Fiche N° 01Chapitre 1 — Programmation Python
Fiche N° 01
★★★
Niveau 3 — DifficileEx. 10 à 12
Ex.10 Algorithme d'Euclide ★★★ 4 pts
Écrire la fonction Python pgcd(a, b) utilisant l'algorithme d'Euclide.
  1. Rappeler l'algorithme.
  2. Coder la fonction.
  3. Vérifier : pgcd(48, 18) = ?
Réponse  
Ex.11 Génération de nombres premiers ★★★ 4 pts
  1. Écrire une fonction est_premier(n).
  2. Utiliser cette fonction pour lister tous les premiers inférieurs à 50.
  3. Combien y en a-t-il ?
Réponse  
Ex.12 ★ Défi — Simulation ★★★ 5 pts
On simule un lancer de dé avec import random ; d = random.randint(1,6).
  1. Écrire un programme qui simule 1000 lancers et compte les occurrences de chaque face.
  2. Quelle est la fréquence observée de chaque face ? Comparer à la théorie.
Réponse  
✦ Auto-évaluation
✅ Maîtrisé
⚠️ À retravailler
❓ Non acquis
Mon score : _____ / 48 pts
mathsotop.frCh1 — Programmation Python4 / 4
M
MathsOtop®
LYCÉE
✦ CORRIGÉ Ch1 — Programmation Python
✦ Corrigé — Ch1 — Programmation Python
ACCÈS LIBRE — Ex. 1 à 6
★
Niveau 1 — Facile Ex. 1 à 3
Ex.1 Variables et affectation ★
x=5;y=x+3 · a=2;a=a*3 · s='Bonjour'
→ print(y) → x=5, y=5+3=8 → affiche 8
→ print(a) → a=2×3=6 → affiche 6
→ print(s+' !') → affiche 'Bonjour !'
= 8 · 6 · 'Bonjour !'
Ex.2 Boucle for ★
Afficher 1 à 10, puis table de 7
→ for i in range(1, 11): print(i)
→ for i in range(1, 11): print(i * 7)
= 1 2 3 ... 10 · 7 14 21 ... 70
Ex.3 Boucle while ★
n=1 ; while n<100 : n=n*2
→ n : 1→2→4→8→16→32→64→128 (arrêt car 128≥100)
→ La boucle s'exécute 7 fois
= Valeur finale affichée : 128 (7 itérations)
★★
Niveau 2 — Intermédiaire Ex. 4 à 6
Ex.4 Conditions if/elif/else ★★
Classer selon l'âge
→ if age < 12 : print("Enfant")
→ elif age < 18 : print("Ado")
→ else : print("Adulte")
= Structure if/elif / else avec les trois seuils
Ex.5 Fonctions Python ★★
carre(x) et perimetre_rect(L, l)
→ def carre(x): return x**2 → carre(4) = 16
→ def perimetre_rect(L, l): return 2*(L+l) → perimetre_rect(5,3) = 16
= carre(4)=16 · perimetre_rect(5,3)=16
Ex.6 Listes ★★
notes = [12, 15, 8, 17, 10, 14]
→ Première : notes[0]=12 · Dernière : notes[-1]=14
→ total=0 ; for n in notes: total += n → total=76
→ Moyenne = 76 ÷ 6 ≈ 12,67
= 12 et 14 · somme=76 · moyenne≈12,67
mathsotop.frCorrigé — Ch1 — Programmation Python 5 / 6
M
MathsOtop®
LYCÉE
✦ CORRIGÉ Ch1 — Programmation Python
✦ Corrigé — Ch1 — Programmation Python
ACCÈS PREMIUM — Ex. 7 à 12
★★
Niveau 2 — Intermédiaire (suite) Ex. 7 à 9
Ex.7 Recherche du maximum ★★
→ Algorithme : on initialise le maximum avec le premier élément, puis on parcourt les éléments suivants en mettant à jour le maximum quand on trouve plus grand
→ Python :
  def maximum(liste):
    m = liste[0]
    for x in liste[1:]:
        if x > m:
            m = x
    return m  (return placé après la boucle, pas à l'intérieur)
→ Test sur [3, 8, 1, 9, 4] : m passe par 3 → 8 → 8 → 9 → 9
= maximum([3, 8, 1, 9, 4]) renvoie 9
Ex.8 Tri à bulles ★★
→ Passe 1 sur [5,2,8,1,9] : (5,2)→échange→[2,5,8,1,9] ; (8,1)→échange→[2,5,1,8,9]
→ Passe 2 : (5,1)→échange→[2,1,5,8,9]. Passe 3 : (2,1)→échange→[1,2,5,8,9], puis plus aucun échange
→ Code :
  def tri_bulles(liste):
    n = len(liste)
    for i in range(n):
        for j in range(n-1-i):
            if liste[j] > liste[j+1]:
                liste[j], liste[j+1] = liste[j+1], liste[j]
    return liste  (return après les deux boucles, pour trier complètement)
= Liste triée : [1, 2, 5, 8, 9]
Ex.9 Calcul de termes par boucle ★★★
→ 3e=1+1=2 ; 4e=3 ; 5e=5 ; 6e=8 ; 7e=13 ; 8e=21
→ def fibo(n):
    if n <= 2:
        return 1
    a, b = 1, 1
    for _ in range(n - 2):
        a, b = b, a + b
    return b
→ En poursuivant : 9e=34 ... 20e=6765
= 3e..8e = 2,3,5,8,13,21 ; 20e = 6765
★★★
Niveau 3 — Difficile Ex. 10 à 12
Ex.10 Algorithme d'Euclide ★★★
→ Algorithme d'Euclide : tant que b≠0, remplacer (a,b) par (b, a mod b) ; le PGCD est la dernière valeur non nulle de a
→ def pgcd(a, b):
    while b != 0:
        a, b = b, a % b
    return a  (return après la boucle while, pas à l'intérieur)
→ pgcd(48,18) : (48,18)→(18,12)→(12,6)→(6,0) : on renvoie 6
= pgcd(48, 18) = 6
Ex.11 Génération de nombres premiers ★★★
→ def est_premier(n):
    if n < 2:
        return False
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            return False
    return True  (return True après la boucle, atteint seulement si aucun diviseur trouvé)
→ premiers = [n for n in range(2,50) if est_premier(n)] → 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47
→ On compte les éléments de cette liste
= 15 nombres premiers inférieurs à 50
Ex.12 ★ Défi — Simulation ★★★
→ import random; compte=[0]*7 ; for _ in range(1000): d=random.randint(1,6); compte[d]+=1
→ for face in range(1,7): print(face, compte[face]/1000)
→ Probabilité théorique de chaque face = 16 ≈ 16,7 %
= Les fréquences observées fluctuent autour de 16 ≈16,7% pour chaque face (résultat variable d'une simulation à l'autre, mais proche de la théorie sur 1000 lancers)
mathsotop.frCorrigé — Ch1 — Programmation Python 6 / 6