Los ciclos son una estructura fundamental en la programación que nos permite ejecutar un segmento de código repetidamente, ya sea un número especificado de veces o hasta que una condición particular se cumpla. Esto resulta esencial para automatizar tareas y manejar la repetición en procesos computacionales, optimizando el uso del código y los recursos.
¿Cómo funciona el ciclo while en Python?
El ciclo while es una de las estructuras básicas de control de flujo. Su propósito es ejecutar un bloque de código de manera repetitiva mientras una condición booleana sea verdadera. Su sintaxis se asemeja a la instrucción if, pero a diferencia de esta, while mantiene la ejecución hasta que la condición ya no se cumpla.
Se establece un contador inicial llamado counter y se le asigna el valor de 0.
La condición while counter < 10 evalúa si el contador es menor que 10.
Dentro del ciclo, imprime el valor del contador y luego lo incrementa en 1.
Se repite el proceso hasta que el contador sea igual o mayor que 10.
¿Por qué evitar ciclos infinitos?
Una condición mientras siempre verdadera puede causar un ciclo infinito, consumiendo mucho tiempo de procesamiento y memoria del sistema. Si te encuentras con uno, usa Ctrl + C para detener la ejecución. Es fundamental asegurarse de que las condiciones de los ciclos permitan su salida o finalización.
¿Cómo interrumpir un ciclo while?
Dos comandos permiten controlar la duración y ejecución del ciclo: break y continue.
break:
Este comando se usa para detener la ejecución del ciclo inmediatamente, independientemente si la condición sigue siendo verdadera o no. Es útil cuando se necesita romper el ciclo bajo circunstancias específicas sin esperar que la condición general se cumpla.
Por otro lado, continue omite el resto del ciclo y fuerza una nueva iteración si la condición del continue se cumple. Esto permite que ciertas instrucciones dentro del ciclo no se ejecuten en algunos casos.
En este ejemplo, se imprimen solo los números del 15 al 20, ya que continue omite la instrucción print mientras counter es menor a 15.
¿Por qué es crucial la indentación en Python?
La indentación es una de las características distintivas de Python, determinando el ámbito del código en bloques como el while. Sin una indentación adecuada, Python puede generar errores, ya que el código fuera del bloque indentado no se ejecutará de la forma esperada.
Recomendaciones para el uso de ciclos while
Condición de salida clara: Asegúrate de que exista siempre una forma clara de terminar el ciclo para evitar bucles infinitos.
Comprensión de break y continue: Usa break y continue con propósito y claridad dentro de tus ciclos, para garantizar que su ejecución esté controlada y prevista.
Con estos conocimientos, ya estás listo para explorar ciclos más complejos, lo que te permitirá optimizar tanto el tiempo de ejecución como el uso de recursos de tus programas. ¡Sigue aprendiendo y desafiando tus límites!
contador =0;y =int(input("numero de la tabla: "))x =int(input("Ingresa hasta que numero quieres multiplicar : "));while contador < x: contador+=1; resultado = y * contador;print(f"{y} X {contador} = {resultado}");
Genial!
Excelente
Un bucle while permite repetir la ejecución de un grupo de instrucciones mientras se cumpla una condición (es decir, mientras la condición tenga el valor True).
Por eso es importante tener cuidado con ella para garantizar que exista un momento de salida.
Así es.
el hablando tranquilo , del ciclo infinito :
mi ansiedad : weeey detenlooo ya
JAJAJAJAJA
El bucle ++while++ evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera. El bloque de código se ejecuta repetidamente hasta que la condición llega ser o es falsa
gracias
Aprender Bucles, nos permitirá pasar de resolver un problema de la forma #1 a la forma #2 que es mucho más elegante y simplificada.
Los bucles son estructuras de control que nos ayudan a repetir una o varias veces un bloque de comandos.
Al igual que los condicionales, los loops usan una condición para establecer si debemos acabar la repetición o para especificar el número de veces que vamos a ejecutar nuestro código (tambien puede repetirse indefinidamente).
excelente ejemplo! gracias
Buen aporte
Tablas de multiplicar
Dias de la semana
Gracias, practiqué con tu ejemplo
Excelente!
Si entendí es, con el if se ejecuta una operación si la condición es verdadera, y en el while se ejecuta la operación de manera continua hasta que la condición sea falsa.
Estas en lo correcto diego..
Recuerda que }en algunos videos del profesor ponía if y cuando no se cumplía no pasaba nada solo terminaba el programa.
sin embargo en ciclos es hasta que deje de cumplirse se saldrá.
los compañeros que lo deseen, pueden encontrar el fichero 21_while.py, así como todos los demás, apuntes en Markdown y otros ejemplos hechos por mí. Gracias.
Los ciclos while son una estructura cíclica, que nos permite ejecutar una o varias líneas de código de manera repetitiva, sin necesidad de tener un valor inicial e incluso a veces sin siquiera conocer cuando se va a dar el valor final que esperamos.
Con el ciclo while, no conoces el cuándo sino el cómo. Es decir, conocer la condición bajo la cual se va a detener el ciclo, pero no sabes cuántas iteraciones tomará eso, ni cuánto tiempo. Por ello se los llama ciclos indeterminados.
En este ejemplo se ejecuta un ciclo infinito
whileTrue:print('se ejecuto')
#salidase ejecuto
se ejecuto
se ejecuto
se ejecuto
se ejecuto
Sentencia break
Existe una forma de se interrumpirá el ciclo While antes de que se cumpla la condición, consiste en utilizar la sentencia break, la sentencia break rompe el ciclo While antes de que se cumpla la condición
print('Ejemplo 2')print('========')print('la sentencia break rompera el ciclo break cuando counter')counter =0while counter <20: counter +=1if counter ==15:breakprint(counter)print(' ')
#salidaEjemplo 2========la sentencia break rompera el ciclo break cuando counter
1234567891011121314
Sentencia continue
La sentencia continue permite saltar lógica de programación según una condición dada
print('Ejemplo 3')print('========')print('la sentencia continue saltara la logica dentro while, en este caso mienta el valor sea menor a 15 no imprimira nada')counter =0while counter <20: counter +=1if counter <15:continueprint(counter)print(' ')
Ejemplo 3========la sentencia continue saltara la logica dentro whilea, en este caso mienta el valor sea menor a 15 no imprimira nada
151617181920
Ejemplo completo
from os import system
system('clear')print('Ejemplo 1')print('========')print('La condicion de parada es contrar hasta 10')counter =0while counter <10: counter +=1print(counter)print(' ')print('Ejemplo 2')print('========')print('la sentencia break rompera el ciclo break cuando counter')counter =0while counter <20: counter +=1if counter ==15:breakprint(counter)print(' ')print('Ejemplo 3')print('========')print('la sentencia continue saltara la logica dentro whilea, en este caso mienta el valor sea menor a 15 no imprimira nada')counter =0while counter <20: counter +=1if counter <15:continueprint(counter)print(' ')
Wow, muchas gracias por este aporte
debo comentar, que hasta ahora se me había hecho difícil entender el tema de los ciclos, y no se si es de la cantidad de veces que he visto y estudiado sobre ellos, buscando la forma de entenderlo que al fin lo entendí o fue este profesor, que genialidad.
#El bucle while evalúa una condición y luego ejecuta un bloque
#de código si la condición es verdadera.counter=0while counter <10: counter +=1if counter ==5:break # Rompe un flujo o ciclo de manera forzada
print(counter)
#
counter1 =0while counter1 <20: counter1 +=1if counter1 <15:continue #El bucle no termina sino que continúa con la siguiente iteración.print(counter1)
Metan todo de sí para aprender rápido, esta miedoso y desafiante las nuevas tecnologías de Chat GPT que pueden hacer un cocido mejor que Yo. Ah estudiar!
¿Qué le mejoraría a este código de Chat GPT?
import tkinter as tk
import random
# Crear la ventana principal
ventana = tk.Tk()ventana.title("Juego de Piedra, Papel o Tijeras")# Crear las opciones del juego
opciones =["piedra","papel","tijeras"]# Crear la función de juego
def juego(opcion): # Generar una elección aleatoria para la computadora
computadora = random.choice(opciones) # Comparar la elección del jugador con la elección de la computadora
if opcion == computadora: resultado.config(text="Empate") elif opcion =="piedra" and computadora =="tijeras": resultado.config(text="Ganaste") elif opcion =="papel" and computadora =="piedra": resultado.config(text="Ganaste") elif opcion =="tijeras" and computadora =="papel": resultado.config(text="Ganaste")else: resultado.config(text="Perdiste")# Crear los botones de piedra, papel y tijeras
piedra = tk.Button(ventana, text="Piedra", command=lambda:juego("piedra"))papel = tk.Button(ventana, text="Papel", command=lambda:juego("papel"))tijeras = tk.Button(ventana, text="Tijeras", command=lambda:juego("tijeras"))# Crear el label para mostrar el resultado
resultado = tk.Label(ventana, text="Elige una opción")# Agregar los widgets a la ventana
piedra.pack()papel.pack()tijeras.pack()resultado.pack()# Ejecutar la ventana
ventana.mainloop()
Yo viendo a Nicolás explicando con toda calma mientras el ciclo se ejecuta infinitamente 😶
Que error mas raro el del minuto 5:55!!!
Python: Hey, men. Tienes un error en la linea 17, que cosa es COUNT?
Yo: Oye python, no seas mamon, ahi no dice COUNT dice COUNTER y esta definido.
Cuando usas break y le dices que corte al llegar el valor a 15, en realidad si llega a 15, pero rompe antes de imprimir en pantalla el ultimo numero alcanzado. Esto lo especifico para no confundir al estudiante que inicia. (Vos decis que no llega a sumar 15, y se queda en 14 pero eso "creo" que es errado, si llega a 15, pero corta antes que haga el ultimo "print(counter)"
como lo saco del loop desde la linea de comandos sin cambiar el codigo anterior. Quiero que se ejecute unos segundos y despues solito lo saque. Espero su ayuda GRacias
en microcontroladores hay funciones de tiempo, en este caso hasta el momento aún no hemos visto eso en este curso, probablemente veamos algo relacionado mas adelante.
Con un break
¿al momento de colocar "counter == 15", no se supone que debiera de llegar hasta 14, luego sumarle 1 y ahí detenerse y por lo tanto imprimir del 1 al 15?
El break automáticamente te saca del ciclo. Ya no importa las líneas que vienen después del break . Por esa razón no llega a imprimirse el 15.
Consejos para trabajar con el ciclo while:
Evita los bucles infinitos: Asegúrate de que la condición del ciclo while eventualmente se vuelva False. De lo contrario, el ciclo continuará indefinidamente, lo que puede causar que tu programa se bloquee.
# Ejemplo de un bucle infinito
# while True:
# print("Este es un bucle infinito!")
Usa la declaración break para salir del ciclo: Si necesitas salir del ciclo while basado en alguna condición aparte de la condición principal del ciclo, puedes usar la declaración break.
contador = 0
while True:
if contador == 5:
break
contador += 1
Usa la declaración continue para saltar a la siguiente iteración: Si necesitas saltar el resto del ciclo y pasar a la siguiente iteración, puedes usar la declaración continue.
contador = 0
while contador < 10:
contador += 1
if contador % 2 == 0:
continue
print(contador)
Maneja las excepciones dentro del ciclo while: Si estás realizando operaciones que pueden lanzar excepciones dentro del ciclo while, asegúrate de manejar esas excepciones para evitar que tu programa se bloquee.
while True:
try:
x = int(input("Por favor ingrese un número: "))
break
except ValueError:
print("Oops! No era válido. Intente nuevamente...")
Usa else con while: permite usar una cláusula else con el ciclo while. El bloque de código dentro de else se ejecutará una vez que la condición del ciclo while se vuelva False.