我想在这个简单的代码中验证数据类型为 int 或 float,我在某处出错了,无论如何都会显示错误消息"输入整数!我已经尝试将 == 而不是 != 放在 if 之后,但问题仍然存在。
def menuLoop():
marks = input("Please Enter the Obtained Marks: ")
if type(marks) != int or float:
print("Enter an integer!")
menuLoop()
else:
if int(marks) >= 75:
print("A")
menuLoop()
elif marks >= 60:
print("B")
menuLoop()
elif marks >= 35:
print("C")
menuLoop()
elif marks < 35:
print("D")
menuLoop()
menuLoop()
这有点棘手,但它会修复逻辑,将您的条件更改为:
if not marks.replace('.','',1).isdigit():
print("Enter an integer!")
menuLoop()
如果用户输入int
或float
,它将进入if
。
.replace('.','',1)
将仅替换一个.
然后检查所有其他字符是否为数字。
在Python中,问题是默认情况下,input()
既不int
也不float
,这是一个string
。
如果要检查输入是否为int
的形式,则可以这样做:
try:
# mark is going to convert in int, if it can.
# otherwise, it will throw a ValueError
mark = int(mark)
except ValueError:
# Handle the exception
print 'Please enter an integer'
menuLoop()
该函数int()
引发一个ValueError
,如果给定的参数在int
中不可转换。因此,在捕获该ValueError
之后,我们可以显示一条消息,输入一个int
eger值,就像我上面显示的那样。