error en python corre bien pero marca error

Iniciado por Joe Fraddy, 25 Agosto 2015, 18:53 PM

0 Miembros y 2 Visitantes están viendo este tema.

Joe Fraddy

Tengo un script como este:

Código (python) [Seleccionar]
candela = {
    "nombre":"Candela",
    "tareas": [90, 97, 75, 92],
    "pruebas": [88, 40, 94],
    "examenes": [75, 90]
    }
milagros = {
    "nombre":"Milagros",
    "tareas": [100.0, 92.0, 98.0, 100.0],
    "pruebas": [82.0, 83.0, 91.0],
    "examenes": [89.0, 97.0]
    }
ramiro = {
    "nombre":"Ramiro",
    "tareas": [0.0, 87.0, 75.0, 22.0],
    "pruebas": [0.0, 75.0, 78.0],
    "examenes": [100.0, 100.0]
}

alumnos=[candela, milagros, ramiro]
for x in [0,1,2,3]:
    print alumnos[x]["nombre"]
    print alumnos[x]["tareas"]
    print alumnos[x]["pruebas"]
    print alumnos[x]["examenes"]



Y corre bien, hace lo que quiero, pero al último genera este error:

Traceback (most recent call last):
  File "alumnos.py", line 22, in <module>
    print alumnos[x]["nombre"]
IndexError: list index out of range


engel lex

alumnos=[candela, milagros, ramiro]
for x in [0,1,2,3]:


Es decir primero le dices "tienes un array con 3 valores (candela, milagros, ramiro) pero necesito que me del el valor de los primeros 4 (0,1,2,3) que crees que sucederá al leer el cuarto valor(3)?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Joe Fraddy

Si, ya entiendo era un error lógico, solo tenia que poner:

Código (python) [Seleccionar]
for x in [0,1,2]:

Porque el cuarto valor no existe xD :-)

engel lex

Para simplificarlo mas puedes hacerlo de las siguientes 2 maneras

Código (python) [Seleccionar]
for x in range(3):

Range 3 retorna un array 3 valores empezando en 0

Pero mas simple aún

Código (python) [Seleccionar]
for x in alumnos:

Este ultimo es especialmente util cuando el array es asociativo o no sabes cuantos valores tiene
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.