# Lezione 10 - Esercizio 2
# Creare una lista con alcuni numeri e chiedere all'utente di modificare
# un elemento della lista fornendo l'indice e il nuovo valore.
# Dopo la modifica, stampare la nuova lista.

lista = [3, 5, 7, 8, 50, 25, 102, 30]

print(f"Questo programma permette di modificare un elemento della lista {lista} specificando l'indice dell'elemento da modificare e il nuovo valore.")

indice = int(input("Inserisci l'indice dell'elemento da modificare: "))
nuovo_valore = int(input("Inserisci il nuovo valore: "))

# Controlliamo se l'indice inserito è valido per la lista.
# -len(lista) <= indice < len(lista) è l'intervallo degli indici validi per la lista.
# -len(lista) è l'indice del primo elemento della lista, acceduto con lista[-len(lista)] (i.e.: lista[-8]).
# Andando oltre (in negativo) si andrebbe in errore perché lista[-9] non esiste.
# Discorso analogo per l'indice massimo, len(lista) - 1, che è l'indice dell'ultimo elemento della lista.
if -len(lista) <= indice < len(lista):
    lista[indice] = nuovo_valore
    print(f"La nuova lista è {lista}.")
else:
    print(f"L'indice {indice} inserito non è valido per la lista {lista}. Il range degli indici validi è da {-len(lista)} a {len(lista) - 1}.")
