Avec des exercices corrigés en Python, vous pratiquerez divers concepts du langage Python. Vous commencerez par des exercices Python de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
Écrire un programme Python qui affiche le message « Hello World ».
Solution:
print('Hello, world!')
Explication:
En Python, la fonction print() est utilisée pour afficher le message souhaité sur l’écran d’un appareil.
Exercice 2:
Écrire un programme Python qui prend deux nombres et affiche leur somme.
Exemple de sortie:
Entrer 1er nombre: 1
Entrer 2éme nombre: 2
La somme de 1 et 2 est 3
Solution:
x = input("Entrer 1er nombre: ")
y = input("Entrer 2éme nombre: ")
s = int(x) + int(y)
print("La somme de ",x," et ",y," est ",s)
Explication:
Le programme ci-dessous permet d’additionner deux nombres en Python, l’utilisateur est d’abord invité à saisir deux nombres. Les données saisies sont analysées à l’aide de la fonction Python input() et stockées dans les variables x et y.
Ensuite, les variables x et y sont convertis en valeurs entière à l’aide de la fonction int() et ensuite additionnées à l’aide de l’opérateur arithmétique +, et le résultat est stocké dans la variable s.
Note: Si vous n’utilisez pas la fonction de conversion int() et vous entrez 1 et 2, vous obtiendrez 12, car l’opérateur + effectue ce que l’on appelle une « concaténation ».
Enfin, nous affichons le résultat à l’aide de la fonction print() avec une chaîne de caractères formatée.
Exercice 3:
Écrire un programme Python qui prend deux nombres et affiche leur produit.
Exemple de sortie:
Entrer 1er nombre: 2
Entrer 2éme nombre: 3
La multiplication de 2 et 3 est 6.0
Solution:
x = input("Entrer 1er nombre: ")
y = input("Entrer 2éme nombre: ")
m = float(x) * float(y)
print("La multiplication de ",x," et ",y," est ",m)
Explication:
Nous utilisons la fonction float() avec input() pour convertir la valeur saisie en valeurs à virgule flottante.
Exercice 4:
Ecrivez un programme en Python qui demande l’âge et permet de renseigner sa catégorie sachant que les catégories sont les suivantes:
Gamin de 6 à 7 ans
Pupille de 8 à 9 ans
Jeune de 10 à 11 ans
Cadet après 12 ans
Exemple de sortie:
Entrer votre age : 6
Vous êtes Gamin
age = int(input("Entrer votre age :"))
if(age >= 6 and age <= 7):
print("Vous êtes Gamin")
if(age >= 8 and age <= 9):
print("Vous êtes Pupille")
if(age >= 10 and age <= 11):
print("Vous êtes Jeune")
if(age >= 12):
print("Vous êtes Cadet")
Exercice 5:
Écrire un programme en Python pour calculer la factorielle d’un nombre entier saisi par l’utilisateur. (Remarque: le factoriel de 5, qui s’écrit 5! = 5 × 4 × 3 × 2 × 1).
Exemple de sortie:
Saisir un nombre : 5
Le factoriel de 5 est 120
----------------------------
Saisir un nombre : 0
La factorielle de 0 est 1
----------------------------
Saisir un nombre : -5
Désolé, la factorielle n'existe pas pour les nombres négatifs.
Solution:
# Prendre les données de l'utilisateur
n = int(input("Saisir un nombre: "))
f = 1
# vérifier si le nombre est négatif, positif ou nul
if n < 0:
print("Désolé, la factorielle n'existe pas pour les nombres négatifs.")
elif n == 0:
print("La factorielle de 0 est 1")
else:
for i in range(1,n + 1):
f = f*i
print("Le factoriel de",n,"est",f)
Explication:
Ici, le nombre dont la factorielle doit être trouvée est stocké dans n, et nous vérifions si le nombre est négatif, nul ou positif en utilisant l'instruction if...elif...else. Si le nombre est positif, nous utilisons la boucle for et la fonction range() pour calculer la factorielle.
Exercice 6:
Ecrivez un programme en Python pour inverser les chiffres d'un nombre saisi par l'utilisateur.
Dans la boucle while multiplie le nombre inversé 'rev' par 10, ajoutez le reste du nombre original 'Nbr' divisé par 10 à 'rev'.
C'est-à-dire, rev = rev + Nbr%10
Diviser le nombre original par 10.
Dans cette étape, la valeur du nombre original 'Nbr' est mise à jour en la divisant par 10. À chaque itération, le dernier chiffre du nombre original 'Nbr' est supprimé et la boucle se termine lorsque la valeur du nombre original 'Nbr' est égale à 0.
Maintenant, inversons le nombre 123 en utilisant le programme ci-dessus.
Écrire un programme Python qui prend un nombre entière et calcule sa valeur absolue.
Exemple de sortie:
Entrer un nombre : -3
La valeur absolue de -3 est 3
------------------------------
Entrer un nombre : 2
La valeur absolue de 2 est 2
Note: La valeur absolue de -3 est 3, ce qui est non négatif.
Solution:
n = int(input("Entrer un nombre :"))
if n < 0 :
print("La valeur absolue de",n,"est",-n)
else :
print("La valeur absolue de",n,"est",n)
Explication:
Le programme ci-dessus calcule la valeur absolue de n. Rappelez-vous que la valeur absolue de n est n si n n'est pas négatif; sinon, la valeur absolue est -n. Par exemple, la valeur absolue de 5 est 5 et la valeur absolue de -4 est 4=-(-4).
Exercice 8:
Écrire un programme en Python qui demande à l'utilisateur deux nombres n1 et n2 et lui indique ensuite si le produit de ces deux nombres est positif ou négatif. On prévoit dans le programme le cas où le produit peut être nul.
Exemple de sortie:
Entrer le 1er nombre: -1.5
Entrer le 2éme nombre: 3
Le produit est négatif
-----------------------------
Entrer le 1er nombre: 1
Entrer le 2éme nombre: 3
Le produit est positif
-----------------------------
Entrer le 1er nombre: 0
Entrer le 2éme nombre: 3
Le produit est nul
n1 = float(input("Entrer le 1er nombre:"))
n2 = float(input("Entrer le 2éme nombre:"))
if(n1 == 0 or n2 == 0):
print("Le produit est nul")
if (n1*n2 < 0):
print("Le produit est négatif")
if (n1*n2 > 0):
print("Le produit est positif")
Exercice 9:
Écrire un programme Python pour trouver le nombre max à partir de trois nombres.
A = int(input("Entrer 1er nombre:"))
B = int(input("Entrer 2éme nombre:"))
C = int(input("Entrer 3éme nombre:"))
Max = A
if B >= Max : Max = B
if C >= Max : Max = C
print("max = ",Max)
Explication:
Étape 1: Lire les trois nombres à comparer sous la forme A, B et C
Étape 2: Définir la variable max = A
Étape 3: Si B > max, mettez max = B
Étape 4: Si C > max, mettez max = C
Étape 5: Afficher max comme le plus grand des trois nombres
Exercice 10:
Écrire un programme Python pour échanger deux nombres sans utiliser une troisième variable.
Exemple de sortie:
Entrer un nombre A : 1
Entrer un nombre B : 2
Après la permutation: A = 2 et B = 1
Solution:
A = int(input("Entrer un nombre A :"))
B = int(input("Entrer un nombre B :"))
A,B = B,A
print("Après la permutation: A =",A,"et B =",B)
Explication:
Dans cette ligne de code A,B = B,A, nous avons affecter B à A et A à B. En Python, il est possible d'affecter plusieurs variables dans une seule ligne de code. C'est ce qu'on appelle l'affectation multiple. La syntaxe est la suivante:
var1, var2, var3 = valeur1, valeur2, valeur3
Ceci affecte les valeurs valeur1, valeur2, et valeur3 aux variables var1, var2, et var3 respectivement, le tout en une seule ligne.
Exercice 11:
Écrire un programme Python pour vérifier si un nombre est pair ou impair.
Exemple de sortie:
Entrer un nombre : 2
2 est un nombre pair
-------------------------
Entrer un nombre : 3
2 est un nombre impair
Solution:
n = int(input("Entrer un nombre :"))
if n%2==0 :
print(n,"est un nombre pair")
else :
print(n,"est un nombre impair")
Explication:
Dans le programme ci-dessus, l'entier saisi par l'utilisateur est stocké dans la variable n.
Ensuite, on vérifie si n est parfaitement divisible par 2 ou non à l'aide de l'opérateur de module %.
Si le nombre est parfaitement divisible par 2, l'expression de test n%2 == 0 est évaluée à 1 ("true"). Cela signifie que le nombre est pair.
En revanche, si l'expression de test est évaluée à 0 ("false"), le nombre est impair.
Exercice 12:
Écrire un programme Python qui calcule la moyenne de trois nombres saisis par l'utilisateur.
Exemple de sortie:
Entrer 1er nombre: 1
Entrer 2éme nombre: 2
Entrer 3éme nombre: 3
La Moyenne est 2.0
Solution:
A = int(input("Entrer 1er nombre:"))
B = int(input("Entrer 2éme nombre:"))
C = int(input("Entrer 3éme nombre:"))
Moy = (A+B+C)/3
print("La Moyenne est ",Moy)
Explication:
La première étape consiste à prendre les données de l'utilisateur. La fonction input() est utilisée pour lire trois nombres int.
La moyenne est ensuite calculée à l'aide de la formule : (A + B + C) / 3.
Enfin, le résultat est affiché à l'utilisateur à l'aide de la fonction print.
Exercice 13:
Écrire un programme en Python qui permet de savoir si le nombre saisi est Premier ou non. (Un nombre premier est un nombre uniquement divisible par 1 ou par lui-même).
Exemple de sortie:
Entrer un nombre : 29
29 est un nombre premier
Entrer un nombre : 21
21 n'est pas un nombre premier
21 a quatre diviseurs (1, 3, 7 et 21) donc ce n'est pas un nombre premier.
Solution:
Nbr = int(input("Entrer un nombre: "))
i=2
while(Nbr%i != 0 and i < Nbr):
i += 1
if (i == Nbr):
print(Nbr,"est un nombre premier")
else :
print(Nbr, "n'est pas un nombre premier")
Explication:
Une façon simple de déterminer si un nombre est premier est de faire une boucle allant de 2 à n-1 et de vérifier si le nombre est divisible par n'importe quel nombre de cette plage. Si c'est le cas, il ne s'agit pas d'un nombre premier ; sinon, c'est le cas.
Exercice 14:
Ecrivez un programme en Python qui calcule la somme de 1 à 10. En utilisant la boucle "while".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Exemple de sortie:
La somme de 1 à 10 est 55
Solution:
i = 1
somme = 0
while i <= 10 :
somme = somme + i
i = i + 1
print("La somme de 1 à 10 est:",somme)
Explication:
Dans la boucle while ci-dessus, la variable i est initialisée à 1 et la boucle se poursuit tant que i est inférieur ou égal à 10. À chaque itération de la boucle, la variable somme s'additionne à la valeur de i.
Enfin, la boucle incrémente la valeur de i de 1, et le processus se répète jusqu'à ce que la condition i <= 10 ne soit plus vraie. Dans ce cas on affiche le message "La somme de 1 à 10 est: 55".
Exercice 15:
Ecrivez un programme en Python qui calcule la somme de 1 à N, où N est saisi par l'utilisateur. En utilisant la boucle "while".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
Exemple de sortie:
Entrer un nombre: 7
La somme de 1 à 7 est 28
Solution:
i=1
somme=0
N = int(input("Entrer un nombre:"))
while i <= N :
somme = somme + i
i = i + 1
print("La somme de 1 à ",N," est:",somme)
Explication:
La boucle while est itérée n fois. À chaque itération, la valeur de i est ajoutée à la somme 'somme' et i est incrémenté de 1.
Exercice 16:
Ecrivez un programme en Python qui calcule la somme de 1 à 10. En utilisant la boucle "for".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55
Exemple de sortie:
La somme de 1 à 10 est 55
Solution:
somme = 0
for i in range(1,11):
somme = somme + i
print("La somme de 1 à 10 est:",somme)
Explication:
Dans la boucle for ci-dessus, la variable i est initialisée à 1 et la boucle se poursuit tant que i est inférieur à 11. À chaque itération de la boucle, la variable somme s'additionne à la valeur de i.
Exercice 17:
Ecrivez un programme en Python qui calcule la somme de 1 à N, où N est saisi par l'utilisateur. En utilisant la boucle "for".
Indication:
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
Exemple de sortie:
Entrer un nombre: 7
La somme de 1 à 7 est 28
Solution:
somme = 0
n=int(input("Entrer un nombre:"))
for i in range (1,n+1):
somme = somme + i
print("La somme de",1,"à",n,"est",somme)
Explication:
La boucle for est itérée n fois. À chaque itération, la valeur de i est ajoutée à la somme somme et i est incrémenté de 1.
Exercice 18:
Écrire un programme en Python qui prend deux entiers de l'utilisateur (un nombre de base et un exposant) et calcule la puissance.
Exemple: Dans le cas de 23
2 est le nombre de base
3 est l'exposant
Et la puissance est égale à 2*2*2
Exemple de sortie:
Entrer la base: 2
Entrer l'exposant: 3
2 ^ 3 = 8
Solution:
b = float(input("Entrer la base: "))
e = int(input("Entrer l'exposant: "))
puissance = 1
for i in range(e):
puissance = puissance * b
print("{0} ^ {1} = {2}".format(b,e,puissance))
Explication:
Voici la logique descriptive étape par étape:
L'utilisateur entre la base et les exposants. Les stocker dans deux variables, b et e.
Déclarer et initialiser une autre variable pour stocker la puissance, puissance = 1.
Exécutez une boucle de 1 à l'exposant, en incrémentant le compteur de la boucle de 1 à chaque itération. La structure de la boucle doit ressembler à for i in range(e): .
Pour chaque itération à l'intérieur de la boucle, multipliez la puissance par la base, c'est-à-dire puissance = puissance * b.
Enfin, à la fin de la boucle, il ne reste plus que la puissance dans la variable puissance.
Exercice 19:
Écrire un programme en Python qui affiche la table de multiplication d'un entier saisi par l'utilisateur, en utilisant la boucle "for".
Exemple de sortie:
Entrer un nombre: 7
7 x 0 = 0
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
7 x 10= 70
Solution:
n=int(input("Entrer un nombre:"))
for i in range (1,11):
print(n," * ",i,"=",i*n)
Explication:
L'utilisateur est d'abord invité à saisir un nombre. Le nombre saisie est analysé à l'aide de la fonction Python input() et stocké dans la variable n. Nous utilisons la boucle for pour afficher la table de multiplication de n. La boucle s'exécute jusqu'au 11. À chaque itération de la boucle, i * n est affiché.
Exercice 20:
Écrire un programme en Python permettant de calculer le plus grand commun diviseur (PGCD) entre deux nombres entiers entrés par l'utilisateur.
Exemple de sortie:
Entrer le 1er nombre: 18
Entrer le 2éme nombre: 45
Le PGCD de 18 et 45 = 9
Solution:
n1 = int(input("Entrer le 1er nombre: "))
n2 = int(input("Entrer le 2éme nombre: "))
# chercher la plus petite des deux valeurs n1 et n2
min = n1 if (n1 < n2) else n2
# Itérer de 1 jusqu'à min+1.
for i in range(1, min+1):
# Vérifier si n1 et n2 sont divisibles par i.
if (n1 % i == 0 and n2 % i == 0):
# Mettre à jour le PGCD avec la valeur actuelle de i
pgcd = i
print("PGCD de {0} et {1} = {2}".format(n1, n2, pgcd))
Explication:
Dans ce programme, deux nombres entiers entrés par l'utilisateur sont stockés dans les variables n1 et n2. Ensuite, nous utilisons if-else pour rechercher la plus petite valeur entre n1 et n2 et affecter le résultat à une variable appelée min (le diviseur).
Dans la boucle for a chaque itération, si n1 et n2 sont exactement divisibles par i, c'est-à-dire si le reste est égal à zéro pour n1 et n2, nous savons que le diviseur actuel est le PGCD. La valeur de i est affectée à la variable "pgcd".
Lorsque la boucle for est terminée, le plus grand diviseur commun de deux nombres est stocké dans la variable "pgcd".
Exercice 21:
Écrire un programme en Python qui calcule les nombres de Fibonacci jusqu'à 50.
Exemple de sortie:
Fibonacci jusqu'à 50: 1 1 2 3 5 8 13 21 34
limit = 8 #nombre de termes
n1 = 0 # 1er élément
n2 = 1 # 2éme élément
next = n2 #l'élément suivant
count = 1 # compteur
print("Fibonacci jusqu'à 50:")
while count <= limit:
print(next, end=" ")
count += 1
n1, n2 = n2, next
next = n1 + n2
print()
La série de Fibonacci est une suite de nombres où chaque nombre est la somme des deux nombres précédents.
Exercice 22:
Écrire un programme en Python qui inverse une chaîne de caractères en utilisant une boucle while.
chaine = "WayToLearnX"
chaine_inverse = ""
i = len(chaine) - 1
while i >= 0:
chaine_inverse += chaine[i]
i -= 1
print(f"Chaîne originale : {chaine}")
print(f"Chaîne inversée : {chaine_inverse}")
Explication:
On initialise une variable chaine_inverse comme une chaîne vide pour y stocker la chaîne inversée.
Une boucle while est utilisée pour parcourir la chaîne à l'envers (de la fin vers le début).
À chaque itération, on ajoute le caractère actuel à chaine_inverse.
Le programme continue jusqu'à ce que tous les caractères soient ajoutés dans l'ordre inverse.
Exercice 23:
Écrivez un programme Python pour afficher la valeur ascii d’un caractère donné.
Exemple de sortie:
Entrez un caractère : A
La valeur ASCII du caractère 'A' est : 65
Solution:
caractere = input("Entrez un caractère : ")
valeur_ascii = ord(caractere)
print(f"La valeur ASCII du caractère '{caractere}' est : {valeur_ascii}")
Explication:
La fonction input() permet à l'utilisateur d'entrer un caractère.
La fonction ord() retourne la valeur ASCII du caractère donné.
Le programme affiche ensuite cette valeur.
Exercice 24:
Écrire un programme en Python qui vérifie si une chaîne est un palindrome. Un palindrome est un mot qui s’écrit de la même manière après l’inversion de ce dernier. ‘ada’ est un palindrome.
Exemple de sortie:
Entrez une chaîne de caractères :
radar
La chaîne est un palindrome.
Solution:
chaine = input("Entrez une chaîne de caractères : ")
# On supprime les espaces et convertit tout en minuscules pour ignorer la casse
chaine = chaine.replace(" ", "").lower()
# Vérification si la chaîne est égale à son inverse
if chaine == chaine[::-1]:
print("La chaîne est un palindrome.")
else:
print("La chaîne n'est pas un palindrome.")
Explication:
On utilise input() pour demander à l'utilisateur d'entrer une chaîne.
La méthode replace() permet de supprimer les espaces pour que les phrases avec espaces puissent être vérifiées.
La méthode lower() convertit tous les caractères en minuscules afin d'ignorer la casse (les majuscules et minuscules sont traitées de manière égale).
Ensuite, on compare la chaîne originale à son inverse (chaine[::-1]), et si elles sont identiques, la chaîne est un palindrome.
Le programme affiche ensuite le résultat.
Éditeur de code Python: Testez votre code en ligne!
QCM Python – Partie 1Questions pratiques pour testez vos connaissances sur la programmation Python à savoir des structures conditionnelles, des opérations logiques, des boucles, des fonctions, etc. Testez votre…Lire plus