4.1. Les types composés

Nous avons jusqu’ici vu l’importance des variables pour stocker temporairement des données, les actualiser et les réutiliser. Par exemple, on sait utiliser les variables pour enregistrer des nombres entrés par l’utilisateur et les additionner ou multiplier ensuite.

n1 = input("Entrez le 1er nombre : ")
n2 = input("Entrez le 2e nombre : ")
n3 = input("Entrez le 3e nombre : ")
n4 = input("Entrez le 4e nombre : ")
n5 = input("Entrez le 5e nombre : ")

print("Somme des nombres saisis : " + str(n1 + n2 + n3 + n4 + n5))
print("Produit des nombres saisis : " + str(n1 * n2 * n3 * n4 * n5))

Ce qui produira par exemple l’exécution suivante.

Entrez le 1er nombre : 3
Entrez le 2e nombre : 6
Entrez le 3e nombre : -7
Entrez le 4e nombre : 1
Entrez le 5e nombre : 17
Somme des nombres saisis : 20
Produit des nombres saisis : -2142

Le problème de cette méthode est que l’utilisateur est forcé d’entrer 5 nombres car nous déclarons exactement 5 variables. Or on souhaiterait que l’utilisateur puisse entrer un nombre arbitraire de valeurs. On peut trouver une solution grâce à la boucle while dans ce cas précis.

total = 0
product = 1

while True:
    n = input("Entrez un nombre (ou 'fin' si terminé) : ")
    if n == "fin":
        break
    total += int(n)
    product *= int(n)

print("Somme des nombres saisis : " + str(total))
print("Produit des nombres saisis : " + str(product))
Entrez un nombre (ou 'fin' si terminé) : -6
Entrez un nombre (ou 'fin' si terminé) : 43
Entrez un nombre (ou 'fin' si terminé) : 12
Entrez un nombre (ou 'fin' si terminé) : 5
Entrez un nombre (ou 'fin' si terminé) : fin
Somme des nombres saisis : 54
Produit des nombres saisis : -15480

Cependant, impossible dans ce cas de retrouver quels nombres ont été saisis et dans quel ordre, ce qui est gênant si l’on souhaite par exemple que l’utilisateur puisse modifier une valeur après l’avoir entrée. De nombreuses opérations nécessitent également plusieurs parcours des nombres saisis, comme dans le cas du calcul de l’écart type.

Les structures de données offrent justement le moyen de regrouper sous un seul nom un nombre arbitraire de valeurs pour les stocker et les manipuler par la suite. Dans ce reste de ce chapitre, nous passerons en revue les structures de données le plus courantes de Python : les listes, les chaînes de caractères, les tuples, les dictionnaires et les ensembles.