首页 > 解决方案 > While 循环倒计时到零

问题描述

我目前正在尝试使用简单的 while 循环从给定的正数倒数到零,然后停止。如果数字不是正数,那么它应该循环并再次询问。我已经把它的大部分记下来了,但我不能让它倒数到零。现在它只停在1。

对于这个问题,零不计为正数。如果输入零,它应该循环回到初始提示。

这是我到目前为止的代码:

# set loop variable
looking_for_positive_number = True

# get positive number
while (looking_for_positive_number == True):
    reply = input("Enter positive number: ")
    int_reply = int(reply)

# count down from given positive number to 0, loop back to reply if not
    while int_reply > 0:
        print(int_reply)
        int_reply = int_reply - 1
        looking_for_positive_number = False

这就是它返回的内容(我使用 5 作为正数):

Enter positive number: 5
5
4
3
2
1

理想情况下,它应该返回类似这样的内容(这里也使用了 5):

Enter positive number:  5
5
4
3
2
1
0

我不知道我错过了什么/我做错了什么。任何帮助,将不胜感激。提前致谢!

编辑:我想通了,我只需要在嵌套的 while 循环中包含一个 if 语句。最终代码如下所示:

# set loop variable
looking_for_positive_number = True

# get positive number
while (looking_for_positive_number == True):
    reply = input("Enter positive number: ")
    int_reply = int(reply)

# count down from given positive number to 0, loop back to reply if not
# ZERO DOES NOT COUNT AS POSITIVE NUMBER -- SHOULD LOOP BACK IF 0 IS ENTERED
    while int_reply > 0:
        print(int_reply)
        int_reply = int_reply - 1

        # want to print 0 after we get down to 1 (but not include 0 in our initial loop)
        if int_reply == 0:
            print(0)

        # finish and exit loop
        looking_for_positive_number = False

标签: pythonwhile-loopcountdown

解决方案


# get positive number
while (looking_for_positive_number == True):
    reply = input("Enter positive number: ")
    int_reply = int(reply)
    if int_reply <= 0:
        print( "Not a positive number." )
        continue

# count down from given positive number to 0, loop back to reply if not
    while int_reply > 0:
        print(int_reply)
        int_reply = int_reply - 1
        looking_for_positive_number = False

推荐阅读