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.