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

Try Except float but not integer

所以,我在编程练习中遇到了障碍。我理解 try except 的概念,但是我如何使用 try except 处理程序来只接受浮点数或小数,如果输入整数或整数,它会抛出一条错误消息。我知道理论上这是不可能的,但有办法吗?

理想情况下,我想使用 try except 代码块,因为那是我当前正在学习的课程。

提前致谢!

float 上使用 .is_integer() 怎么样?

>>> float(5).is_integer()
True
>>> float(5.12).is_integer()
False
>>> 

所以

if float(x).is_integer():
    raise ValueError('Non integers please')
if type(variable) is not float:
    raise ValueError('Invalid number provided')

if type(variable) is int:
    raise ValueError('Invalid number provided')

或(检查是否为整数):

if abs(variable) - floor(abs(variable)) < 1.0e-9:
    raise ValueError('Invalid number provided')
you can check the number against types.
# add or remove types from the list
if type(num) in (float, int, Decimal):
  do something 

这里有很好的答案,但到目前为止答案没有按要求使用 try/except。要使用 try except,你需要尝试一些东西,如果 false 会抛出异常,然后捕获异常。

try:
    x / (x - int(x))
except ZeroDivisionError:
    raise Exception("No integers allowed.")