ayuda con un problema de python
Sonia
siosss en ono.com
Jue Ago 14 17:11:02 CEST 2003
hola!
acabo de cambiar eso q me dijiste. lo de index no lo he puesto pq no lo
hemos dado. ahora ya me imprime la matriz, pero en la linea q he cambiado,
me da un error: 'typeError: iteration over non-sequence'
la linea era esta:
for j in len(codigos):
el procedimiento entero este:
def p1(nif, codigos,notas,codigo_asig):
#mira la posicion del codigo_asig en el vector codigos
#para saber la columna a recorrer en la matriz
cont=0
for j in len(codigos):
if codigos[j]==codigo_asig:
posic=j #columna a recorrer
media=0
sum=0
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
for i in range(0,len(nif)):
if notas[i][posic]>media:
print nif[i]
y el p.pal este:
nif=["07525818J","18234590V","10437112X","21334801A"]
codigos=["IG20","IG02","IG03","IG04","J11"]
codigo_asig='IG02'
n=int(raw_input('Introduce el numero de alumnos: '))
m=int(raw_input('Introduce el numero de asignaturas:'))
notas=[]
for i in range(n):
notas.append([0.0]*m)
for i in range(0,n):
for j in range(0,m):
notas[i][j]=float(raw_input('Valor de la matriz: '))
print notas
p1(nif, codigos,notas,codigo_asig)
p2(notas,codigos)
----- Original Message -----
From: Chema Cortés <ch3m4 en ch3m4.org>
To: <python-es en aditel.org>
Sent: Thursday, August 14, 2003 2:29 AM
Subject: [Python-es] Re: ayuda con un problema de python
> Sonia escribió:
>
> > ahora ya me deja introducir toda la matriz, pero despues me da el mismo
> > error de q debe de ser entero en el 1er procedimiento. justo en esta
linea:
> >
> > if codigos[j]==codigo_asig:
> >
> > q pertenece a este procedimiento:
> >
> > def p1(nif, codigos,notas,codigo_asig):
> > #mira la posicion del codigo_asig en el vector codigos
> > #para saber la columna a recorrer en la matriz
> > cont=0
> > for j in codigos:
> > if codigos[j]==codigo_asig:
> > posic=j #columna a recorrer
>
> La variable 'j' va teniendo los valores de cada elemento de la lista que
> has puesto en el 'for', en este caso serían los códigos de la
> asignatura. Debería ser:
>
> for j in len(codigos):
> if codigos[j]==codigo_asig:
> posic=j
>
> Pero ya que estamos, mi consejo es que lo hagas utilizando el método
> .index():
>
> posic=codigo.index(codigo_asig)
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es