En esta clase continuaremos trabajando con el condicional if
. Si bien vimos en la clase pasada que la estructura básica del if
es
if (<<condición>>):
<<operación 1>>
else:
<<operación 2>>
en realidad puede ser más simple pues el uso del else
es opcional, es decir, podemos trabajar con el if
como
condicion = True
if condicion:
print("La condición es verdadera")
La condición es verdadera
donde vemos que el código también es ejecutado. Lo que ocurre es que, si la condicón impuesta es falsa, entonces la <<operación 1>>
simplemente no será ejecutada y python continuará con el código siguiente después del if
.
Así, suele colocarse un else
sólo cuando deseemos ejecutar algún código para cuando la condición impuesta sea falsa.
También, como vimos en la clase pasada podemos agregar elif
a nuestro condicional if
. Recordemos que el elif
funge como otra condición posible dada ya una condición. Por ejemplo, si consideramos la condición para una variable x
de que x == 1
podemos presentar otras condiciones referentes a x
como x == 5
, x > 100
, etcétera. De este modo cada posible condición puede representarse mediante un elif
.
Antes de ver un ejemplo podemos indagar de forma breve sobre las listas en python. Una listas es un conjunto de datos de cualquier tipo. Donde los elementos de la lista estarán agrupados por medio de corchetes. Por ejemplo
lista1 = [1, 'a', True, 2.87]
print(lista1)
[1, 'a', True, 2.87]
De lo anterior observamos que, en efecto, las listas deben ser declardas por medio de corchetes y sus elementos pueden ser del tipo numérico, booleano, flotante, string, etcétera.
Además, en el siguiente ejemplo utilizaremos el módulo random
para utilizar random.choice()
el cual nos permite realizar selecciones aleatorias de un conjunto de datos, tales como las listas. Veamos un ejemplo
# Importamos el módulo pertinente
import random
# asignaremos a la variable x la selección aleatoria de un elemento de la lista 'lista1'
x = random.choice(lista1)
print(x)
True
Ahora bien, nuestro principal ejemplo consiste en crear una lista de números, realizar una selección aleatoria de los mismos y ver si éste es un número par o impar. Recordemos que un número será par si el residuo de dividir dicho número entre 2 es cero y será impar si el residuo de dividir dicho número entre 2 no es cero (en la práctica 2 se ve un poco más de esto a profundidad).
# creamos una lista numérica
numeros = [1, 2, 3, 4, 5]
# realizamos una selección aleatoria de un elemento en 'numeros'
elecc = random.choice(numeros)
# aplicamos un condicional
if elecc % 2 == 0:
print(f'{elecc} es un número par')
else:
print(f'{elecc} es un número impar')
2 es un número par
Lo anterior indica que random.choice(numeros)
seleccionó de forma aleatoria de la lista numeros
el elemento 2
. Luego, como el residuo de dividir 2 entre 2 es cero (elecc % 2 == 0
), entonces se muestra el mensaje 2 es un número par.
Podemos ver otro ejemplo haciendo uso de elif
. Creamos una lista numérica que representa el número de serie de un boleto de lotería. De acuerdo al número de serie el valor del premio cambiará y la selección del boleto la haremos de manera aleatoria.
# creamos la lista de los números de serie de los billetes de loteria
n_serie = [10, 24, 16, 15, 20, 1, 0, 9, 7]
# realizamos la selección aleatoria
n_ganador = random.choice(n_serie)
# inicializamos una variable para poner el valor del premio del boleto ganador según sea el caso
premio = 0
# implementamos un if para saber el valor del premio
if n_ganador > 0 and n_ganador < 10:
premio = 150
print(f'Felicidades, tú número ganador es {n_ganador} cuyo premio es {premio}')
elif n_ganador >= 10 and n_ganador < 20:
premio = 250
print(f'Felicidades, tú número ganador es {n_ganador} cuyo premio es {premio}')
elif n_ganador >= 20 and n_ganador < 24:
premio = 350
print(f'Felicidades, tú número ganador es {n_ganador} cuyo premio es {premio}')
elif n_ganador == 0:
print(f'Lo sentimos, el número {n_ganador} no tiene premio asociado')
else:
premio = 1000
print(f'Felicidades, tú número ganador es {n_ganador} cuyo premio es {premio}')
Felicidades, tú número ganador es 16 cuyo premio es 250
Observaciones:
premio
conforme al número de boleto que se haya elegido.if
cambiamos el valor de premio
de acuerdo a qué condición será verdadera. Donde las condiciones son: 0 < n_ganador < 10
, 10 <= n_ganador < 20
, 20 <= n_ganador < 24
, n_ganador == 0
y la condición del else
es cualquier otro caso que no sean los anteriores, sin embargo, como estamos trabajando con la lista n_serie
el único caso que resta es cuando n_ganador == 24
, el cual representa el caso del premio más grande.