Exercice Corrigé: Boucle While en Python

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 en Python qui affiche n fois « Hello ». En utilisant la boucle « while ».

Exemple de sortie:

Entrez un nombre: 5
Hello
Hello
Hello
Hello
Hello
Solution:

#saisir le nombre d'itération
n = int(input("Entrez un nombre:"))
i = 0
while i < n:
    print('Hello')
    i += 1

Explication:

Dans ce programme, la boucle while continuera à s'exécuter tant que la variable i est inférieure ou égale à n. À l'intérieur de la boucle, le texte est affiché, puis la variable i est incrémentée de 1 jusqu'à ce que la condition ne soit plus remplie.

 

Exercice 2:

Écrire un programme Python pour deviner un nombre entre 1 et 9.

Note : L'utilisateur est invité à entrer un chiffre. Si l'utilisateur se trompe, le message apparaît à nouveau jusqu'à ce qu'il devine correctement. S'il devine correctement, l'utilisateur reçoit un message « Bien joué ! » et le programme se termine.

Exemple:

Devinez un nombre entre 1 et 10: 8
Devinez un nombre entre 1 et 10: 3
Devinez un nombre entre 1 et 10: 5
Bien joué !
Solution:

# Importer le module « random » pour générer des nombres aléatoires
import random

# Générer un nombre aléatoire entre 1 et 10 (inclus) comme nombre cible.
nbr_cible, random_nbr = random.randint(1, 10), 0

# Démarrer une boucle qui se répète jusqu'à ce que le nombre deviné corresponde au nombre cible.
while nbr_cible != random_nbr:
    # Inviter l'utilisateur à saisir un nombre compris entre 1 et 10 et le convertir en un nombre entier
    random_nbr = int(input('Devinez un nombre entre 1 et 10:'))

# Afficher un message indiquant la réussite de la devinette une fois que le bon chiffre a été deviné.
print('Bien joué!')
 

Exercice 3:

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 4:

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 5:

Ecrire un programme en Python qui compte le nombre de chiffres dans un nombre saisi par l'utilisateur.

Exemple de sortie:

Donner un nombre: 9876
Le nombre de chiffres est 4
Solution:

n = int(input("Entrer un nombre: "))
i = 0
while (n != 0):
    i += 1
    n //= 10 #Pour diviser, en Python, vous utilisez deux slashs(//)
print("Le nombre de chiffres est ",i)

Explication:

Le programme divise le nombre saisi par l'utilisateur par 10 dans la boucle while jusqu'à ce que le résultat atteigne zéro. Le nombre d'itérations correspondra au nombre de chiffres.

L'entier saisi par l'utilisateur est stocké dans la variable n. Ensuite, la boucle while est itérée jusqu'à ce que la condition (n != 0) soit évaluée à 0 (False).

  • Après la première itération, la valeur de n est de 987 et le compteur est incrémenté à 1.
  • Après la deuxième itération, la valeur de n sera de 98 et le compteur sera incrémenté à 2.
  • Après la troisième itération, la valeur de n sera de 9 et le compteur sera incrémenté à 3.
  • Après la quatrième itération, la valeur de n sera 0 et le compteur sera incrémenté à 4.
  • La condition de la boucle est alors évaluée à false et la boucle se termine.
 

Exercice 6:

Ecrivez un programme en Python pour inverser les chiffres d'un nombre saisi par l'utilisateur.

Exemple de sortie:

Donner un nombre: 123
Le nombre inversé est 321
Solution:

Nbr = int(input("Entrer un nombre: "))
rev = 0
  
while Nbr > 0 :
	rev = rev * 10 
	rev = rev + Nbr%10 
	Nbr = Nbr//10

print("Le nombre inversé est",rev)

Explication:

Voici ce que fait le programme ci-dessus:

  • Initialise la variable rev = 0.
  • 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.

Nbr = 123
rev = 0
rev = rev * 10 + Nbr % 10 = 0 * 10 + 123 % 10 = 3
Nbr = Nbr/ 10 = 12
rev = rev * 10 + Nbr % 10 = 3 * 10 + 12 % 10 = 32
Nbr = Nbr/ 10 = 1
rev = rev * 10 + Nbr % 10 = 32 * 10 + 1 % 10 = 321
Nbr = Nbr/10 = 0.

Le résultat sera donc 321.

 

Exercice 7:

É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
# Initialiser les variables 'x' et 'y' avec les valeurs 0 et 1, respectivement.
x, y = 0, 1

# Exécuter la boucle while jusqu'à ce que la valeur de 'y' devienne supérieure ou égale à 50
while y < 50:
    # Afficher la valeur courante de 'y'
    print(y)
    
    # Mettre à jour les valeurs de 'x' et 'y' en utilisant l'affectation
    # simultanée, où 'x' devient la valeur précédente de 'y' et 'y' devient la somme de 'x' et de la valeur précédente de 'y'
    x, y = y, x + y

