尝试除了浮点数但不是整数
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.")
所以,我在编程练习中遇到了障碍。我理解 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.")