如何从循环中停止while函数并进入下一个条件

时间:2014-03-10 14:50:30

标签: python

def guess(n):
import random
x = random.randint(1,1000000)
while n != x:
    if n < x:
        print("Too Low, Try Again")       
    elif n > x:
        print("Too High, Try Again")
if n == x :
    print("Congrats")
    again = print(input(str("Play Again Y/N?: ")))
    if again == Y:
        n = print(input(str("Input Number 'n': ")))
        print(guess(n))
    elif again == N:
        print("Goodbye")

如果条件匹配,我如何使while循环停止循环并移动到我已声明的下一个条件。谢谢!

5 个答案:

答案 0 :(得分:1)

使用break语句(它终止最近的封闭循环),例如

if n < x:
    print("Too Low, Try Again")       
elif n > x:
    print("Too High, Try Again")
else:
    break

答案 1 :(得分:0)

您需要调用新输入才能更改n。在while语句中,n永远不会重新定义。

尝试:

def guess(n):
import random
x = random.randint(1,1000000)
while n != x:
    if n < x:
        print("Too Low, Try Again")       
    elif n > x:
        print("Too High, Try Again")
    n =  print(input(str("Input Number 'n': ")))

如果你想停止循环...使用break

if my_condition:
    break

将停止你的循环。它也适用于for循环。

但是,当n结束x ==n声明时,会要求while的新值。

答案 2 :(得分:0)

您可以使用break提前退出循环。我不确定你的“下一个条件”是什么意思,但在正常的“休息”之后,只会在循环后立即开始。 Python也有一个很好的构造,你可以在循环之后放置一个“else”子句,只有当Loop正常退出时才会运行。

答案 3 :(得分:0)

我写的是这样的:

import random


def guess():
    x = random.randint(1,1000000)
    n = x + 1  # make sure we get into the loop

    while n != x:
        n = input(str("Input Number 'n': "))
        if n < x:
            print("Too Low, Try Again")       
        elif n > x:
            print("Too High, Try Again")
        else:
            print("Congrats")
            break

if __name__ == '__main__':
    while True:
        guess()
        again = input(str("Play Again Y/N?: ") == 'N'

        if not again:
            break

答案 4 :(得分:0)

如前所述,对于语句“while ...”以及“if x == n”,您的缩进是不正确的。将其移动到右侧的两个选项卡,因为您要运行循环直到玩家想玩游戏。在你给定的代码中,循环运行的地方没有增加x。现在关于破坏条件,你可以尝试这样的事情。

    else:
       print("Goodbye")
       break