Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Yidu en 10 Febrero 2017, 18:54 pm



Título: ¿Si es falso por que se entra en el bucle while? [PYTHON]
Publicado por: Yidu en 10 Febrero 2017, 18:54 pm
Hola de nuevo...

Estudiando el tema de los nodos y sus recorridos me surgio una duda con el bucle while. Para entrar en un bucle while la condicion debe ser verdadera. Hasta ahi nada nuevo. Osea, solo que pongamos:

Código
  1. while 1:
  2.    pass

Entramos en el bucle. Y esto es por que 1 es True.

Código
  1. 1 == True
  2. True

Pero...

Código
  1. 2 == True
  2. False
  3.  

No devuelve False ¿Entonces como es que se entra en el bucle while?

Código
  1. x = 0
  2. while 2:
  3.    print('hola')
  4.    x += 1
  5.    if x == 5:
  6.        break
  7.  

Con este codigo se ejecuta el bucle. Seguro que la duda es muy tonta y alguna explicacion tiene que se me ha pasado por alto.

El codigo del nodo es el tipico:


Código
  1. class Nodo:
  2.    def __init__(self, carga = None, prox = None):
  3.        self.carga = carga
  4.        self.prox = prox
  5.  
  6.    def __str__(self):
  7.        return str(self.carga)
  8.  
  9.  
  10. n4 = Nodo(4)
  11. n3 = Nodo(3, n4)
  12. n2 = Nodo(2, n3)
  13. n1 = Nodo(1, n2)
  14.  
  15.  
  16.  
  17. def recorrer(nodo):
  18.    print(nodo)
  19.    while nodo:
  20.        print(nodo)
  21.        nodo = nodo.prox
  22.  
  23. # Aqui podemos ver como n2 vale 2 y si es false ¿Por que se entra en while?    
  24. recorrer(n2)
  25.  


Título: Re: ¿Si es falso por que se entra en el bucle while? [PYTHON]
Publicado por: xiruko en 10 Febrero 2017, 19:07 pm
Hola,

Cuando se usan enteros para algún condicional, =0 es falso y !=0 verdadero.

Saludos!