代码无法正常工作(Python 3.x.x)

时间:2014-10-05 21:51:23

标签: python linux python-3.x python-3.4

我最近正在自学python,而且我第一次尝试游戏。这个想法是用户必须猜出答案是什么(整数)我的代码还没有完成,但上半部分没有工作。

我的代码:

highest = 10
answer = 7
guess = int(input("What is your guess?"))
def guessingGame():
    print("try again please")
    guess = int(input("what is your guess?"))

while (int(guess) != answer):

    if (int(guess) < answer):
        print ("Answer is higher!")
        guessingGame();

    elif (int(guess) > answer):
        print ("Answer is lower!")
        guessingGame();

无论我输入的值是否小于答案(7)或更高,它总是会说;&#34;答案更高!&#34;我究竟做错了什么?谢谢!

编辑:我也意识到我的代码可能非常错误/写得不好,并且会喜欢任何批评/改进。

1 个答案:

答案 0 :(得分:0)

您在guess中编辑的guessingGame变量与您在while循环中进行比较的变量不同。

global guess添加到guessingGame函数的顶部应该可以解决它。

为了将来参考,如果某些东西没有表现,在各个阶段打印变量通常很有用,看看有什么东西。 (对于较大的程序,调试器更有用,但在这样的东西上,打印很好)。

编辑:关于批评/改进评论:

  • 函数应该按照它们的名称命名。 guessingGame的名称应为updateUserGuess。我不是依赖于全局变量,而是让我的函数返回猜测并将值赋给函数外的guess变量。

  • 不需要elif条件。如果猜测不是< answer且不相等则必须更高

  • 您调用guessingGame猜测是高还是低,以便可以移出if / else语句

  • 每次使用guess时,您都会int投放guessingGame(在int函数中,然后在每个条件中再次投放)。没有什么是错的,但没有必要。如果它存储为{{1}},请将其用作一个。