Vous pouvez copier-coller les solutions proposées directement dans votre éditeur de programmes Python. Veillez toutefois à retaper vous-même certains programmes afin de vous exercer pour quand vous devrez taper vos programmes personnels.
Les exercices ci-dessous sont extraits/inspirés de l'excellent livre « L’informatique simplement » de Juraj Hromkovič et Tobias Kohn aux édition LEP (Suisse). Ce livre est hautement conseillé aux débutant·e·s en Python.
Exercice 1 : Le programme demande à l'utilisateur combien il y aura de participants à la réunion. Ensuite le programme demande l'âge de tous les participants. Enfin le programme affiche par ordre croissant les âges de tous les participants.
Remarque : cette solution ne tient pas compte du fait que l'utilisateur peut entrer n'importe quels caractères au clavier, ce programme n'est donc pas robuste.
age_participants = [ ]
nombre = int(input("Quel est le nombre de participants ? "))
for i in range (nombre):
age = int(input("Quel est l'âge de ce participant ? "))
age_participants.append(age)
age_participants.sort()
print ("Voici les âges des participants par ordre croissant : ",age_participants)
Exercice 2 : Le programme contient au départ une liste des 10 nombres de 1 à 10. Le programme demande ensuite de quel nombre les multiples de cette liste doivent être remplacés par une étoile (*). Le programme affiche enfin la liste des nombres et des étoiles.
Remarque : ces solutions ne tiennent pas compte du fait que l'utilisateur peut entrer n'importe quels caractères au clavier, ces programmes ne sont donc pas robustes.
suite_nombres = [1,2,3,4,5,6,7,8,9,10]
efface = int(input("De quel nombre inférieur à 11 dois-je enlever les multiples ? : "))
for nombre in suite_nombres :
if int (nombre / efface) == (nombre / efface):
print ("* ,", end=" ")
else:
print (nombre,",", end=" ")
Une autre solution est d'utiliser la fonction modulo, représentée par le sigle %, et qui donne le reste de la division entière. Le programme se présentera comme ceci.
suite_nombres = [1,2,3,4,5,6,7,8,9,10]
efface = int(input("De quel nombre inférieur à 11 dois-je enlever les multiples ? : "))
for nombre in suite_nombres :
if nombre % efface == 0:
print ("* ,", end=" ")
else:
print (nombre,",", end=" ")
Exercice 3 : Le programme possède au départ une liste de nombres pairs et impairs mélangés. Au final, le programme doit afficher la liste des nombres pairs et la liste des nombres impaires, les deux liste étant classées par ordre décroissant des nombres.
Remarque : cette solution n'effectue aucune lecture au clavier, la question de robustesse ne se pose donc pas.
liste_de_nombres = [12,36,5,17,124,54,51,112]
pairs = [ ]
impairs = [ ]
for nombre in liste_de_nombres :
if nombre % 2 == 0 :
pairs.append(nombre)
else :
impairs.append(nombre)
pairs.sort()
pairs.reverse()
impairs.sort()
impairs.reverse()
print ("Les nombres pairs de la liste, par ordre décroissant, sont :", pairs)
print ("Les nombres impairs de la liste, par ordre décroissant, sont :", impairs)
Exercice 4 : Le programme possède au départ une liste de nombres que vous choisissez au hasard. Le programme affiche alors ma moyenne des nombres de cette liste.
Remarque : cette solution n'effectue aucune lecture au clavier, la question de robustesse ne se pose donc pas.
liste = [0,1,2,3,4,5,6]
somme = 0
for nombre in liste :
somme += nombre
moyenne = somme / len(liste)
print ("La moyenne des nombres de la liste est",moyenne)
Bonne continuation.