所以,我在编程练习中遇到了障碍。我理解try的概念,但是我怎么能使用try除了handler只接受一个浮点数或十进制数,如果输入一个整数或整数,它会抛出一条错误信息。我在理论上知道它不可能但是有办法吗?
理想情况下,我想使用try代码块,因为这是我当前的课程。
提前感谢所有人!
答案 0 :(得分:5)
如何在.is_integer()
上使用float
?
>>> float(5).is_integer()
True
>>> float(5.12).is_integer()
False
>>>
所以
if float(x).is_integer():
raise ValueError('Non integers please')
答案 1 :(得分:1)
if type(variable) is not float:
raise ValueError('Invalid number provided')
OR
if type(variable) is int:
raise ValueError('Invalid number provided')
OR(检查整数):
if abs(variable) - floor(abs(variable)) < 1.0e-9:
raise ValueError('Invalid number provided')
答案 2 :(得分:1)
这里有很好的答案,但到目前为止,答案并没有按要求使用try / except。要使用try except,您需要尝试在false时抛出异常然后捕获异常的东西。
try:
x / (x - int(x))
except ZeroDivisionError:
raise Exception("No integers allowed.")
答案 3 :(得分:0)
you can check the number against types.
# add or remove types from the list
if type(num) in (float, int, Decimal):
do something