【问题标题】:How can I make sure users are turning in correct input, for Guess game in python 3.5.1?对于 python 3.5.1 中的 Guess 游戏,我如何确保用户输入正确的输入?
【发布时间】:2016-10-05 09:47:24
【问题描述】:

这是我的代码:

from random import randint
print("What is your name?")
name=input()
tries=0
number= randint(1,100)
print("Hello, %s guess a number from 0 to 100" % name)
while tries < 8:
    print("Take a Guess")
    guess=input()
    guess=int(guess)
    if guess < number:
        print("Too Low")
        tries += 1
    if guess > number:
        print("Too High")
        tries += 1
    if guess == number:
        break

if guess == number:
   print("You got it, in %s tries" % tries)

if guess != number:
    print("Sorry try again!")

但它给出了一个错误:

Traceback (most recent call last):
  File "/Users/Zuazua/PycharmProjects/untitled/GuessMyNumber2.py", line 10, in <module>
    guess=int(guess)
ValueError: invalid literal for int() with base 10: '23!'

【问题讨论】:

  • 错误是自我解释的。
  • @DmitryPoroh 也许不适合新手!

标签: python validation python-3.x input


【解决方案1】:

guess=int(guess)这一行改成这样:

guess=int(re.search(r'\d+', guess).group())

【讨论】:

    【解决方案2】:

    尝试使用guess=int(guess) 解析输入的值可能会导致不同的异常。快速而肮脏的修复方法 - 将其包装在 try ... except 块中。喜欢:

    try:
        guess=int(guess)
    except ValueError:
        print("Cannot understand your input. Pls, try again")
        continue
    

    此代码将捕获解析期间发生的所有 ValueError 异常。您可以在此处找到有关异常的更多信息:https://docs.python.org/3/tutorial/errors.html#errors-and-exceptions

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2016-07-16
      相关资源
      最近更新 更多