En ocaciones cuando hay más de dos caminos posibles es necesario implementar estructuras condicionales anidadas, es decir por la rama del verdadero o falso (else:) disponemos otras estructuras condicionales.

Debemos tener cuidado con la indentación del código para evitar errores.

Veamos un ejemplo que requiere utilizar estructuras condicionales anidadas. Generaremos tres números aleatorios y luego imprimiremos el mayor de los tres:

import random

x1=random.randint(1,100)
x2=random.randint(1,100)
x3=random.randint(1,100)
print x1
print '-'
print x2
print '-'
print x3
print '<br>'
print 'El mayor es:'
if x1>x2:
    if x1>x3:
        print x1
    else:
        print x3
else:
    if x2>x3:
        print x2
    else:
        print x3

Como podemos observar por el bloque del verdadero del primer if tenemos otra estructura condicional (debemos indentar cada estructura condicional):

if x1>x2:
    if x1>x3:
        print x1
    else:
        print x3

Problema resuelto

Generar un valor aleatorio entre 1 y 1000. Luego imprimir un mensaje indicando cuantos dígitos tiene.



Problema Propuesto

Generar un valor aleatorio entre -10 y 10. Mostrar un mensaje si el valor generado es negativo, nulo o positivo.

Para generar un valor aleatorio en ese rango debemos plantear la siguiente expresión:

x=-10+random.randint(0,20)


import random

x=-10+random.randint(0,20)
print x
print '<br>'
if x<0:
    print 'Numero negativo'
else:
    if x==0:
        print 'Numero nulo'
    else:
        print 'Numero positivo'
    
Ver solución