Fast python
Estructuras repetitivas (bucles y ciclos)
Javier Alan Ventura
2025
Definición de bucles o ciclos
Para entender mejor qué son los ciclos o bucles, primero recordemos cómo
funcionan las condicionales.
Una condicional evalúa una condición y, si esta es verdadera, ejecuta las
instrucciones dentro de su bloque.
Un bucle funciona de forma similar, pero con una diferencia importante:
repite esas instrucciones mientras la condición siga siendo verdadera.
Iteración: Cada vez que se ejecuta un conjunto de instrucciones dentro de
un bucle, después de evaluar la condición, se denomina iteración.
Contador: Es una variable que tiene la función de llevar la cuenta de
determinadas situaciones, que se repiten dentro de un ciclo, su valor va
aumentando o disminuyendo por cada iteración.
Su valor es de tipo entero, y deben declararse antes de entrar al ciclo, y
dentro del ciclo debe haber una instrucción que modifique su valor, si no el
bucle serio infinito.
El valor del contador es útil tanto para controlar la cantidad de
repeticiones del ciclo, como para realizar un seguimiento de las
iteraciones.
Acumulador: Es una variable que almacena un valor que se va sumando
progresivamente a lo largo de la ejecución de un programa, especialmente
dentro de un ciclo.
Se utiliza para sumar un conjunto de valores, calcular totales, promedios,
entre otros. Por lo general, un acumulador se inicializa en cero, y en cada
iteración del ciclo se le añade un nuevo valor. De este modo, permite
mantener un resultado acumulado a lo largo del tiempo.
Al igual que los contadores se la declara antes de comenzar el ciclo.
Bandera: Es una variable de tipo booleano, lo que significa que solo puede
tomar dos valores: true (verdadero) o false (falso).
Se utiliza para indicar si una condición se ha cumplido o no durante la
ejecución de un programa.
La bandera debe inicializarse con un valor (generalmente false), y su valor
puede cambiar según lo que ocurra en el flujo del programa.
Ciclo while
While condición:
Instrucciones
Condición para terminar el bucle
Fin.
Mientras se cumpla la condición del ciclo, se ejecutarán las
instrucciones dentro de él, al terminar, volverá a evaluar la condición,
hasta que la condición sea falsa.
Ejemplo1: Escribir los números del 1 al 10
Ejercicio2: Leer por teclado un número que represente una cantidad de
números que a su vez se leerán también por teclado. Calcular la suma de
todos esos números.
Nuestra variable contador empieza en 0. Como le indicamos al programa
que vamos a ingresar 4 números, el bucle se repetirá mientras contador sea
menor que 4.
Cada vez que se cumple una iteración, el contador aumenta en 1. Así, el
ciclo se ejecuta de la siguiente manera:
• contador = 0 → entra al bucle
• contador = 1 → entra al bucle
• contador = 2 → entra al bucle
• contador = 3 → entra al bucle
• contador = 4 → ya no entra, porque 4 no es menor que 4
Esto da como resultado 4 iteraciones, es decir, cuatro acumulaciones.
Ejercicio3: Contar los números enteros positivos introducidos por teclado. Se
consideran dos variables enteras número y contador (contará el número de
enteros positivos). Se supone que se leen números positivos y se detiene el
bucle cuando se lee un número negativo o cero
La solución correcta es esta, pero cometí un error que quisiera que tomaras
en cuenta tú también….
Antes de iniciar tu bucle tienes que asegurarte que esta cumpla con la
primera condición para que esta se ejecute, en mi caso no puse la variable
numero al principio, por ende, no evaluó nada.
Ejercicio4: El factorial de un número, es el producto obtenido al multiplicar
un numero dado por todos los enteros positivos sucesivos inferiores.
Además, se tiene establecido que los números negativos no poseen factorial
y que el factorial de 0 es 1. El factorial se representa con un signo de
exclamación precedido de un número (n!).
Diseñe un algoritmo que calcule el factorial de un número entero
Romper un bucle:
Python nos ofrece la posibilidad de romper un bucle antes de que este llegue
a su condición final.
La sentencia que usaremos es break, la sentencia break se puede usar para
terminar una sentencia de iteración y cuando se ejecuta produce que
el flujo de control salte fuera del bucle a la siguiente sentencia si es que
la hay, esta sentencia se coloca dentro del bucle.
Ejercicio1: imprimir los números del 1 al 10, pero si es que encuentras el 8
rompes el bucle
Ejercicio2: imprimir los números desde el 29 al 1 restando uno por cada
iteración, romper el bucle si encontramos un numero que sea divisible por 4
Continuar un bucle:
Cuando lo aplicamos en un bucle, lo que hace es que salta el resto de código
o instrucciones que hay después de continue, y vuelve a iterar o a evaluar la
condición del bucle, y recalcar que al hacer un continue la iteración afectada
cuenta como una iteración completa.
Ejercicio1: Contar números desde el 1 hasta el 20, ignorando los múltiplos
de 3.
Validación de datos de entrada:
Hasta el momento, cuando hacemos un algoritmo, al asumir que alguien
ingresa un dato incorrecto, mostramos un mensaje como “datos incorrectos”,
ahora trabajaremos con algoritmos que no permitan que se puedan hacer
entradas con datos errados.
Ejercicio1:
Ciclo for:
El ciclo for se caracteriza por que la cantidad de iteraciones está definida
desde el inicio. A diferencia de otros ciclos como while, en el for se
establece de antemano cuántas veces se repetirá el bloque de instrucciones.
Este ciclo evalúa una condición al inicio, lo que significa que solo se
ejecutará si esa condición es verdadera.
Estructura básica del for:
Ejemplo1: imprimir números del 1 al 10, usando for
Ejercicio2: Escribir un programa que muestre la sumatoria de todos los
números entre el 0 y el 100.
Ejercicio3: Escribir un programa que muestre la sumatoria de todos los
múltiplos de 3 encontrados entre el 0 y el 100.
Secuencia de números:
La función range() devuelve una secuencia de números, empezando desde
el 0, se incrementa en 1, se detiene antes de un número especificado, es
decir el último número no es inclusivo.
Bucles anidados
La definición mas sencilla es poner un bucle dentro de otro bucle.
En el ejemplo que hicimos, usamos un bucle for i in range(1, 5), números
1, 2, 3 y 4, cada uno de estos números los estamos multiplicando por valores
del bucle anidado for j in range(1, 5), es decir 1, 2, 3 y 4.
Sección de ejercicios:
1: leer un numero entero y determinar cuántos dígitos tiene
Objetivos: Introducir un numero entero por teclado y por salida decir la
cantidad de números que tiene. Ej 4564 “el número ingresado tiene 4 dígitos”
Restricciones: la variable numero debe ser de tipo entero, en caso de ser
negativo debemos convertirlo a positivo
Datos: variable número, variable contador
Operaciones: División entera, operaciones de comparación, uso del bucle
while
2: leer 2 números enteros y mostrar todos los números comprendidos entre
el mayor y el menor.
Objetivo: por teclado deben ingresar dos números, a y b, y se deben mostrar
todos los números enteros comprendidos entre ambos, de menor a mayor.
a=45 b=37 “38, 39, 40, 41, 42, 43, 44”
Restricciones: Si ambos números son iguales, imprimimos un mensaje que
diga “son iguales”, cuando no tengan enteros comprendidos, por ejemplo,
a=4 b=5, imprimir “no hay enteros comprendidos entre ambos números”
Datos: variables tipo entero a y b.
Operaciones: suma, comparadores lógicos, operaciones de comparación,
bucles.
Dos maneras de solucionarlo son:
3. Leer números enteros hasta que digiten 0, y calcular el promedio de los
números positivos.
En el primero que hice cometi un error, al ingresar un 0 de primera variable,
el programa falla, por que estaríamos haciendo una división por 0.
4. Escribir un programa que sume todos los números impares
menores o iguales a n.
Se hace una suma de 1 + 3 + 5 + 7 + 9 = 25
5. Diseñe un algoritmo que simule una calculadora con las 4 operaciones
básicas, suma, resta, multiplicación y división, las operaciones deben ir
ingresando a medida que se van ingresando los datos, de igual forma debe
ir mostrando el resultado parcial, se terminara de hacer la operación cuando
se ingrese “=”.
N = a, +, n = b, “resultado parcial es a+b”, “ingrese un operador”, =, “resultado
final” fin.
Objetivos: Se maneja como una calculadora de celular, a medida que
vayamos realizando operaciones esta irá mostrando el resultado parcial,
detenemos la operación cuando se presione “=”.
Restricciones: La división por 0, cuando se intente hacer tal cosa,
imprimimos un mensaje mostrando ese error y mostrando el resultado
parcial hasta antes de la división por 0.
Datos: n: almacena los números operadores, acumulador: acumula los
resultados de cada operación, operador: guarda los 4 signos de operación.
Operaciones: de comparación, aritméticos.