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
+---------------+-----------+
| 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