PDA

View Full Version : [Python] IndexError


theUser
29-12-2009, 10:33
Con le poche nozioni che ho, sto scrivendo un programma che calcola il giorno della settimana di una determinata data. L'ho quasi finito, ma c'è questo ciclo che si comporta in maniera stranissima(almeno credo). Ho inserito dei print per vedere un po' come stavano le cose. Ora sto anche pensando che ho sbattuto la testa per una giornata per niente(forse questo ciclo è inutile...), però ormai vorrei sapere perchè si comporta così.

mm è il mese scelto -1

i = 0
while i <= mm:
del giorni[i]
print giorni
print i
print mm
i += 1

outpout
Inserisci la data in formato gg/mm/aaaa.12/12/2016
[28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
0
11
[28, 30, 31, 30, 31, 31, 30, 31, 30, 31]
1
11
[28, 30, 30, 31, 31, 30, 31, 30, 31]
2
11
[28, 30, 30, 31, 30, 31, 30, 31]
3
11
[28, 30, 30, 31, 31, 30, 31]
4
11
[28, 30, 30, 31, 31, 31]
5
11


Traceback (most recent call last):
File "C:\Python26\contagiorno.py", line 133, in <module>
calcola(bisestile, somma, giorni)
File "C:\Python26\contagiorno.py", line 104, in calcola
del giorni[i]
IndexError: list assignment index out of range

Ho provato anche con un for, ma sempre stesso risultato

Torav
29-12-2009, 10:38
succede perché quando cancelli un elemento gli indici "scalano" e quindi nell'ultimo caso il vettore ha solamente 6 elementi dei quali l'ultimo ha indice 5 mentre i = 6 e quindi giustamente ti sputa un IndexError

theUser
29-12-2009, 11:28
grazie mille, non ci avevo pensato :)