首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不符合我预期的代码(Python3.x.x)

不符合我预期的代码(Python3.x.x)
EN

Stack Overflow用户
提问于 2014-10-05 21:51:23
回答 1查看 95关注 0票数 1

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

我的代码:

代码语言:javascript
复制
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)或更高,它都会说:“答案更高!”我做错了什么?谢谢!

编辑:我也意识到我的代码可能有令人难以置信的错误/写得很差,并且会喜欢任何批评/改进。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-05 21:56:21

guess循环中,您在guessingGame中编辑的guessingGame变量与您要比较的变量不同。

global guess添加到guessingGame函数的顶部应该可以解决这个问题。

为了将来的参考,如果有些事情没有表现,通常需要在不同的阶段打印变量,看看事情是什么。(对于较大的程序,调试器更有用,但在这种情况下,打印是可以的)。

编辑:关于批评/改进意见:

  • 函数应该以它们所做的命名。guessingGame应该被命名为类似于updateUserGuess。与其依赖全局函数,我想我应该让这个函数返回猜测,并将值赋值给函数外部的猜测变量。
  • 不需要elif条件。如果猜测不是< answer且不相等,则必须更高
  • 您可以调用guessingGame,无论猜测是高还是低,这样就可以将其移出if/ out语句。
  • 每次使用guess (在guessingGame函数中,然后在每个条件下)时,都要将它转换为一个int。这没什么不对的,但没必要。如果它是作为一个int存储的,那么将它作为一个使用。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26207589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档