Control del flujo de código con lógica condicional (if, elif, else)
Tip
Consulte la pestaña Texto e imágenes para obtener más detalles.
Ahora que el programa puede evaluar las condiciones, puede usarlas para guiar las rutas de acceso que puede tomar el código. Python usa ifinstrucciones , elify else para guiar el flujo del programa en función de los resultados True o False. Este enfoque se denomina lógica condicional.
Instrucción if
Una if instrucción ejecuta un bloque de código solo cuando una condición es True. El código dentro debe estar en sangría: Python usa sangría para saber qué líneas pertenecen al bloque:
score = 85
if score >= 90:
print("Congratulations!")
print("Grade: A")
print("Program complete.")
Si score es menor que 90, se omite el código con sangría dentro del if bloque y el programa continúa con la siguiente línea después del bloque.
Reglas de sangría y dos puntos
Python usa reglas estrictas para agrupar bloques de código:
Dos puntos (
:): debe colocar un signo de dos puntos al final de una instrucción condicional. Esto indica Python que las siguientes líneas con sangría pertenecen a ese bloque condicional.Sangría: Cada línea del mismo bloque debe usar la misma sangría. Use cuatro espacios (o una pestaña) de forma coherente.
Para completar el bloque de código, debe anular la sangría de la línea siguiente después del bloque. Esta línea sin sangría indica a Python que el bloque ha finalizado. En el ejemplo anterior, la línea print("Program complete.") no tiene sangría, por lo que se ejecuta independientemente de la if condición.
Adición de rutas de acceso alternativas con else
Use else para ejecutar un bloque de código diferente cuando la condición sea False:
score = 75
if score >= 90:
print("Grade: A")
else:
print("Grade: B or lower")
Condiciones de encadenamiento con elif
Cuando tenga más de dos rutas de acceso posibles, puede usar elif (breve para "else if") para comprobar condiciones adicionales.
Primer partido gana
Python comprueba cada condición en orden. Cuando encuentra la primera True condición, ejecuta ese bloque y omite el resto. Si ninguna de las condiciones es True, ejecuta el else bloque (si está presente).
score = 85
if score >= 90:
print("Grade: A")
elif score >= 80: # Python stops here! 85 >= 80 is True.
print("Grade: B")
elif score >= 70: # Skipped entirely, even though 85 >= 70 is also true.
print("Grade: C")
else: # Skipped entirely.
print("Grade: D or lower")
Output:
Grade: B
Dado que Python sale de la cadena después de la primera True condición, asegúrese de ordenar las condiciones de la mayoría de las condiciones específicas a menos específicas. De lo contrario, es posible que nunca llegue a las condiciones que espera.