【问题标题】:Validate that integer is typed验证是否输入了整数
【发布时间】:2013-01-26 06:17:59
【问题描述】:

我已经查看了其中几个问题,但似乎无法将其正确应用到我的代码中。我绝对是 Python 的新手,并且开发了一个数字猜谜游戏来练习。我需要的最后一个错误处理是确保输入的不是整数的任何内容都将返回错误消息。我希望像其他条件一样使用“if”语句,但会使用我能得到的。谢谢!

(这只是一个sn-p。我没有包括整个程序)

def gamestart():
    print(rndnumber)
    for GuessAmount in range (1,11):
        ActualGuess = int(input("Guess number " + str(GuessAmount) + ": "))  
        if ActualGuess < rndnumber:
            print("HIGHER!")
        if ActualGuess > rndnumber:
            print("LOWER!")
        if ActualGuess != rndnumber:
            GuessAmount == GuessAmount + 1
        if ActualGuess == rndnumber:
            print("You Win!")
            gameend()
    print("")
    print("Sorry, but you ran out of guesses.")
    print("")
    gameend()

【问题讨论】:

  • 这里的等号太多了:GuessAmount == GuessAmount + 1
  • 谢谢,我会调查的

标签: python validation types input integer


【解决方案1】:

使用try/except:

while True:
    guess = input("Guess number " + str(GuessAmount) + ": ")
    try:
        guess_int = int(guess)
        break
    except ValueError:
        print "please enter only integers"

现在您在guess_int 中有您的(转换为整数)输入。 如果无法将输入转换为整数,用户会收到警告并再次输入数字。

【讨论】:

  • 这让我想起了这里的数字 2 -> codinghorror.com/blog/2012/07/new-programming-jargon.html
  • 而不是finished,只需使用break。另外,将except 更改为except ValueError
  • guess 应该是一个新变量,还是应该代替 ActualGuess 。我以为您的意思是 ActualGuess 并替换了代码。仍然有错误。我会在发布错误之前尝试第二个建议。
  • 我已经确定了答案;现在我在代码中使用ActualGuess
  • @BrandonJ.Wood:谢谢布兰登,我会等着
猜你喜欢
  • 2017-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 1970-01-01
  • 2012-11-02
  • 2013-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多