我想在此简单代码中将数据类型验证为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()
答案 0 :(得分:0)
在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值,就像我上面显示的那样。
答案 1 :(得分:0)
这有点棘手,但是它将解决逻辑,将您的条件更改为:
if not marks.replace('.','',1).isdigit():
print("Enter an integer!")
menuLoop()
如果用户输入if
或int
,它将进入float
内。
.replace('.','',1)
将仅替换一个.
,然后检查所有其他字符是否为数字。