Condicionales y Bucles en Python 3
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.
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í:
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í:
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:
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:
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í:
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:
- Usar ELIF con varias condiciones.
- 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.
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í:
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”.
Dos observaciones en el ejemplo anterior:
- Usamos la palabra “break” para salir del bucle infinito.
- 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:
- Escribimos “for”.
- Definimos una variable donde se guardara el valor a iterar en cada ciclo.
- Definimos el elemento a iterar que debe tener una longitud finita como un rango o lista.
- 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:
En la siguiente clase explicaremos con mas detalle las listas, rangos y diccionarios.
Ejercicios
Condicionales
- Pedir un numero y mostrar si es par o impar.
- Solicitar dos números y mostrar cual es el número mayor y menor.
- 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”.
- Pedir en ingreso de tres calificaciones y mostrar un mensaje de APROBADO si su promedio es mayor a 50 y REPROBADO en caso contrario.
- Ingresar un numero de día de semana del uno al siete y mostrar si es lunes, martes, miércoles, etc.
- 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.
- 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
- Pedir un numero e imprimir todos los números pares entre 0 y el numero ingresado
- Pedir un numero y mostrar su factorial.
- Leer números enteros de teclado, hasta que el usuario ingrese el 0. Finalmente, mostrar la sumatoria de todos los números positivos ingresados.
- 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.
- 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.
- 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.