how to use while loop?

Question:

number = 50

while number >= 0:
    if number % 5 == 0:
        print(number)
        number = number - 1
    elif number % 5 == 1:
         continue
    number = number = number - 1      

the answer it’s giving me is 50 then the loop stops executing

Here is the program I am trying to make:

While Loops Practice #2
Create a While Loop that subtracts one by one the numbers from 50 to 0 (both numbers included) with the following additional conditions:

If the number is divisible by 5, show that number on the screen (remember that here you can use the modulus operation dividing by 5 and checking the remainder!)

If the number is not divisible by 5, continue executing the loop without showing the value on the screen (don’t forget to continue subtracting so that the program doesn’t run infinitely).

Asked By: Reyan-droid

||

Answers:

Make sure you always subtract 1 from number before continuing the loop. As the prompt reminds you, this is especially important when you use the continue statement, since that brings you straight back to the top of the loop — if you haven’t subtracted before then, the loop will repeat infinitely!

One way to make sure that something always happens even if execution is interrupted (not just a continue but maybe a return, a break, a raise, etc) is try/finally:

number = 50
while number >= 0:
    try:
        if number % 5 == 0:
            print(number)
        elif number % 5 == 1:
            continue
    finally:
        number -= 1

prints:

50
45
40
35
30
25
20
15
10
5
0

In this case, though, there’s no need to immediately continue the loop, since there’s nothing in the loop that you explicitly need to skip in the number % 5 == 1 case (note that this isn’t the same as "not divisible by 5" — what you’re testing for here is "has a reminder of 1 after dividing by 5", i.e. 1, 6, 11, and so on, which isn’t part of the problem statement).

You can therefore just do:

number = 50
while number >= 0:
     if number % 5 == 0:
         print(number)
     number -= 1
Answered By: Samwise
num = 50
while num != 0:
    if num % 5 == 0:
        print(num)
    num -= 1

would work for this as it will only print the number if it is divisible by 5, and always subtract.

Answered By: Anton Chernyshov

Here is your code, improved:

number = 50

while number >= 0:
    if number % 5 == 0:
        print(number)
    number = number - 1

I’m confused about that too, but here are my thoughts: you only subtracted when number % 5 == 1, but it can also be 2, 3, 4 or 5.

Answered By: stysan

The main structure is corret, but in the last line you wrote two times the code "number =" and "else" is useless in this case, because you need to substract 1 in every loop.

here’s the code solved:

number = 50
while number != 0:
    if (number%5) == 0:
        print(number)
    number = number - 1
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.