Ir al contenido

Python/Generalidades/Estructuras de decisión

De Wikilibros, la colección de libros de texto de contenido libre.

Índice de la sección
«Generalidades»

  1. Breve historia de Python
  2. Palabras reservadas, operadores y símbolos del lenguaje
  3. Tipos de datos fundamentales
  4. Operaciones de entrada y salida básica
  5. Tabla de operadores con asociatividad y precedencia
  6. Estructuras de decisión
  7. Estructuras de iteración
  8. Funciones
  9. Características especificas de Python
  10. Cómo se compila Python



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')

Python: Índice · Introducción · Enlaces

Instalación de Python · Generalidades · Funciones, constantes nativas · Tipos de datos nativos · Herramientas de control de flujo · Definición de funciones · Leer y escribir archivos · Su primer programa en Python · Entrada y salida · Estructuras de datos · Errores y excepciones

Interfaces gráficas · Módulos relacionados con el sonido · Módulos relacionados con el tiempo · Módulos relacionados con la matemática