Condicionales y Bucles en Python 3

Marcelo Choque @casiprogramador
Marcelo Choque
Published in
7 min readMar 8, 2020

1.- Sentencias de control

Una sentencia en el mundo de la programación es simplemente una línea de código que en algunos lenguajes como Java o PHP terminan en punto y coma, pero en el caso de Python estas no son necesarias.

La sentencia de control permite modificar el flujo de las sentencias que se ejecutan.

En esta clase practicaremos dos tipos de sentencias principales:

  • Sentencias condicionales
  • Bucles

2.- Sentencias condicionales

Las sentencias condicionales no permiten alterar el flujo de un algoritmo dependiendo si ciertas condiciones se cumplen o no.

Diagrama de flujo de una condicional

Aquí es donde cobran mayor importancia los operadores lógicos y relacionales que practicamos en la anterior clase.

2.1.- La condición IF en Python

Para declarar la condición más básica en Python:

  • Debemos escribir “if” seguido de la condición más dos puntos.
  • Una vez declarada la sentencia se debe presionar hacer una tabulación y escribir las instrucciones.

Por ejemplo, si queremos hacer un algoritmo que nos permita el ingreso dependiendo de la edad podríamos hacerlo así:

Algoritmo en Python para control de edad

Recordar: Para Python a comparación de otros lenguajes se guía que una sentencia depende de otra por la tabulación.

2.2.- La condición IF … ELSE en Python

¿Qué pasaría si que queremos que se ejecute otra instrucción en caso que no se cumpla la condición?

En este caso debemos utilizar la sentencia ELSE de la siguiente manera.

  • Primeramente, declaramos nuestra condición IF como se detalló en la sección anterior
  • Seguidamente escribimos “else” más dos puntos
  • Detallamos las instrucciones que deseamos ejecutar recordad presionar tabulación antes.

Por ejemplo, si necesitamos mostrar un mensaje en el ejemplo anterior para el caso que la edad sea menor a 18 lo podríamos hacer así:

Algoritmo en Python 3 para control de mayor o menor de edad

Observar que las instrucciones de IF o ELSE son discriminantes, es decir que se ejecutar las instrucciones de IF o de ELSE, nunca se ejecutaran las dos.

2.3.- La condición ELIF

Si deseamos ejecutar más de una condición debemos ejecutar la sentencia ELIF.

La sentencia ELIF es una contracción de ELSE IF la cual se ejecuta en el siguiente orden>

  • Primeramente, se evalúa la condición IF.
  • Si la condición de IF es cierta se ejecutará su instrucción y para la condición.
  • Pero en caso que la condición IF no se cumpla se evaluará la condición ELIF.
  • En caso que las condiciones de IF y ELIF no se cumplan se ejecutará las instrucciones de ELSE.

Todas estas instrucciones lo podemos ver en el siguiente diagrama:

Diagrama de flujo de condicionales anidados

En el diagrama se muestra solo dos condiciones, pero usando ELIF podemos tener mas de dos condiciones a ser evaluadas.

Por ejemplo, usando el ejemplo anterior si queremos clasificar la edad de la persona aún más tendríamos:

Algoritmo ELIF en Python 3

2.4.- Operador ternario en Python

La operación ternaria es una forma comprimida de una condición IF.

Este operador en Python es muy similar al operador “?” de otros lenguajes, pero se representa así:

resultado = valor_si if (condición) else valor_no

Por ejemplo, si queremos hacer el primer ejemplo de manera simplificada lo podríamos hacer así:

Operador ternario en Python 3

2.5.- Sentencia SWITCH en Python

Si programaron en otros lenguajes generalmente siempre se habla la sentencia SWITCH, pero en Python no posee esta sentencia entonces se puede sustituir con de dos formas:

  1. Usar ELIF con varias condiciones.
  2. Emular con un diccionario junto con diferentes funciones.

3.- Bucles en Python 3

Las sentencias condicionales nos permiten elegir distintos fragmentes de código, pero si lo buscamos es ejecutar de manera repetitiva un determinado pesado de código es necesario usar los ciclos o bucles.

Diagrama flujo de bucles

Se debe tener cuidad que no se entre en bucles infinitos con condiciones que se cumplan de manera indefinida porque esto puede saturar la memoria y producir errores graves al momento de ejecutar nuestro script en Python.

3.1.- Ciclo WHILE

El ciclo WHILE ejecuta un fragmente de código mientras una condición preestablecida se cumpla.

Para ejecutar un ciclo WHILE se debe:

  • Escribir “while” primeramente
  • Seguidamente se escribe la condición a evaluar
  • Se cierra la sentencia con dos puntos

