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