如何调试初学者代码

时间:2016-04-02 12:07:36

标签: python python-3.x

我有两个关于我的代码的问题。为什么程序没有进入第二个if语句。我该如何结束循环?

from random import *

SecretNumber=randint(1,5)
Guess=int(input("Please enter Guess: "))
NumberofGuesses=1
SecretNumber=0

while Guess != SecretNumber:
    NumberofGuesses=NumberofGuesses+1
    if Guess>SecretNumber:
        print("Please insert a smaller number")
    else:
        print("Please insert a bigger number")

    if Guess==SecretNumber:
        print("Number of Guesses: {0}".format(NumberofGuesses))

2 个答案:

答案 0 :(得分:4)

您的第二个if超出了while循环,所以在您猜到密码之前它不会被击中。循环永远不会结束,因为你从未读过另一个猜测。

您还遇到一个问题,即您将随机密码覆盖为零。

您需要以下内容:

import random
SecretNumber=random.randint(1,5)

NumberofGuesses=0

while true:
    Guess=int(input("Please enter Guess: "))
    NumberofGuesses += 1

    if Guess == SecretNumber:
         break    # Got it!
    elif Guess>SecretNumber:
         print("Please insert a smaller number")
    else:
         print("Please insert a bigger number")

print("Number of Guesses: {0}".format(NumberofGuesses))

答案 1 :(得分:1)

这是因为你将SecretNumber设置为0.删除它并且它应该可以工作。