12 de mayo de 2016

10. IF -ELIF- ESE (Si esto, o si lo otro). Ampliación: evaluando variables vacías.

Si esto, o si lo otro

Vamos a plantearle al ordenador un sencillo problema. Introduzco la edad de alguien, y si él averigua si es mayor o menor de edad que me lo diga.
Para discernir entre una cosa o la otra, el ordenador realiza una comparación, evalúa el resultado si es True o False, y, mediante una estructura denominada condicional, presenta en pantalla un resultado.
Ejemplo 1. Discerniendo..
# *-* coding: utf-8 *-*
miEdad = int(raw_input("¿Cuál es tu edad?: "))
"""¡Cuidado! Convertir la variable en numérica con int """

if miEdad >= 18:
    print "¡Soy mayor de edad! :-)"
else:
    print "¡Aún no soy mayor de edad! :-("
La sentencia anterior se lee... Si mi edad (if) es mayor o igual que 18 que imprima "¡Soy mayor de edad! :-)" y si no (else) que imprima "¡Aún no soy mayor de edad! :-("
===
Ejemplo 2. Discerniendo entre más de un caso
Intenta hacer un programa en el que ahora, no sólo discierne entre si eres mayor o menor de edad, si no si has alcanzado la edad de jubilación de 65 años.
# *-* coding: utf-8 *-*
miEdad = int(raw_input("¿Cuál es tu edad?: "))
"""¡Cuidado! Convertir la variable en numérica con int """

if miEdad < 18:
    print "¡Aún no soy mayor de edad! :-("
elif ((miEdad >= 18) and (miEdad < 65)):
    print "¡Eres mayor de edad y tienes edad de trabajar! :-)"
else:
    print "¡Ya tienes edad de jubilarte! :-)"
 
La sentencia anterior se lee... Si mi edad (if) es menor que 18 entonces imprimir "¡Aún no soy mayor de edad! :-(" y si además (elif - else if) está entre 18 y 64 años, imprimir "¡Eres mayor de edad y tienes edad de trabajar! :-)" y si no, imprimir "¡Ya tienes edad de jubilarte! :-)"
===

Otras operaciones que implican "IF"

Por ejemplo, saber si un nombre pertenece a un conjunto...
Ejemplo 1. Pertenencia a un conjunto o lista
# *-* coding: utf-8 *-*
miNombre = raw_input("Escribe tu nombre: ")
misNombres = ["JUAN", "JAIME", "ANA", "FRANCISCO", "MARÍA", "LUISA", "CARMEN", "ANTONIO"]

"""Para igualar, paso miNombre a mayúsculas. Así comparo mejor"""
miNombre = miNombre.upper()

if miNombre in misNombres:
    print "Está en la lista"
else:
    print "¡Oh! No está en la lista"
===
Ejemplo 2. Comparando objetos con "is"
# *-* coding: utf-8 *-*
x = [1, 2, 3]
y = [1, 2, 3]

if (x == y):
    print "Valen lo mismo"

if x is y:
    print "Son el mismo objeto.Identificadores: " + str(id(x))+ " - "+str(id(y))
else:
    print "NO son el mismo objeto. Identificadores: " + str(id(x))+ " - "+str(id(y))

""" Fuerzo a que sean el mismo objeto """
x = y
if x is y:
    print "Son el mismo objeto.Identificadores: " + str(id(x))+ " - "+str(id(y))
else:
    print "NO son el mismo objeto. Identificadores: " + str(id(x))+ " - "+str(id(y))
===

Evaluando variables vacías

Evaluando valores vacíos directamente
Ejemplo 1. Evalúo valores vacíos
# *-* coding: utf-8 *-*
x = True

a = 0  # Valor cero
b = []  # Lista vacía
c = ""  # Cadena vacía

if x:
    print "Sí, es verdadero"
else:
    print "No, es falso"

if a:
    print "Tiene un valor"
else:
    print "Sin valor o vacío"

if b:
    print "Tiene un valor"
else:
    print "Sin valor o vacío"

if c:
    print "Tiene un valor"
else:
    print "Sin valor o vacío"

No hay comentarios:

Publicar un comentario