[Programación]Problema raro en if (): else: en python WTF???

Manuel Naranjo naranjo.manuel en gmail.com
Jue Ago 23 11:26:39 ART 2012


es un error común y me ha pasado más de una vez:

(y<NR) evalua a [true] o [false] lo cual es un objeto distinto de null y 
hace que el if pase derecho. Saca los ()

On 23/08/12 11:01, Horacio Castellini wrote:
> Buenas, este problema me desafía todo mi sentido común... lo que busco
> en una matriz A de NRxNR es hallar las codiagonales no nulas y su
> longitud..
>
> AVISO: Este algoritmo funciona, lo he probado en PERL!!
>
> Pero el siguiente código no se por qué LM y S se mantienen en cero???
> luego del ELSE: cuando s+=1 si se incrementa en 1!! como lo compruebo en
> el primer "print"  WTF!!!
>
> d=[]
> d=[0]*NR
> LM=0
> s=0
> for c in range(5,NR):
>     s=0
>     for x in range(NR):
>         y=x+c
>         if (y<NR):
>             if (A[x][y]==1):
>                 s+=1
>                 print s # aca da <> 0
>             else:
>                 print s,LM # aca me da =0 ????
>                 if (s>LM):
>                     LM=s
>                 d[s]+=1
>                 s=0
> print "Diagonal maxima %d" % LM
>
> Alguien me puede decir que cuernos le pasa al if??
> _______________________________________________
> Programacion mailing list
> Programacion en lugro.org.ar
> http://lugro.org.ar/mailman/listinfo/programacion
>



Más información sobre la lista de distribución Programacion