Exercice 1 : Impression de caractères
Écrire un programme qui demande un caractère à l’utilisateur, puis qui l’imprime 10 fois sur la même ligne.
caractere = input("Entrez un caractère : ")
for i in range(10):
print(caractere, end='')
Dans ce programme, on utilise la fonction input() pour demander à l'utilisateur de saisir un caractère. Ensuite, on utilise une boucle for avec range(10) pour répéter l'impression du caractère 10 fois. La fonction print() est utilisée pour afficher le caractère, avec l'argument end='' pour éviter d'aller à la ligne à chaque itération de la boucle.
Exercice 2 : Impression de nombres
Écrire un programme qui demande un nombre à l’utilisateur, puis qui imprime les nombres de 1 à ce nombre sur des lignes différentes.
n = int(input("Entrez un entier n : "))
for i in range(1, n+1):
print(i)
Explications : La première ligne demande à l'utilisateur d'entrer un nombre, puis le convertit en entier à l'aide de la fonction int(). La boucle for itère sur les nombres de 1 à nombre inclus en utilisant la fonction range(). À chaque itération de la boucle, le nombre en cours d'itération est imprimé sur une nouvelle ligne à l'aide de la fonction print().
Exercice 3 : Impression de carrés
Écrire un programme qui demande un nombre à l’utilisateur, puis qui imprime un carré de cette taille avec des astérisques (*). Par exemple, si l’utilisateur entre 5, le programme doit imprimer :
*****
*****
*****
*****
*****
taille = int(input("Entrez la taille du carré : "))
for i in range(taille):
print('*' * taille)
Explications : La première ligne demande à l'utilisateur d'entrer la taille du carré, puis le convertit en entier à l'aide de la fonction int(). La boucle for itère sur les nombres de 0 à taille-1. À chaque itération de la boucle, une ligne de taille astérisques est imprimée en utilisant l'opérateur de multiplication *.
Exercice 4 : Calcul de moyenne
Écrire un programme qui demande à l’utilisateur de saisir plusieurs nombres (séparés par des espaces), puis qui calcule et affiche la moyenne de ces nombres.
chiffres = input("Entrez plusieurs nombres séparés par des espaces : ")
liste_chiffres = chiffres.split()
somme = 0
for chiffre in liste_chiffres:
somme += int(chiffre)
moyenne = somme / len(liste_chiffres)
print("La moyenne est :", moyenne)
Explications : La première ligne demande à l'utilisateur d'entrer plusieurs nombres séparés par des espaces, puis stocke cette chaîne de caractères dans la variable chiffres. La deuxième ligne utilise la méthode split() pour diviser la chaîne chiffres en une liste de chaînes de caractères représentant chaque nombre. La variable somme est initialisée à 0, puis une boucle for itère sur chaque élément de la liste liste_chiffres. À chaque itération de la boucle, le nombre en cours est converti en entier à l'aide de la fonction int(), puis ajouté à la variable somme. Une fois que tous les nombres ont été additionnés, la moyenne est calculée en divisant la somme par le nombre total de chiffres (obtenu à l'aide de la fonction len()). Enfin, la moyenne est affichée à l'aide de la fonction print().
Exercice 5 : Calcul de factorielle
Écrire un programme qui demande un nombre à l’utilisateur, puis qui calcule et affiche la factorielle de ce nombre. La factorielle de n est le produit de tous les nombres entiers de 1 à n. Par exemple, la factorielle de 5 est 5 x 4 x 3 x 2 x 1 = 120.
nombre = int(input("Entrez un nombre : "))
factorielle = 1
for i in range(1, nombre+1):
factorielle *= i
print("La factorielle de", nombre, "est :", factorielle)
Explications : La première ligne demande à l'utilisateur d'entrer un nombre, puis le convertit en entier à l'aide de la fonction int(). La variable factorielle est initialisée à 1, puis une boucle for itère sur les nombres de 1 à nombre inclus en utilisant la fonction range(). À chaque itération de la boucle, le nombre en cours d'itération est multiplié par la variable factorielle. Une fois que tous les nombres ont été multipliés, la variable factorielle contient le produit de tous les nombres entiers de 1 à nombre. Enfin, la factorielle est affichée à l'aide de la fonction print().
Exercice 6 : Multiplication de deux nombres
Écrire un programme qui demande deux nombres à l’utilisateur, puis qui calcule et affiche leur produit.
nombre1 = float(input("Entrez le premier nombre : "))
nombre2 = float(input("Entrez le deuxième nombre : "))
produit = nombre1 * nombre2
print("Le produit de", nombre1, "et", nombre2, "est :", produit)
Explications : La première ligne demande à l'utilisateur d'entrer le premier nombre, puis le convertit en nombre décimal à l'aide de la fonction float(). La deuxième ligne demande à l'utilisateur d'entrer le deuxième nombre, puis le convertit également en nombre décimal. La variable produit est calculée en multipliant les deux nombres entrés. Enfin, le résultat est affiché à l'aide de la fonction print() en incluant les nombres d'origine et le produit.
Exercice 7 : Impression de nombres pairs
Écrire un programme qui demande un nombre à l’utilisateur, puis qui imprime tous les nombres pairs de 1 à ce nombre (inclus).
nombre = int(input("Entrez un nombre : "))
print("Les nombres pairs de 1 à", nombre, "sont :")
for i in range(2, nombre+1, 2):
print(i)
Explications : La première ligne demande à l'utilisateur d'entrer un nombre, puis le convertit en entier à l'aide de la fonction int(). La deuxième ligne affiche un message indiquant les nombres pairs à afficher. La boucle for itère sur les nombres pairs de 2 à nombre inclus en utilisant la fonction range() avec un pas de 2. À chaque itération de la boucle, le nombre en cours d'itération est affiché à l'aide de la fonction print().
Exercice 8 : Nombre magique
Écrire un programme qui choisit un nombre aléatoire entre 1 et 100 et demande à l’utilisateur de deviner ce nombre en utilisant une boucle while
. Si l’utilisateur devine correctement, le programme imprime « Bravo, vous avez trouvé le nombre magique ! ». Sinon, le programme indique si le nombre à deviner est plus grand ou plus petit que le nombre proposé et demande à l’utilisateur de proposer un nouveau nombre.
import random
nombre_magique = random.randint(1, 100)
trouve = False
while not trouve:
proposition = int(input("Devinez le nombre magique (entre 1 et 100) : "))
if proposition == nombre_magique:
print("Bravo, vous avez trouvé le nombre magique !")
trouve = True
elif proposition < nombre_magique:
print("Le nombre magique est plus grand.")
else:
print("Le nombre magique est plus petit.")
Le programme commence par générer un nombre aléatoire entre 1 et 100 à l'aide de la fonction randint du module random. Ensuite, il entre dans une boucle while qui continue tant que la variable trouve est fausse. Dans cette boucle, il demande à l'utilisateur de proposer un nombre à l'aide de la fonction input, et convertit la chaîne de caractères en entier à l'aide de la fonction int. Si la proposition de l'utilisateur est égale au nombre magique, le programme affiche un message de félicitations et change la valeur de trouve pour sortir de la boucle. Sinon, le programme indique si le nombre magique est plus grand ou plus petit que la proposition de l'utilisateur, à l'aide d'une instruction if/elif/else. Le programme continue ensuite la boucle en redemandant une nouvelle proposition à l'utilisateur.
Exercice 9 : Suite de Fibonacci
Écrire un programme qui demande à l’utilisateur un nombre entier positif n, puis affiche les n premiers termes de la suite de Fibonacci (chaque terme est la somme des deux termes précédents : 0, 1, 1, 2, 3, 5, 8, 13, 21, …).
n = int(input("Entrez un nombre entier positif : "))
a, b = 0, 1
i = 0
while i < n:
print(a)
a, b = b, a + b
i += 1
Explications :
- On commence par demander à l’utilisateur d’entrer un nombre entier positif
n
. - On initialise
a
etb
à 0 et 1 respectivement, qui représentent les deux premiers termes de la suite de Fibonacci. - On initialise également un compteur
i
à 0. - On utilise une boucle while pour afficher les
n
premiers termes de la suite de Fibonacci :- On affiche le terme
a
. - On calcule le prochain terme en affectant à
a
la valeur deb
et àb
la somme dea
etb
. - On incrémente le compteur
i
à chaque itération.
- On affiche le terme
Exercice 10 : Nombre parfait
Écrire un programme qui demande à l’utilisateur un nombre entier positif n, puis vérifie si ce nombre est un nombre parfait (un nombre est parfait s’il est égal à la somme de ses diviseurs propres, c’est-à-dire les diviseurs différents de lui-même).
n = int(input("Entrez un nombre entier positif : "))
diviseur = 1
somme_diviseurs = 0
while diviseur < n:
if n % diviseur == 0:
somme_diviseurs += diviseur
diviseur += 1
if somme_diviseurs == n:
print(n, "est un nombre parfait !")
else:
print(n, "n'est pas un nombre parfait.")
Le programme commence par demander à l’utilisateur un nombre entier positif n, puis initialise deux variables : diviseur
à 1 (le plus petit diviseur possible) et somme_diviseurs
à 0 (pour stocker la somme des diviseurs propres de n).
Ensuite, il entre dans une boucle while qui continue tant que diviseur
est strictement inférieur à n. Dans chaque tour de boucle, le programme vérifie si diviseur
est un diviseur de n (c’est-à-dire si le reste de la division de n par diviseur
est égal à 0). Si c’est le cas, il ajoute diviseur
à la variable somme_diviseurs
. Ensuite, il incrémente diviseur
de 1 et continue la boucle.
Après la sortie de la boucle, le programme vérifie si somme_diviseurs
est égale à n. Si c’est le cas, il affiche un message indiquant que n est un nombre parfait. Sinon, il affiche un message indiquant que n n’est pas un nombre parfait.
Exercice 11 : Palindrome
Écrire un programme qui demande à l’utilisateur une chaîne de caractères, puis vérifie si cette chaîne est un palindrome (c’est-à-dire qu’elle peut être lue de la même façon de gauche à droite et de droite à gauche).
# Demander une chaîne de caractères à l'utilisateur
chaine = input("Entrez une chaîne de caractères : ")
# Initialiser les index pour parcourir la chaîne
deb = 0
fin = len(chaine) - 1
# Boucler sur la chaîne jusqu'à ce que les index se croisent
while deb < fin:
# Vérifier si les caractères correspondants sont identiques
if chaine[deb] != chaine[fin]:
print("La chaîne n'est pas un palindrome.")
break
# Déplacer les index pour continuer la comparaison
deb += 1
fin -= 1
else:
print("La chaîne est un palindrome.")
Explication : On demande une chaîne de caractères à l'utilisateur en utilisant la fonction input. On initialise les index deb et fin pour parcourir la chaîne. deb correspond au premier caractère et fin correspond au dernier caractère. On utilise une boucle while pour parcourir la chaîne jusqu'à ce que les index deb et fin se croisent. Dans la boucle, on vérifie si les caractères correspondants (à la position deb et fin) sont identiques en utilisant l'opérateur != (différent de). Si c'est le cas, on passe à la comparaison suivante en déplaçant les index deb et fin d'une position vers le centre de la chaîne (en augmentant deb et en diminuant fin). Si à un moment donné les caractères correspondants sont différents, on sort de la boucle while avec l'instruction break et on imprime un message indiquant que la chaîne n'est pas un palindrome. Si la boucle while se termine normalement (c'est-à-dire que les index deb et fin se sont croisés sans que les caractères correspondants soient différents), on imprime un message indiquant que la chaîne est un palindrome. Notez l'utilisation de l'instruction else qui s'applique à la boucle while et qui est exécutée uniquement si la boucle se termine normalement (sans utiliser break).
Exercice : jeu de nombres
Le but de ce programme est de créer un jeu où deux joueurs peuvent saisir chacun leur tour un nombre. Les nombres saisis par chaque joueur sont cumulés, et le premier joueur qui atteint un total avec une unité de zéro et qui est également un nombre pair gagne la partie. Le programme utilise une boucle while
/for pour continuer à demander aux joueurs de saisir des nombres tant que le total cumulé n’est pas un nombre pair avec une unité de zéro. À chaque tour, le programme demande au joueur en cours de saisir un nombre avec la fonction input()
, ajoute ce nombre au total cumulé et vérifie si le total cumulé est un nombre pair avec une unité de zéro. Si le total cumulé est un nombre pair avec une unité de zéro, le programme annonce le gagnant.
total = 0 winner = None player=1 for i in range(10): num = int(input("Joueur ",player," entrez un nombre:") total += num if total % 10 == 0 and num % 2 == 0: winner = player break if player==1: player=2 else: player=1 if i <10: print("Le joueur {} a gagné avec un total de {}!".format(winner, total)) else: print("Personne n'a gagné. Le total final était {}.".format(total))