我在我的代码中包含了验证,以确保只能输入一个数字。但是,当输入负数时,程序不接受负数作为有效输入。我怎么解决这个问题?代码是:
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) + '='))
谢谢, 约翰史密斯
答案 0 :(得分:1)
仅当字符串中的所有字符都是数字时,isdigit
方法才返回True。在负数的情况下,它们以短划线( - )开头,而不是数字。
此外,您正在为Answer变量添加一些运算符和等号;这也不是数字。
我认为在Python中测试字符串是否为有效数字的传统方法是使用内置的int
:
try:
int(some_string)
is_valid_number = True
except ValueError:
is_valid_number = False