# Python do…while Loop Statement Emulation

Summary: in this tutorial, you’ll learn how to emulate the `do...while` loop statement in Python

## Introduction to the do…while loop statement

If you have come from other programming languages such as JavaScript, Java, or C#, you’re already familiar with the `do...while` loop statement.

Unlike the `while` loop, the `do...while` loop statement executes at least one iteration. It checks the `condition` at the end of each iteration and executes a code block until the `condition` is `False`.

The following shows the pseudocode for the `do...while` loop in Python:

`do # code block while condition`

Code language: PHP (php)

Unfortunately, Python doesn’t support the `do...while` loop. However, you can use the `while` loop and a `break` statement to emulate the `do...while` loop statement.

First, specify the `condition` as `True` in the `while` loop like this:

`while True: # code block`

Code language: PHP (php)

This allows the code block to execute for the first time. However, since the condition is always `True`, it creates an indefinite loop. This is not what we expected.

Second, place a condition to break out of the `while` loop:

`while True: # code block`

` # break out of the loop if condition break`

Code language: PHP (php)

In this syntax, the code block always executes at least one for the first time and the condition is checked at the end of each iteration.

## Python do…while loop emulation example

Suppose that you need to develop a number guessing game with the following logic:

• First, generate a random number within a range e.g., 0 to 10.
• Then, repeatedly prompt users for entering a number. If the entered number is lower or higher than the random number, give users a hint. If the entered number equals the random number, the loop stops.

The following program uses a `while` loop to develop the number guessing game:

`from random import randint# determine the range MIN = 0 MAX = 10# generate a secret number secret_number = randint(MIN, MAX)# initialize the attempt attempt = 0# The first attempt input_number = int(input(f'Enter a number between {MIN} and {MAX}:')) attempt += 1if input_number > secret_number: print('It should be smaller.') elif input_number < secret_number: print('It should be bigger.') else: print(f'Bingo! {attempt} attempt(s)')# From the second attempt while input_number != secret_number: input_number = int(input(f'Enter a number between {MIN} and {MAX}:')) attempt += 1`

` if input_number > secret_number: print('It should be smaller.') elif input_number < secret_number: print('It should be bigger.') else: print(f'Bingo! {attempt} attempt(s)') `

Code language: Python (python)

The following shows a sample run:

`Enter a number between 0 and 10:5 It should be bigger. Enter a number between 0 and 10:7 It should be bigger. Enter a number between 0 and 10:8 Bingo! 3 attempt(s)`

Code language: Shell Session (shell)

Since the `while` loop checks for the condition at the beginning of each iteration, it’s necessary to repeat the code that prompts for user input and checking the number twice, one before the loop and one inside the loop.

To avoid this duplicate code, you can use a `while` loop to emulate `do while` loop as follows:

`from random import randint# determine the range MIN = 0 MAX = 10# generate a secret number secret_number = randint(MIN, MAX)# initialize the attempt attempt = 0while True: attempt += 1 input_number = int(input(f'Enter a number between {MIN} and {MAX}:'))`

` if input_number > secret_number: print('It should be smaller.') elif input_number < secret_number: print('It should be bigger.') else: print(f'Bingo! {attempt} attempt(s)') break `

Code language: Python (python)

How it works.

• First, remove the code before the `while` loop.
• Second, add the condition to stop the loop if the entered number equals the random number by using the `break` statement.

## Summary

• Python doesn’t support the do-while loop statement.
• Use a `while` loop and the `break` statements to emulate a `do...while` loop in Python