我的 while 循环永远不会到达条件语句并一直循环

My while loop never reaches the conditional stament and keeps looping

作业是制作一个参数为答案的猜谜游戏。最后,如果这个人答对了,它会打印一条祝贺语句和 returns 尝试的次数,如果他们输入 quit,它会显示答案并尝试 == -1。除此之外,它一直循环直到他们得到正确的答案。

def guessNumber(num):
    tries = 1
    while tries > 0:
        guess = input("What is your guess? ")
        if guess == num:
            print ("Correct! It took you" + str(tries)+ "tries. ")
            return tries
        elif guess == "quit":
            tries == -1
            print ("The correct answer was " + str(num) + ".")
            return tries
        else:
            tries += 1

当我 运行 它时,无论我输入什么,它都会不断询问我的猜测。

代码缩进是否正确? 您正在定义的函数体由缩进级别决定。

在您粘贴的示例中,由于 def 后面的行缩进较少,函数体是 'empty'。

Indenting code is important in python

此外,要将一个值分配给变量,您必须使用单个“=”,因此:

tries == -1

应该是

tries = -1

如果您想将 -1 值分配给该变量。

因为你调用了你的变量 num 所以我猜它是一个整数,你正在检查整数和字符串之间的相等性所以它永远不会为真。比较时尝试将 num 更改为 str(num),因此:

def guessNumber(num):
    tries = 1
    while tries > 0:
        guess = input("What is your guess? ")
        if guess == str(num):
            print ("Correct! It took you {0} tries. ".format(tries))
            return tries
        elif guess == "quit":
            tries = -1
            print ("The correct answer was {0}.".format(num))
            return tries
        else:
            tries += 1