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