Python 2.7.10使用int()检查输入是否为整数

时间:2017-07-23 17:03:20

标签: python

我是python的新手,我正在尝试为数学测验编写一段代码,以确保用户在没有程序崩溃的情况下为答案输入一个整数。我试过这样做

react-native-cli

但是当我运行它并且说

时它总会崩溃
    user_answer=raw_input("enter your answer:")
    while user_answer!=int(user_answer):
      user_answer=raw_input("please enter an integer")

有没有办法使用 ValueError: invalid literal for int() with base 10: 检查我的字符串是否为整数?谢谢

1 个答案:

答案 0 :(得分:1)

您的原始输入是strstr永远不会等于int。在try...except

中进行验证
try:
    user_answer = int(user_answer)
except:
    pass

为了重用,您可以使用自己的方法包装该块:

def clean_user_answer(user_answer):
    try:
        return int(user_answer)
    except:
        return None

在验证方法中使用它:

def user_answer_is_valid(user_answer):
    clean_answer = clean_user_answer(user_answer):
    return clean_answer is not None

然后在您的代码中实现它:

user_answer=raw_input("enter your answer:")
while not user_answer_is_valid(user_answer):
  user_answer=raw_input("please enter an integer")