ayuda con un problema de python

Chema Cortés ch3m4 en ch3m4.org
Jue Ago 14 13:04:09 CEST 2003


Sonia escribió:
> vale!
> ahora me dice q esta fuera del rango esto:
> 
> if notas[i][posic]>0: #no presentado y no presentado
> 
> 
> es de este trozo de codigo( y de la misma funcion q antes)
> 
>  for i in range (0,len(nif)):
>     # ahora  j es posic:
>       if notas[i][posic]>0: #no presentado y no presentado
>         cont=cont+1 #num de notas
>         sum=sum+notas[i][posic] #suma todas las notas
>   media=sum/cont

Comprueba qué te pasa. Por ejemplo, inserta algún print para ver los 
valores de las variables 'i' y 'posic', así como 'len(notas)' y 
'len(notas[i])'

Apostaría a que has introducido menos 'notas' que las que necesitas.

Cambia el bloque principal a ésto:

nif=["07525818J","18234590V","10437112X","21334801A"]
codigos=["IG20","IG02","IG03","IG04","J11"]
codigo_asig='IG02'

numalumnos=len(nif)
numcodigos=len(codigos)

# Inicializamos la matriz de notas
for i in range(numalumnos):
   notas.append([0.0]*numcodigos)

# Introducimos notas
for i in range(numalumnos):
   print "Alumno:", nif[i]
   for j in range(numcodigos):
     print "Asignatura:",codigos[j]
     notas[i][j]=float(raw_input('Nota: '))

print notas
p1(nif,codigos,notas,codigo_asig)
p2(notas,codigos)




Más información sobre la lista de distribución Python-es