Cómo emular bucles Do-While en Python

Cómo emular bucles Do-While en Python

Publicado por
Comparte en redes sociales


En este tutorial, aprenderá cómo emular un bucle do-while dentro Pitón.

En cualquier lenguaje de programación, los bucles lo ayudan a realizar ciertas acciones repetidamente, según una condición de bucle. Python admite la mientras que y para compilaciones de bucle, pero no admite de forma nativa el hacer mientras círculo.

Sin embargo, puede emular un bucle do-while si comprende cómo funciona, utilizando bucles existentes y declaraciones de control de bucles en Python.

Aprenderá cómo hacer esto en los próximos minutos. ¡Empecemos!

¿Qué es la construcción de bucle Do-While?

¿Qué es la construcción de bucle Do-While?

Si ha programado en lenguajes como C o C++probablemente te habrías topado con la construcción del bucle do-while.

En un ciclo do-while, el conjunto de declaraciones en el cuerpo del ciclo (en el bloque delimitado por llaves) se ejecuta primero y luego se verifica la condición del ciclo.

Puede ejecutar los siguientes ejemplos de C en el compilador de C en línea de Geekflare, directamente desde su navegador.

Considere el siguiente fragmento de código:

//do_while_example1

#include <stdio.h&gt;

int main() {
    int count = 1;
    printf("Do-While loop: \n");
    
    do{
        printf("Loop runs...");
        }while(count<0);

    return 0;
}

Aquí está la salida.

Output

Do-While loop: 
Loop runs...

En el ejemplo anterior:

  • El valor de count es 1, y la condición de loopback es count < 0. Sin embargo, el bucle se ejecuta una vez incluso si la condición de bucle es inicialmente False.
  • Esto contrasta con un mientras que bucle que solo se ejecuta si la condición del bucle es True en primer lugar.
//while_example1

#include <stdio.h&gt;

int main() {
    int count = 1;
    printf("While loop: \n");
    
    while(count<0){
        printf("Loop runs...");
        }

    return 0;
}

Como se mencionó, la condición de loopback, count < 0 es False inicialmente el count La variable se inicializa en 1. Entonces, al compilar y ejecutar el código anterior, encontramos que la declaración en el cuerpo del bucle while no se ejecuta.

Output

While loop: 
//loop body does not run!

Mientras vs. Do-While: Una visión general de las diferencias

Echemos un vistazo más de cerca a las diferencias entre los bucles while y do-while.

Mientras vs. Do-While: Una visión general de las diferencias

Considere este ejemplo:

//do_while_example2

#include <stdio.h>

int main() {
    int count = 1;
    printf("Do-while loop: \n");
    
    do{
       printf("%d\n",count);
       count++;
    }while(count<5);

    return 0;
}

En la celda de código de arriba:

  • los count variable se inicializa a 1.
  • Usamos un ciclo do-while.
  • los count La variable se incrementa en 1 en cada pasada por el bucle y la condición del bucle se establece en count < 5.

Aquí hay una explicación visual de cómo ocurre la ejecución: cómo funciona el ciclo do-while y cómo verifica la condición del ciclo cuatro veces.

Leer también  Comparing Communication Channels for Businesses: Email vs. SMS
ejemplo de bucle do-while
Output

Do-while loop: 
1
2
3
4

Si usa un ciclo while en su lugar, eso es lo que tendríamos.

//while_example2

#include <stdio.h>

int main() {
    int count = 1;
    printf("While loop: \n");
    
    while(count<5){
       printf("%d\n",count);
       count++;
    };

    return 0;
}

La siguiente figura explica la ejecución del ciclo while; en este ejemplo, el ciclo while verifica la condición del ciclo cinco veces.

ejemplo de ciclo while
Output

While loop: 
1
2
3
4

Aunque las salidas de los bucles while y do-while anteriores son idénticas, existen algunas diferencias sutiles.

En un ciclo while, la verificación de la condición viene primero, seguida por el cuerpo del ciclo. Así que si quieres que se ejecute el ciclo k veces debe haber exactamente k se ejecuta donde está la condición de loopback True. En el número de iteración m+1la condición se convierte Falsey el control sale del bucle.

Por otro lado, si usa un ciclo do-while: la condición del ciclo solo se verifica la K-ésima vez después del paso de K a través del bucle.

Entonces, ¿por qué es útil esta mejora marginal?🤔

Supongamos que la condición de bucle es computacionalmente costosa: por ejemplo, implica una llamada de función recursiva, una operación matemática compleja, etc.

En tales casos, para K repeticiones del cuerpo del bucle, sería ventajoso usar un bucle do-while en su lugar.

Resumen de Mientras vs. Do-While

Recopilemos las principales diferencias que aprendimos. 👩‍🏫

Mientras el bucle Hebilla ancha
Comprobar la condición del bucle: antes de ejecutar el cuerpo del bucle Comprobar la condición del bucle: después de la ejecución del cuerpo del bucle
Si la condición es False inicialmente, el cuerpo del ciclo no se ejecuta. Si la condición es False inicialmente se ejecuta el cuerpo del ciclo Exactamente una vez.
La condición de bucle se verifica K veces para K pasajes en el bucle. La condición de bucle se verifica K-1 veces para K pasajes en el bucle.
¿Cuándo usar el ciclo while?
– El ciclo debe ejecutarse mientras la condición sea verdadera
– Para bucles de entrada controlados
– Cuando la condición de bucle no es computacionalmente costosa
¿Cuándo usar un bucle do-while?
– El bucle debe ejecutarse al menos una vez para una condición de bucle inicialmente falsa
– Para bucles controlados por salida
– Cuando la condición de bucle es computacionalmente costosa