Por ejemplo, si necesitamos hacer un contador que vaya cuenta atrás desde 10 podríamos hacerlo así:

Contador en Python 3 usando WHILE

Si en el anterior ejemplo olvidamos descontar la unidad en cada iteración este ciclo se repetiría indefinidamente.

Sin embargo, los bucles infinitos pueden ser muy útiles como en el siguiente ejemplo donde pedimos que el usuario ingrese números de manera indefinida hasta que introduzca la palabra “salir”.

Algoritmo con ciclos indefinidos en Python 3

Dos observaciones en el ejemplo anterior:

  1. Usamos la palabra “break” para salir del bucle infinito.
  2. Para mostrar caracteres especiales como la doble comilla utilizamos el prefijo “\” para evitar errores al momento de ejecutar el algoritmo.

3.2.- Ciclo FOR IN

A diferencia de otros lenguajes de programación la sentencia FOR en Python se parece mucho más a un FOREACH.

Para usar el ciclo FOR:

  1. Escribimos “for”.
  2. Definimos una variable donde se guardara el valor a iterar en cada ciclo.
  3. Definimos el elemento a iterar que debe tener una longitud finita como un rango o lista.
  4. Cerramos con dos puntos.

El ciclo FOR en Python es un bucle que repite una instrucción un numero determinado de veces que nos proporcione una lista o un “range” , como podemos observar en el siguiente ejemplo:

Ciclo FOR en Python 3

En la siguiente clase explicaremos con mas detalle las listas, rangos y diccionarios.

Ejercicios

Condicionales

  1. Pedir un numero y mostrar si es par o impar.
  2. Solicitar dos números y mostrar cual es el número mayor y menor.
  3. Pedir un usuario y un password, verificar si estos son “admin” y “12345” respectivamente, si esto ocurre mostrar un mensaje de “Bienvenido” en caso contrario “Acceso denegado”.
  4. Pedir en ingreso de tres calificaciones y mostrar un mensaje de APROBADO si su promedio es mayor a 50 y REPROBADO en caso contrario.
  5. Ingresar un numero de día de semana del uno al siete y mostrar si es lunes, martes, miércoles, etc.
  6. En una fábrica de computadoras se planea ofrecer a los clientes un descuento que dependerá del número de computadoras que compre. Si las computadoras son menos de cinco se les dará un 10% de descuento sobre el total; si el número de computadoras es mayor o igual a 5 pero menos de diez se otorga un 20%; si son 10 o mayor se dará un 40% de descuento. El precio de cada computadora es de 500$. Solicitar el número de computadoras compradas y mostrar el porcentaje de descuento y total.
  7. Solicitar el mes de ingreso a un trabajo de una persona, el día de entrada y el salario de este. Calcular el aguinaldo por duodécima tomando en cuenta que se debe tener una antigüedad mínima de tres meses por ejemplo:
Imagina que entras a trabajar en la empresa el 1° de enero y te retiras el 20 de agosto. Su salario mensual es de Bs 8.500.En este caso, el tiempo transcurrido es de 7 meses con 20 días.Entonces, vamos a ingresar los datos en las fórmulas y a calcular:Bs 8.500 / 12 x 7 = Bs 4.958,33Bs 8.500 / 360 x 20 = Bs 472.22Ahora sumamos ambas cantidades:Bs 4.958,33 + 472.22 = Bs 5.430,55

Bucles

  1. Pedir un numero e imprimir todos los números pares entre 0 y el numero ingresado
  2. Pedir un numero y mostrar su factorial.
  3. Leer números enteros de teclado, hasta que el usuario ingrese el 0. Finalmente, mostrar la sumatoria de todos los números positivos ingresados.
  4. Escriba un programa que pida números enteros mientras sean cada vez más grandes si introduce uno menor terminar el programa y mostrar la suma de todos.
  5. Escribir un programa que solicite el ingreso de una cantidad indeterminada de números mayores que 1, finalizando cuando se reciba un cero. Imprimir la cantidad de números impares ingresados.
  6. Crear un programa que permita al usuario ingresar los montos de las compras de un cliente (se desconoce la cantidad de datos que cargará, la cual puede cambiar en cada ejecución), cortando el ingreso de datos cuando el usuario ingrese el monto 0.
    Si ingresa un monto negativo, no se debe procesar y se debe pedir que ingrese un nuevo monto. Al finalizar, informar el total a pagar teniendo que cuenta que, si las ventas superan el total de $1000, se le debe aplicar un 10% de descuento.

--

--

Marcelo Choque @casiprogramador
Marcelo Choque

Desarrollador de software , Ingeniero en Sistemas y creador de contenidos, contactos a ing.marcelo.choque@gmail.com