Correction1
Exercice 1 — Initialisation d'une variable (2)
X = "Toto"
Exercice 2 — Initialisation d'une variable (1)
pim, pam, pom = 1, 2, 3
Exercice 3 — Initialisation d'une variable (3)
jour = 7
mois = 9
annee = 2026
Exercice 4 — Initialisation et constantes
ciseaux = 7
Exercice 5 — Échange de deux variables
a, b = b, a
Exercice 6 — Une fonction carre
Le code initial contenait une erreur (n * 6 au lieu du carré) :
def carre(n):
return n ** 2
Exercice 7 — Sphère
from math import pi
def cube(x):
return x ** 3
def volume_sphere(r):
return (4 / 3) * pi * cube(r)
Exercice 8 — Entiers et chaîne
def entierchaine(n, m):
return (n + m, str(n) + str(m))
Exercice 9 — Distinguer un nombre
def comparaison(nombre):
if nombre < 15:
return "Trop petit !"
elif nombre == 15:
return "Tout juste !"
else:
return "Trop grand !"
Exercice 10 — Deux divisions
def division(n, m, type_division):
if m == 0:
return "Division par 0"
if type_division == "réelle":
return f"{n} / {m} = {n / m}"
elif type_division == "euclidienne":
quotient = n // m
reste = n % m
return f"{n} = {m} * {quotient} + {reste}"
Remarque : pour la division euclidienne avec des entiers négatifs, // et % en Python suivent une convention particulière (le reste garde le signe du diviseur), ce qui peut donner des résultats différents des exemples "classiques" si n ou m sont négatifs. Pour les exemples donnés (nombres positifs), le code fonctionne correctement.
Exercice 11 — Valeur absolue
def val_abs(x):
if x < 0:
return -x
else:
return x
Exercice 12 — Conversion de température
def conv(t, type_conversion):
if type_conversion == "CF":
return 32 + 1.8 * t
elif type_conversion == "FC":
return (t - 32) / 1.8
else:
return t
Souhaites-tu que je vérifie ces solutions sur les exemples donnés dans les énoncés, ou que je les enrichisse de commentaires pédagogiques pour tes élèves ?
Exercice 13 — Boucle qui compte de 0 à nb - 1
def afficheboucle(nb):
resultat = ""
for i in range(nb):
resultat += str(i) + "\n"
return resultat
Exercice 14 — Boucle qui compte de 0 à nb
def afficheboucle(nb):
resultat = ""
for i in range(nb + 1):
resultat += str(i) + "\n"
return resultat
Exercice 15 — Multiples de 3 de 15 à 0 (ordre décroissant)
for i in range(15, -1, -1):
if i % 3 == 0:
print(i)
Exercice 16 — Carré des entiers pairs de 0 à 10
for i in range(0, 11, 2):
print(i ** 2)
Exercice 17 — Cube des multiples de 4 de 20 à 0 (while, décroissant)
i = 20
while i >= 0:
if i % 4 == 0:
print(i ** 3)
i -= 1
Exercice 18 — Saisie d'une suite croissante
nb = 0
precedent = None
while True:
valeur = input("Valeur :")
if precedent is not None and valeur <= precedent:
break
nb += 1
precedent = valeur
print("Vous avez entré", nb, "valeur(s) en ordre croissant")
Exercice 19 — Diviseurs
nombre = int(input("Un nombre : "))
if nombre > 0:
compteur = 0
for i in range(1, nombre + 1):
if nombre % i == 0:
print(i)
compteur += 1
print(nombre, "a", compteur, "diviseurs")
Exercice 20 — Nombres divisibles par 7 (22 entiers)
compteur = 0
for i in range(22):
l = int(input())
if l % 7 == 0:
compteur += 1
print("Il y a", compteur, "multiples de 7")
Exercice 21 — Liste des multiples de 51
def listemultiples(n):
resultat = ""
for i in range(1, n + 1):
resultat += str(51 * i)
return resultat
Exercice 22 — k premiers carrés
def carre(n):
return n ** 2
def affiche_premiers_carres(k):
for i in range(k):
print(carre(i))
Exercice 23 — n premiers multiples d'un entier
def affiche_table(x, n):
for i in range(n):
print(x * i)
Exercice 24 — Dix mais pas trois
def dix_mais_pas_trois(nombre):
return nombre % 10 == 0 and nombre % 3 != 0
Exercice 25 — Lancés de dés
def lances_des(n):
compteur = 0
for d1 in range(1, 7):
for d2 in range(1, 7):
for d3 in range(1, 7):
if d1 + d2 + d3 == n:
compteur += 1
return compteur
Exercice 26 — Histoire de trains
def temps_mis(v, d):
heures_decimales = d / v
h = int(heures_decimales)
minutes = round((heures_decimales - h) * 60)
return (h, minutes)
def sauvetage(vt, dO, V, dS):
temps_train = dO / vt
temps_superman = dS / V
return temps_superman <= temps_train
Exercice 27 — Apparition d'un chiffre
def nombre_chiffres(exp, chiffre):
nombre = 2 ** exp
compteur = 0
if nombre == 0:
return 1 if chiffre == 0 else 0
while nombre > 0:
if nombre % 10 == chiffre:
compteur += 1
nombre //= 10
return compteur