Intervallo

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