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