Petits exercices en Python sur les listes

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.

Voir une solution

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)

Cacher cette solution

 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.

Voir deux solutions

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=" ")

Cacher ces solutions

 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.

Voir une solution

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)

Cacher cette solution

 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.

Voir une solution

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)

Cacher cette solution

Bonne continuation.

Retour