Utiliser des nombres dans des listes

Effectué

Jusqu’à présent, vous avez utilisé des noms de planètes dans une liste. Vous vous demandez peut-être si vous pouvez utiliser d’autres types de données, par exemple des nombres.

Saviez-vous que la gravité sur d’autres planètes est plus forte ou plus faible selon la masse ou la taille de la planète ? La gravité est souvent mesurée à l’aide de la constante G. La gravité sur Terre est égale à 1, et celle des autres planètes est mesurée par rapport à celle de la Terre.

La gravité sur la Lune est de 0,166 G, ce qui explique pourquoi les astronautes peuvent sauter si haut sur la Lune. La gravité sur Neptune est de 1,12 G, il est donc plus difficile de sauter. Même les meilleurs athlètes auraient du mal à sauter à plus de 2 mètres sur Neptune.

Neptune as seen from Voyager 2 from 4.4 million miles, image credit NASA.

Stocker des nombres dans des listes

Pour stocker des nombres avec des décimales en Python, vous utilisez le type float. Pour créer une valeur de type float, vous devez entrer le nombre à virgule et l’affecter à une variable :

gravity_on_earth = 1.0
gravity_on_the_moon = 0.166

Le code suivant crée une liste qui montre les forces de gravité des huit planètes du système solaire, exprimées en G :

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]

Dans cette liste, gravity_on_planets[0] représente la gravité sur Mercure (0,378 G), gravity_on_planets[1] représente la gravité sur Vénus (0,907 G), etc.

Sur Terre, un bus à deux étages pèse 124 054 newtons (N). Sur Mercure, où la gravité est de 0,378 G, le même bus pèse 124 054 newtons multiplié par 0,378. En Python, pour multiplier deux valeurs, vous utilisez le symbole *.

Dans l’exemple suivant, vous pouvez calculer le poids d’un bus à deux étages sur différentes planètes en récupérant la valeur à partir de la liste :

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]
bus_weight = 124054 # in Newtons, on Earth

print("On Earth, a double-decker bus weighs", bus_weight, "N")
print("On Mercury, a double-decker bus weighs", bus_weight * gravity_on_planets[0], "N")
On Earth, a double-decker bus weighs 124054 N
On Mercury, a double-decker bus weighs 46892.4 N

Utiliser min() et max() avec des listes

Python dispose de fonctions intégrées permettant de calculer les plus grands et les plus petits nombres d’une liste. La fonction max() retourne le plus grand nombre, et min() retourne le plus petit. Ainsi, min(gravity_on_planets) retourne le plus petit nombre de la liste gravity_on_planets, qui est 0,377 (Mars).

Le code suivant calcule le poids minimal et maximal dans le système solaire à l’aide de ces fonctions :

gravity_on_planets = [0.378, 0.907, 1, 0.377, 2.36, 0.916, 0.889, 1.12]
bus_weight = 124054 # in Newtons, on Earth

print("On Earth, a double-decker bus weighs", bus_weight, "N")
print("The lightest a bus would be in the solar system is", bus_weight * min(gravity_on_planets), "N")
print("The heaviest a bus would be in the solar system is", bus_weight * max(gravity_on_planets), "N")
On Earth, a double-decker bus weighs 124054 N
The lightest a bus would be in the solar system is 46768.35 N
The heaviest a bus would be in the solar system is 292767.44 N