[Python-es] Por que el código perl anda y el python no?? para jugar y romperse la cabeza contra el teclado..

Horacio horacio9573 en gmail.com
Jue Ago 23 19:38:25 CEST 2012


En el hilo anterior me expresé de manera incompleta... acá está la
pregunta correcta...

a ver este código perl hace lo que se espera... y da como resultado LM=3...
$A[0][0]=0; $A[0][1]=1; $A[0][2]=0; $A[0][3]=0;
$A[1][0]=1; $A[1][1]=0; $A[1][2]=1; $A[1][3]=0;
$A[2][0]=0; $A[2][1]=1; $A[2][2]=0; $A[2][3]=1;
$A[3][0]=0; $A[3][1]=0; $A[3][2]=1; $A[3][3]=0;

$NR=4;
$LM=0;

for($c=0;$c<$NR;$c++){
    $s=0;
    for($x=0;$x<$NR;$x++){
    $y=$x+$c;
    if(($y<$NR)||($x<$NR)){
        if($A[$x][$y]==1){
        $s++;
                print $x." ".$y." ".$s."\n";
        } else{
        if($s>$LM){
            $LM=$s;
        }
                print $x." ".$y." ".$s." ".$LM."\n";
        $d[$s]++;
        $s=0;
        }
    }
    }
}

print $LM."\n";

Este código python da como resultado LM=0, no da lo que se debe...

A=[[0,1,0,0],[1,0,1,0],[0,1,0,1],[0,0,1,0]]

NR=4

d=[]
d=[0]*NR
LM=0
for c in range(NR):
   s=0
   for x in range(NR):
       y=x+c
       if  y<NR :
           if A[x][y]==1 :
               s+=1
               print x,y,s
           else:
               print x,y,s,LM
               if  s>LM :LM=s
               d[s]+=1
               s=0
print "Diagonal maxima %d" % LM

Ensayenlo,,, y me dicen que cuernos pasa... antes que empiece a pensar
que python es ...


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