# Lezione 9 - Esercizio 2
# Creare un programma che accetta una serie di voti (come input dell'utente) e calcola il voto medio.
# Il ciclo termina quando l'utente inserisce "fine".
#
# 1. Chiedere all'utente di inserire un voto alla volta.
# 2. Verificare che l'input sia un numero intero positivo; ignorare gli input non validi con 'continue'.
# 3. Terminare l'input con la parola chiave "fine".
# 4. Calcolare e stampare il voto medio al termine dell'inserimento.
#
# Note e consigli:
# - Utilizzare 'continue' per ignorare gli input non validi.
# - Calcolare il voto medio solo dopo il completamento di tutti gli inserimenti validi.
# - Utilizzare una variabile per tenere traccia della somma totale dei voti e del numero di input validi.

somma_voti = 0  # Questa variabile contiene il TOTALE dei voti inseriti dall'utente
conteggio_voti = 0  # Questa variabile contiene il NUMERO di voti inseriti dall'utente

while True:
    voto = input('Inserisci un voto (numero intero positivo) oppure scrivi "fine" per calcolare la media: ')
    if voto == "fine":
        break
    
    voto = int(voto)  # Qui possiamo effettuare il casting a intero perché supponiamo che l'utente, se non inserisce
                      # la stringa "fine", allora ha per forza inserito un numero intero, non qualche altra cosa.
    
    if voto < 0:  # Se il voto è negativo:
        print("Il voto che hai inserito non è conteggiato nella media perché è negativo")  # Spieghiamo all'utente che non verrà conteggiato
        continue  # Stoppiamo l'iterazione corrente del ciclo while e proseguiamo con la successiva, senza eseguirne la parte restante
    
    somma_voti += voto  # Aggiungiamo il voto alla variabile che tiene conto del TOTALE dei voti
    conteggio_voti += 1  # Aggiungiamo 1 alla variabile che tiene conto del numero dei voti

if conteggio_voti < 1:  # Se il numero di voti inseriti è 0 (o meno), allora informiamo l'utente che non è possibile calcolarne la media
    print("Ma che fai, mettine almeno uno. Pupazzo.")
else:  # Altrimenti, possiamo calcolare la media e printarla all'utente.
    media = somma_voti / conteggio_voti
    print(f"Il voto medio è {media:.2f}.")