我如何测试以确保用户输入是Python 3中的整数?

时间:2016-05-06 02:47:09

标签: python python-3.x

我让用户输入一个整数。如果他们不这样做,我想告诉他们他们的错误,并要求他们提供不同的意见。

这是我到目前为止所做的:

while (float(dimension) % int(dimension)) > 0:
    prompt = "That number won't work. Please enter an integer between 3-9"
    prompt += "\n>>>"
    dimension = input(prompt)

每次我运行它,让我们说测试它我输入数字5.1。这是我得到的错误:

ValueError: invalid literal for int() with base 10: 5.1

我输入的任何非整数都会发生这种情况。不确定我做错了什么。

1 个答案:

答案 0 :(得分:1)

EAFP(更容易请求宽恕而不是许可):

dimension = None
while dimension is None:
    try:
        dimension = int(input(">>>"))
    except ValueError:
        print("That number won't work. Please enter an integer.")

你需要3-9的额外逻辑;我可能会把它编码为if dimension < 3 or dimension > 9: raise ValueError()类似的东西,但是有些人会对这种风格不屑一顾。