尝试除浮点数外但不是整数

时间:2015-10-07 21:30:54

标签: python try-except

所以,我在编程练习中遇到了障碍。我理解try的概念,但是我怎么能使用try除了handler只接受一个浮点数或十进制数,如果输入一个整数或整数,它会抛出一条错误信息。我在理论上知道它不可能但是有办法吗?

理想情况下,我想使用try代码块,因为这是我当前的课程。

提前感谢所有人!

4 个答案:

答案 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