Python/Generalidades/Estructuras de decisión
Varias sentencias de Python permiten al programador especificar que la siguiente sentencia a ser ejecutada puede ser otra diferente que la siguiente en secuencia. Esto es llamado transferencia de control. La transferencia de control se logra con las estructuras de decisión de Python.
if
[editar]Las estructuras de decisión escogen entre diferentes cursos de acción. Por ejemplo, suponga que la nota para aprobar un curso es 60. La sentencia en pseudocódigo es la siguiente:
- Si el estudiante obtiene una nota igual o superior a 60:
- Aprobado
Si la condición es verdadera, se imprime “Aprobado”. Si la condición es falsa, la sentencia de impresión es ignorada. Escrito en Python se vería de la siguiente manera:
if nota >= 60:
print ('Aprobado')
if/else y if/elif/else
[editar]La estructura de decisión if realiza una acción específica solo cuando la condición es verdadera; de lo contrario, la acción se ignora. La estructura if/else permite al programador especificar que una acción diferente se debe desarrollar, cuando la condición es falsa. Por ejemplo, la sentencia en pseudocódigo:
- si el estudiante obtiene una nota igual o superior a 60:
- entondes:
- Aprobado
- si no:
- Suspendido
Escrito en Python:
if nota >= 60:
print ('Aprobado')
else:
print ('Suspendido')
También se utiliza la estructura de selección múltiple if/elif/else. Que se vería en Python de la siguiente manera:
if nota >= 90:
print ('A')
elif nota >= 80:
print ('B')
elif nota >= 70:
print ('C')
elif nota >= 60:
print ('D')
else:
print ('F')
match/case
[editar]Desde la versión 3.10 Python introdujo la estructura match/case, similar al switch/case de lenguajes como JavaScript o C++, la cual permite manejar múltiples probabilidades dentro del código si bien su objetivo en sí no es usarla como comparativa, su estructura aplicada al ejemplo de este material sería
match nota:
case 'A':
print ('Calificación mayor a 90')
case 'B':
print ('Calificación mayor a 80 y menor o igual a 89')
case 'C':
print ('Calificación mayor a 70 y menor o igual a 79')
case 'D'
print ('Calificación mayor a 60 y menor o igual a 69')
case _ : #El _ después del case indica que es para cualquier otro caso no mencionado anteriormente
print ('Calificación menor a 59')
Como bien se pudo apreciar esta estructura no está enfocada a ser comparativa con otras variables si bien también se puede usarla para ese propósito, si no que entre muchos otros usos es común ocuparla para crear algún menú para el usuario, por ejemplo
print('Menu de control de alumnos')
print('1. Añadir alumno')
print('2. Asignar calificación a alumno')
print('3. Eliminar alumno')
opc = int(input('Ingrese número de opción a elegir')
match opc:
case 1:
#Codigo para añadir estudiante
case 2:
#Codigo para asignar calificacion
case 3:
#Codigo para eliminar estudiante
case _:
print('La opción no existe')