我最近在自学巨蟒,我第一次尝试玩游戏。这个想法是,用户必须猜出答案是什么(整数),我的代码还没有完成,但前半部分不能工作。
我的代码:
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)或更高,它都会说:“答案更高!”我做错了什么?谢谢!
编辑:我也意识到我的代码可能有令人难以置信的错误/写得很差,并且会喜欢任何批评/改进。
发布于 2014-10-05 21:56:21
在guess循环中,您在guessingGame中编辑的guessingGame变量与您要比较的变量不同。
将global guess添加到guessingGame函数的顶部应该可以解决这个问题。
为了将来的参考,如果有些事情没有表现,通常需要在不同的阶段打印变量,看看事情是什么。(对于较大的程序,调试器更有用,但在这种情况下,打印是可以的)。
编辑:关于批评/改进意见:
guessingGame应该被命名为类似于updateUserGuess。与其依赖全局函数,我想我应该让这个函数返回猜测,并将值赋值给函数外部的猜测变量。elif条件。如果猜测不是< answer且不相等,则必须更高guessingGame,无论猜测是高还是低,这样就可以将其移出if/ out语句。guess (在guessingGame函数中,然后在每个条件下)时,都要将它转换为一个int。这没什么不对的,但没必要。如果它是作为一个int存储的,那么将它作为一个使用。https://stackoverflow.com/questions/26207589
复制相似问题