我最近正在自学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;我究竟做错了什么?谢谢!
编辑:我也意识到我的代码可能非常错误/写得不好,并且会喜欢任何批评/改进。
答案 0 :(得分:0)
您在guess
中编辑的guessingGame
变量与您在while循环中进行比较的变量不同。
将global guess
添加到guessingGame
函数的顶部应该可以解决它。
为了将来参考,如果某些东西没有表现,在各个阶段打印变量通常很有用,看看有什么东西。 (对于较大的程序,调试器更有用,但在这样的东西上,打印很好)。
编辑:关于批评/改进评论:
函数应该按照它们的名称命名。 guessingGame
的名称应为updateUserGuess
。我不是依赖于全局变量,而是让我的函数返回猜测并将值赋给函数外的guess变量。
不需要elif
条件。如果猜测不是< answer
且不相等则必须更高
您调用guessingGame
猜测是高还是低,以便可以移出if / else语句
每次使用guess
时,您都会int
投放guessingGame
(在int
函数中,然后在每个条件中再次投放)。没有什么是错的,但没有必要。如果它存储为{{1}},请将其用作一个。