Emulación del comportamiento de bucle Do-While en Python

De la sección anterior, tenemos las siguientes dos condiciones para emular el bucle do-while:

  • Las declaraciones en el cuerpo del ciclo deben ejecutarse al menos una vez— si la condición del bucle es o no True Dónde False.
  • La condición debe verificarse después de ejecutar las declaraciones en el cuerpo del bucle. Si la condición es Falseel control debe salir del ciclo: control de salida.
Leer también  What Is Google's Knowledge Graph? How to Get One for You or Your Business

Instrucción de interrupción y bucle while infinito en Python

hacer-mientras-python

Puede definir un ciclo while infinito en Python como se muestra a continuación.

while True:
    pass

# Instead of True, you can have any condition that is always True

while always-True-condition:
   pass

los break La sentencia se puede utilizar para salir del cuerpo de un bucle y transferir el control a la primera sentencia fuera del cuerpo del bucle.

while <condition>:
    if <some-condition>:
        break

En el primer ejemplo de un ciclo do-while en C, la condición para continuar el ciclo es count < 0. Entonces, la condición para salir del ciclo es un valor de conteo de cero o mayor que cero, (count >= 0).

Aquí está la emulación de bucle do-while en Python:

count = 1
while True:
    print("Loop runs...")
    if(count >= 0):
        break

Ejemplos de bucles Do-While de Python

Revisaremos los ejemplos de la sección anterior y los reescribiremos en Python emulando el bucle do while.

#1. Volvamos al ejemplo: mostrar los valores de count variable cuando count es menos de cinco.

Sabemos cómo definir un ciclo infinito para que el cuerpo del ciclo se ejecute al menos una vez.

El ciclo debe continuar mientras el número sea menor a cinco. Por lo tanto, cuando la cuenta llega a cinco, debemos salir del bucle. Entonces count == 5 es la condición de control de salida.

Poniéndolos juntos, tenemos:

count = 1
while True:
  print(f"Count is {count}")
  count += 1
  if count==5:
    break
Output

Count is 1
Count is 2
Count is 3
Count is 4

#2. También podemos reescribir el juego de adivinanzas de números como una construcción de Python.

En el juego de adivinanzas de números, validamos las conjeturas de un usuario contra un número secreto predefinido. El usuario debe adivinar el número secreto dentro de un cierto número de intentos máximos permitidos, por ejemplo, max_guesses.

El código debe solicitar al usuario que ingrese si su suposición es correcta o incorrecta. Podemos hacer esto usando un ciclo while infinito.

Leer también  Cómo crear imágenes de IA de mensajes virales ocultos/subliminales

Entonces, ¿cuándo deberíamos salir del círculo?

El control debe salir del ciclo cuando ocurre uno de los siguientes:

  1. Cuando el usuario ha adivinado el número
  2. Cuando el usuario aún no ha adivinado el número, pero ha agotado el número de intentos disponibles. El número de conjeturas incorrectas por parte del usuario = max_guesses.

La siguiente celda de código muestra cómo podemos hacer esto.

import random

low, high = 5,50

secret_number = random.choice(range(low,high))

max_guesses = 10

num_guesses = 0

while True:
    guess = int(input("\nGuess a number:"))
    num_guesses += 1
    
    conditions = [num_guesses==max_guesses,guess==secret_number]
    
    if any(conditions):
        break

En lugar de salir del círculo, podemos agregar explicaciones print() cuando nos encontramos con cada una de las condiciones anteriores, salimos del bucle.

import random

low, high = 5,50

secret_number = random.choice(range(low,high))

print(secret_number)

max_guesses = 10

num_guesses = 0

while True:
    guess = int(input("\nGuess a number:"))
    num_guesses += 1
    
    if guess==secret_number:
        print("Congrats, you guessed it right!")
        break
    if num_guesses==max_guesses:
        print("Sorry, you have no more guesses left!")
        break

A continuación se muestran dos salidas de muestra.

En este resultado de ejemplo, la instrucción break sale del bucle cuando el usuario adivina correctamente el número secreto.

# Sample output when secret_number = 43 and user gets it right!

Guess a number:4

Guess a number:3

Guess a number:43
Congrats, you guessed it right!

Aquí hay otro ejemplo de salida cuando el usuario alcanza el número máximo de conjeturas disponibles pero no logra adivinar correctamente el número secreto.

# Sample output when secret_number = 33 and user fails to guess it right!

Guess a number:3

Guess a number:15

Guess a number:21

Guess a number:50

Guess a number:17

Guess a number:6

Guess a number:18

Guess a number:5

Guess a number:12

Guess a number:43
Sorry, you have no more guesses left!

Conclusión

Espero que este tutorial te haya ayudado a comprender cómo emular un bucle do-while en Python.

Aquí están las principales conclusiones:

  • Use un ciclo infinito para asegurarse de que el cuerpo del ciclo se ejecute al menos una vez. Podría ser un ciclo infinito trivial como while True, o podría ser tanto que <état>para que la condición sea siempre verdadera.
  • Comprobar el salir condición dentro del bucle y utilizar el Pausa instrucción para salir del ciclo bajo una condición específica.

A continuación, aprenda a usar los bucles for y la función enumerate() en Python.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *