miércoles, 9 de enero de 2013

Programando en Python VI IFs anidados e instrucción elif

Bueno en esta entrega terminaremos lo concerniente a la estructura condicional If que nos hacía falta, como poner un if dentro de otro para poder escoger entre múltiples decisiones o bien la nomenclatura de Phyton para poner un if dentro de otro para facilitar la escritura (reducirla pues), pues bien, comencemos:

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, poner sangría, en cada estructura condicional).

 

Ahora veamos como lo hacemos con estructuras condicionales anidadas la sintaxis if/elif:
(problema: generar un número aleatorio entre 1 y 1000, luego imprimir la cantidad de dígitos del número generado)
import random

x=random.randint(1,1000)
print x
print '<br>'
if x<10:
print 'Tiene 1 dígito'
elif x<100:
print 'Tiene 2 dígitos'
elif x<1000:
print 'Tiene 3 dígitos'
else:
print 'Tiene 4 dígitos'

Como pueden observar esta nueva sintaxis nos permite ahorrarnos algunas líneas de código y hacen más simple y legible el resto.

Por cierto como aportación del maestro Holzen Martínez se me olviaba comentarle que en versiones nuevas de Phyton es problable que la instrucción print la tengan que poner como función es decir print("esto se imprime").

Esto es todo por ahora y nos leemos luego!!!!!

No hay comentarios:

Publicar un comentario