Campo di variabilità, range
Soluzione 1
lista = [1, 8, 1, 1, 9, 2, 8]
minimo = lista[0] # 1
massimo = lista[0] # 1
n = len(lista) # 7
for i in range(1, n): # 1..6
x = lista[i]
if(x < minimo):
minimo = x
if(x > massimo):
massimo = x
intervallo = massimo-minimo # 9-1 = 8
+---+---------------+-----------+
| i | x | minimo | massimo |
+---+-----------+---+-------+---+
| | | | 1 | | 1 |
| 1 | 8 | 8 ? 1 | 1 | 8 ? 1 | 8 | *
| 2 | 1 | 1 ? 1 | 1 | 1 ? 8 | 8 |
| 3 | 1 | 1 ? 1 | 1 | 1 ? 8 | 8 |
| 4 | 9 | 9 ? 1 | 1 | 9 ? 8 | 9 | *
| 5 | 2 | 2 ? 1 | 1 | 2 ? 8 | 9 |
| 6 | 8 | 8 ? 1 | 1 | 8 ? 8 | 9 |
+---+-----------+---+-------+---+
Soluzione 2
Si semplifica il codice del blocco for utilizzando la costante math.inf
import math
lista = [1, 8, 1, 1, 9, 2, 8]
minimo = +math.inf
massimo = -math.inf
n = len(lista)
for x in lista:
if(x < minimo):
minimo = x
if(x > massimo):
massimo = x
intervallo = massimo-minimo
+---------------+-----------+
i | x | minimo | massimo |
+-----------+---+-------+---+
| | | + | | - |
0 | 1 | 1 ? + | 1 | 1 ? - | 1 | **
1 | 8 | 8 ? 1 | 1 | 8 ? 1 | 8 | *
2 | 1 | 1 ? 1 | 1 | 1 ? 8 | 8 |
3 | 1 | 1 ? 1 | 1 | 1 ? 8 | 8 |
4 | 9 | 9 ? 1 | 1 | 9 ? 8 | 9 | *
5 | 2 | 2 ? 1 | 1 | 2 ? 8 | 9 |
6 | 8 | 8 ? 1 | 1 | 8 ? 8 | 9 |
+-----------+---+-------+---+
Soluzione 3
Utilizza le funzioni predefinite max() e min()
lista = [1, 8, 1, 1, 9, 2, 8]
minimo = min(lista)
massimo = max(lista)
intervallo = massimo-minimo