¿Si es falso por que se entra en el bucle while? [PYTHON]

Iniciado por Yidu, 10 Febrero 2017, 18:54 PM

0 Miembros y 1 Visitante están viendo este tema.

Yidu

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 (python) [Seleccionar]
while 1:
   pass


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

Código (python) [Seleccionar]
1 == True
True


Pero...

Código (python) [Seleccionar]
2 == True
False


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

Código (python) [Seleccionar]
x = 0
while 2:
   print('hola')
   x += 1
   if x == 5:
       break
   


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 (python) [Seleccionar]
class Nodo:
    def __init__(self, carga = None, prox = None):
        self.carga = carga
        self.prox = prox
       
    def __str__(self):
        return str(self.carga)


n4 = Nodo(4)
n3 = Nodo(3, n4)
n2 = Nodo(2, n3)
n1 = Nodo(1, n2)



def recorrer(nodo):
    print(nodo)
    while nodo:
        print(nodo)
        nodo = nodo.prox
       
# Aqui podemos ver como n2 vale 2 y si es false ¿Por que se entra en while?     
recorrer(n2)

xiruko

Hola,

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

Saludos!