Usare i numeri negli elenchi

Completato

Finora, sono stati usati nomi di pianeti in un elenco. Ci si potrebbe chiedere come usare altri tipi di dati, ad esempio i numeri.

Non tutti sanno che la gravità su altri pianeti è più forte o più debole a seconda della loro massa o dimensione. La gravità viene spesso misurata in G: la gravità sulla terra è 1 e quella degli altri pianeti viene misurata rispetto alla Terra.

La gravità sulla luna è di 0,166 G, motivo per cui gli astronauti possono saltare così in alto sulla luna. La gravità di Neptune è di 1,12 G, quindi saltare è più difficile. Anche i grandi atleti faticano a saltare oltre 2 metri su Nettuno.

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

Archiviare numeri in elenchi

Per archiviare numeri con cifre decimali in Python, usare il tipo float. Per creare un valore float, immettere il numero con la posizione decimale e assegnarlo a una variabile:

gravity_on_earth = 1.0
gravity_on_the_moon = 0.166

Il codice seguente crea un elenco che mostra le forze gravitazionali di tutti e otto i pianeti nel sistema solare, in G:

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

In questo elenco, gravity_on_planets[0] è la gravità su Mercurio (0,378 G), gravity_on_planets[1] è la gravità su Venere (0,907 G) e così via.

Sulla Terra, un autobus a due piani pesa 124.054 Newton (N). Su Mercurio, dove la gravità è 0,378 G, lo stesso autobus pesa 124,054 Newton moltiplicato per 0,378. In Python, per moltiplicare due valori, si usa il simbolo *.

Nell'esempio seguente è possibile sfruttare il peso di un autobus a due piani su pianeti diversi ottenendo il valore dall'elenco:

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

Usare min() e max() con elenchi

Python include funzioni predefinite per il calcolo dei numeri più grandi e più piccoli in un elenco. La funzione max() restituisce il numero più grande e min() restituisce il più piccolo. min(gravity_on_planets) restituisce quindi il numero più piccolo nell'elenco gravity_on_planets, ovvero 0,377 (Marte).

Il codice seguente calcola i pesi minimi e massimi nel sistema solare usando queste funzioni:

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