La série de Fibonacci est une suite de nombres où chaque nombre est la somme des deux nombres précédents.

 
 

Exercice 8:

É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 9:

Écrire un programme en Python qui affiche une Pyramide complète avec des *, en fonction d'un entier N saisi par l'utilisateur.

Exemple de sortie:

Entrer le nombre de lignes: 5
        *
      * * *
    * * * * *
  * * * * * * *
* * * * * * * * *
Solution:

nbrLignes = int(input("Entrer le nombre de lignes: "))

k = 0

for i in range(1, nbrLignes+1):
    for espace in range(1, (nbrLignes-i)+1):
        print(end="  ")
   
    while k!=(2*i-1):
        print("* ", end="")
        k += 1
   
    k = 0
    print()

Explication:

Ce type de pyramide est un peu plus compliqué que celles que nous avons vues précédemment.

  • La boucle extérieure commence à partir de i = 1 jusqu'à i = nbrLignes + 1.
  • Parmi les deux boucles intérieures, la boucle for affiche les espaces requis pour chaque ligne en utilisant la formule (nbrLignes-i)+1, où nbrLignes représentent le nombre total de lignes et i le numéro de la ligne actuelle.
  • La boucle while affiche le nombre d'étoiles requis en utilisant la formule 2 * i - 1. Cette formule donne le nombre d'étoiles pour chaque ligne, où ligne est i.
 

Exercice 10:

Écrivez un programme Python qui accepte une séquence de lignes (avec une ligne de terminaison vide) en entrée et qui affiche les lignes en sortie (tous les caractères en minuscules).

Exemple:

waytolearnx
python

WAYTOLEARNX
PYTHON
Solution:

# Créer une liste vide nommée lignes
lignes = []

# Continuer à demander à l'utilisateur de saisir des données indéfiniment jusqu'à ce qu'une ligne vierge soit saisie.
while True:
    # Inviter l'utilisateur à saisir une ligne de texte
    l = input("Saisir une ligne de texte (chaîne vide pour quitter):")
    
    # Vérifier si la ligne saisie n'est pas vide (chaîne non vide)
    if l:
        # Convertir la ligne saisie en majuscules et l'ajouter à la liste 'lignes'.
        lignes.append(l.upper())
    else:
        # Si la ligne saisie est vide, sortir de la boucle
        break;

# Parcourir chaque ligne de la liste 'lignes'
for l in lignes:
    # Affiche chaque ligne (convertie en majuscules) de la liste 'lignes'.
    print(l) 
 

Exercice 11:

Écrire un programme Python pour vérifier la validité des mots de passe saisis par les utilisateurs.

Validation:

  • Au moins 1 lettre entre [a-z] et 1 lettre entre [A-Z].
  • Au moins 1 chiffre entre [0-9].
  • Au moins 1 caractère de [$#@].
  • Longueur minimale de 6 caractères.
  • Longueur maximale de 16 caractères.

Exemple:

Entrez votre mot de passe: X2y@908t
Mot de passe valide 
Solution:

# Importer le module 're' pour les expressions régulières
import re

# Invite l'utilisateur à saisir un mot de passe et le stocke dans la variable p.
p = input("Entrez votre mot de passe:")

# Mettez 'x' à True pour entrer dans la boucle while
x = True

# Démarrer une boucle while qui continue jusqu'à ce que 'x' soit True
while x:  
    # Vérifier les conditions d'un mot de passe valide :
    # La longueur du mot de passe doit être comprise entre 6 et 12 caractères
    if (len(p) < 6 or len(p) > 12):
        break
    # Le mot de passe doit contenir au moins une lettre minuscule.
    elif not re.search("[a-z]", p):
        break
    # Le mot de passe doit contenir au moins un chiffre
    elif not re.search("[0-9]", p):
        break
    # Le mot de passe doit contenir au moins une lettre majuscule.
    elif not re.search("[A-Z]", p):
        break
    # Le mot de passe doit contenir au moins un caractère spécial parmi '$', '#', '@'.
    elif not re.search("[$#@]", p):
        break
    # Le mot de passe ne doit pas contenir d'espace.
    elif re.search("\s", p):
        break
    else:
        # Si toutes les conditions sont remplies, afficher 'Mot de passe valide' et mettre 'x' à False pour sortir de la boucle.
        print("Mot de passe valide")
        x = False
        break

# Si 'x' reste True, afficher 'Mot de passe non valide'
if x:
    print("Mot de passe non valide")
 

Éditeur de code Python: Testez votre code en ligne!


 
QCM Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *