Después de varios ejercicios y prácticas abordaremos de forma más precisa el condicional if
además de trabajar con el elif
. La estructura básica del if
es
if (<<condición>>):
<<operación 1>>
else:
<<operación 2>>
donde if
puede pensarse como "si" y else
como "sino".
Por ejemplo, consideremos un cruce peatonal. Si el semáforo peatonal es de color verde, entonces puede cruzar; sino entonces no puede cruzar pues los vehículos están circulando por esa vía. Lo anterior se puede ilustrar como
y podemos realizar la traducción pertinente en código de python como sigue (supongamos para ello que el semáforo está en verde):
semaforo = "verde"
if semaforo == "verde":
print("¡puede cruzar!")
else:
print("¡quédese en donde está!")
¡puede cruzar!
Podemos interpretar lo anterior como sigue: si la venta es menor a 500, entonces no hay descuento; sino, si la venta es más de 500 pero menos de 1000, entonces el descuento es del 10%; sino, entonces el descuento será de 15%. Así, para python el si le corresponderá el if
, el sino le corresponderá el else
y el sino, si le corresponderá el elif
.
Lo anterior puede verse en el siguiente diagrama
Veamos lo anterior en código
venta_total = 750
if venta_total < 500:
print(f'El total a pagar es de {venta_total}')
elif venta_total >= 500 and venta_total < 1000:
print(f'El total a pagar es de {venta_total - venta_total * 0.1}')
else:
print(f'El total a pagar es de {venta_total - venta_total * 0.15}')
El total a pagar es de 675.0
y veamos el digrama de flujo de éste:
Ahora, notemos que el elif
no es más que un if
dentro de otro if
, en particular es un if
dentro de un else
venta_total = 750
if venta_total < 500:
print(f'El total a pagar es de {venta_total}')
else:
if venta_total >= 500 and venta_total < 1000:
print(f'El total a pagar es de {venta_total - venta_total * 0.1}')
else:
print(f'El total a pagar es de {venta_total - venta_total * 0.15}')
El total a pagar es de 675.0
De ahí el nombre de elif
el cual es una combinación entre un else
y un if
. Veamos el diagrama de flujo del código anterior
De donde el digrama de flujo usando elif
es casi idéntico al diagrama de flujo usando el if
dentro de un else
.