Python — Exercices Débutant & Intermédiaire
Même énoncés, mais corrections sans input() : on teste avec
print(fonction(valeur)), listes d’exemples, etc.Objectif : variables, I/O, fonctions simples, calculs, conditions, boucles. Corrections = fonctions + tests.
Entrées/Sorties
1) Dire bonjour par le prénom
Demande le prénom et affiche
Bonjour <prénom>!Indice
- Utiliser la fonction
input(nom)qui renvoie la chaîne.
def aff(nom):
...
return ...
print(aff("Ali"))
print(aff("Sofia"))
Calcul
2) Somme de deux nombres
Calcule et affiche la somme de deux nombres.
Indice
- Écris
somme(a,b).
def somme(a,b):
return a + b
print(somme(2,3))
print(somme(10.5,1.5))
Fonction
3) Celsius → Fahrenheit (fonction)
Écris
c2f(c) et teste-la.Indice
- F = 9/5 × C + 32
def c2f(c):
return 9/5*c + 32
print(c2f(0))
print(c2f(100))
Conditions
4) Pair ou impair
Affiche “pair” ou “impair”.
Indice
pair_ou_impair(n)→ chaîne.
def pair_ou_impair(n):
return "pair" if n % 2 == 0 else "impair"
print(pair_ou_impair(4))
print(pair_ou_impair(7))
Calcul
5) Aire d’un rectangle
Aire = L × l
Indice
aire(L,l)→ nombre.
def aire(L,l):
return L*l
print(aire(5,3))
print(aire(10.2,4))
Conditions
6) Plus grand de trois nombres
Affiche le maximum de trois valeurs.
Indice
max3(a,b,c)oumax().
def max3(a,b,c):
return max(a,b,c)
print(max3(3,8,5))
print(max3(-2,-7,-1))
Fonction
7) Valeur absolue (sans abs)
Implémenter
val_abs(x).Indice
- Si x < 0 → -x.
def val_abs(x):
return -x if x < 0 else x
print(val_abs(-5))
print(val_abs(3.2))
Conditions
8) Mini calculatrice (+, -, *, /)
Calcule selon l’opérateur.
Indice
calc(a,op,b).
def calc(a,op,b):
if op == "+": return a+b
if op == "-": return a-b
if op == "*": return a*b
if op == "/": return a/b
return None
print(calc(7,"+",5))
print(calc(10,"/",4))
Boucle · for
9) Table de multiplication de n (1 à 10)
Affiche la table de n.
Indice
- Retourne une liste de produits.
def table(n):
return [n*i for i in range(1,11)]
print(table(7))
print(table(3))
Boucle · while
10) Compte à rebours
Affiche n, n-1, …, 0.
Indice
- Construire une liste décroissante.
def countdown(n):
out = []
while n >= 0:
out.append(n)
n -= 1
return out
print(countdown(5))
Boucles
11) Somme de 1 à n
Calcule 1+2+…+n.
Indice
- Accumulateur.
def somme_1_a_n(n):
s, i = 0, 1
while i <= n:
s += i
i += 1
return s
print(somme_1_a_n(10))
Fonction
12) Factorielle (fonction)
Écris
fact(n).Indice
- Produit de 1 à n.
def fact(n):
r, i = 1, 2
while i <= n:
r *= i
i += 1
return r
print(fact(0))
print(fact(5))
Chaînes
13) Compter les voyelles
Nombre de voyelles dans un texte.
Indice
- Tester l’appartenance à
"aeiouy".
def compte_voyelles(s):
v = "aeiouy"
c = 0
for ch in s.lower():
if ch in v:
c += 1
return c
print(compte_voyelles("Bonjour"))
print(compte_voyelles("rhythmes"))
Chaînes
14) Inverser une chaîne (slicing)
Retourner
s[::-1].Indice
- Une ligne suffit.
def inverse(s):
return s[::-1]
print(inverse("abcd"))
print(inverse("radar"))
Conditions · Fonction
15) Année bissextile (fonction)
Règle 4/100/400.
Indice
- Écris
est_bissextile(a).
def est_bissextile(a):
if a % 400 == 0: return True
if a % 100 == 0: return False
return a % 4 == 0
print(est_bissextile(2000))
print(est_bissextile(1900))
print(est_bissextile(2024))
Renforcement boucles/conditions/chaînes/algos. Corrections refactorées en fonctions + jeux de tests.
Boucles · while
1) Table de 7 avec astérisque sur les multiples de 3
Affiche 20 termes de la table de 7 et “*” après chaque multiple de 3.
Indice
- Pas d’entrée utilisateur ici.
def table7_marques():
i = 1
out = []
while i <= 20:
t = i * 7
out.append(str(t) + (" *" if t % 3 == 0 else ""))
i += 1
return " ".join(out)
print(table7_marques())
Boucles · while
2) Conversion € → $CA
Conversier des euros en dollars Canadiens.
Indice
- Construire une liste de lignes.
def euro_ca():
...
...
return ...
print(euro_ca())
Boucles · while
3) Suite ×3 (12 termes)
Départ 1, multiplier par 3 douze fois.
Indice
- Retourne la liste.
def suite_triple():
a, c, out = 1, 0, []
while c < 12:
out.append(a)
a *= 3
c += 1
return out
print(suite_triple())
Entrées · while
4) Calcul TTC jusqu’à 0 (refactor)
Taux 19,6%.
Indice
ttc(prix)+ tests.
def ttc(prix):
return round(prix * 1.196, 2)
print(ttc(10))
print(ttc(99.9))
Boucles · while
5) Somme de positifs & combien > 100 (sentinelle ≤ 0)
Traite une séquence jusqu’au premier ≤ 0.
Indice
stats(seq)retourne (somme,total,grands).
def stats(seq):
somme = total = grands = 0
for x in seq:
if x <= 0:
break
somme += x
total += 1
if x > 100:
grands += 1
return somme, total, grands
print(stats([10, 200, 5, 0, 999]))
print(stats([101, 100, 1, -7]))
Boucles · while
6) Riz sur l’échiquier
Double à chaque case, 1..64.
Indice
- Retourne des tuples (case, grains).
def riz_echiquier():
n, g, out = 1, 1, []
while n <= 64:
out.append((n, g))
n, g = n + 1, g * 2
return out
print(riz_echiquier()[:8])
Comptage
7) Compter les pairs de 1 à N
Retourne le nombre de pairs.
Indice
nb_pairs(N).
def nb_pairs(N):
i = 1
c = 0
while i <= N:
if i % 2 == 0:
c += 1
i += 1
return c
print(nb_pairs(10))
print(nb_pairs(11))
Jeu
8) Devine le nombre (simulation de partie)
Transforme en fonction déterministe.
Indice
guess_count(target, guesses)renvoie le nombre d’essais jusqu’au bon nombre.
def guess_count(target, guesses):
tries = 0
for g in guesses:
tries += 1
if g == target:
return tries
return None # pas trouvé
print(guess_count(42, [50, 25, 40, 42]))
print(guess_count(7, [3, 5, 9]))
Nombres
9) Nombre de chiffres
Compte les chiffres d’un entier naturel.
Indice
nb_chiffres(n).
def nb_chiffres(n):
if n == 0:
return 1
c = 0
while n > 0:
c += 1
n //= 10
return c
print(nb_chiffres(0))
print(nb_chiffres(12345))
Algorithme
10) PGCD (Euclide)
Fonction PGCD.
Indice
pgcd(a,b).
def pgcd(a,b):
while b != 0:
a, b = b, a % b
return a
print(pgcd(54,24))
print(pgcd(1071,462))
Tests
11) Nombre premier ?
Affiche “Oui”/“Non”.
Indice
est_premier(n).
def est_premier(n):
if n < 2:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d += 1
return True
print(est_premier(2), est_premier(15), est_premier(17))
Suites
12) n premiers Fibonacci
Retourne une liste.
Indice
fib(n)→ liste.
def fib(n):
a, b = 0, 1
out = []
i = 0
while i < n:
out.append(a)
a, b = b, a + b
i += 1
return out
print(fib(7))
Chaînes
13) Inverser une chaîne (sans slicing)
Sans
[::-1].Indice
- Parcours depuis la fin.
def inverse_no_slice(s):
i = len(s) - 1
r = ""
while i >= 0:
r += s[i]
i -= 1
return r
print(inverse_no_slice("Python"))
print(inverse_no_slice("radar"))
Sommes
14) Somme des multiples de 3 ou 5 < N
Retourne la somme.
Indice
sum_multiples(N).
def sum_multiples(N):
i, s = 1, 0
while i < N:
if i % 3 == 0 or i % 5 == 0:
s += i
i += 1
return s
print(sum_multiples(10))
print(sum_multiples(100))
Bases
15) Décimal → binaire (sans bin)
Conversion manuelle.
Indice
dec2bin(n).
def dec2bin(n):
if n == 0:
return "0"
bits = ""
while n > 0:
bits = str(n % 2) + bits
n //= 2
return bits
print(dec2bin(0))
print(dec2bin(13))
print(dec2bin(255))
Astuce : les boutons “Copier” placent le code dans votre presse-papiers.