验证数据类型检查是否符合预期?

时间:2015-11-05 23:01:13

标签: python

我在我的代码中包含了验证,以确保只能输入一个数字。但是,当输入负数时,程序不接受负数作为有效输入。我怎么解决这个问题?代码是:

while QuestionNo != 11:

num1 = randint(0,10)
num2 = randint(0,10)
opp = choice(Operators)
Answer = (input(str(num1) + '' + (opp) + '' + str(num2) + '='))

while Answer.isdigit() == False:
    print ('Please enter a number and nothing else.')
    Answer = (input(str(num1) + '' + (opp) + '' + str(num2) + '='))

谢谢, 约翰史密斯

1 个答案:

答案 0 :(得分:1)

仅当字符串中的所有字符都是数字时,isdigit方法才返回True。在负数的情况下,它们以短划线( - )开头,而不是数字。

此外,您正在为Answer变量添加一些运算符和等号;这也不是数字。

我认为在Python中测试字符串是否为有效数字的传统方法是使用内置的int

try:
    int(some_string)
    is_valid_number = True

except ValueError:
    is_valid_number = False