2024-06-16 11:06:47 发布
网友
如果(int4/int3) == (int3/int2) == (int2/int1),我会做点什么。如果我想同时接收int4==int3==int2==int1==0的结果,我如何处理除法错误
(int4/int3) == (int3/int2) == (int2/int1)
int4==int3==int2==int1==0
try: (int4/int3) == (int3/int2) == (int2/int1) except ZeroDivisionError: PerformA() else: PerformA()
根据您实际想要实现的目标(0语义不清楚),这里有两个选项:
if 0 in (int1, int2, int3, int4) or int1/int2 == int2/int3 == int3/int4: foo()
或者
if not any(int1, int2, int3, int4) or int1/int2 == int2/int3 == int3/int4: foo()
如果我对你的问题理解正确,你只需要知道如何在某些比较可能无效的情况下最好地处理这个比较。我通常看到(和使用)的模式是检查边缘条件(如果它们很常见的话)并处理它们。如果不存在边缘条件,则可以转到标准流程。你知道吗
在这个特殊的例子中,定义了一个边沿情况:当一个分母为零时。因此,请检查int1、int2或int3中的任何一个是否为零,如果是,请采取适当的措施。如果没有,你可以继续你的比率比较。你知道吗
int1
int2
int3
if not (int1 and int2 and int3): do_something_with_zero_values() elif (int4/int3) == (int3/int2) == (int2/int1): # This is now a safe operation do_something()
当然,您也可以使用异常处理来处理边缘情况。通常,您只希望在“异常”情况下使用异常,因此,如果零真的是这些变量的合法值,我建议不要将其概念化为异常。请参阅this question以了解有关该讨论的更多信息。你知道吗
根据您实际想要实现的目标(0语义不清楚),这里有两个选项:
或者
如果我对你的问题理解正确,你只需要知道如何在某些比较可能无效的情况下最好地处理这个比较。我通常看到(和使用)的模式是检查边缘条件(如果它们很常见的话)并处理它们。如果不存在边缘条件,则可以转到标准流程。你知道吗
在这个特殊的例子中,定义了一个边沿情况:当一个分母为零时。因此,请检查
int1
、int2
或int3
中的任何一个是否为零,如果是,请采取适当的措施。如果没有,你可以继续你的比率比较。你知道吗当然,您也可以使用异常处理来处理边缘情况。通常,您只希望在“异常”情况下使用异常,因此,如果零真的是这些变量的合法值,我建议不要将其概念化为异常。请参阅this question以了解有关该讨论的更多信息。你知道吗
相关问题 更多 >
编程相关推荐