使用If语句即使零分割错误

时间:2018-01-23 06:49:48

标签: python

我的老师告诉我使用if语句来摆脱Zero Division错误,但我在互联网上看到的只是对抗它而不是if语句的函数。

#date January 22, 2018
#title Finding Slope Of A Line

x1 = input ("Give a value for x1 that is less than ten: ")
x2 = input ("Give a value for x2 that is less than ten: ")
y1 = input ("Give a value for y1 that is less than ten: ")
y2 = input ("Give a value for y2 that is less than ten: ")

x1 = int(x1)
x2 = int(x2)
y1 = int(y1)
y2 = int(y2)

y = y2 - y1
x = x2 - x1

if x == 0:
    print("Undefined")

yx = y/x
yx = int (slope)

if yx != 0:
    print ("%d"%yx)
if yx == 0:
    print ("Undefined")

3 个答案:

答案 0 :(得分:1)

else在这里很有用:

if x == 0:
    print("Undefined")
else: 
    yx = y/x
    yx = int (slope)

    if yx != 0:
        print ("%d"%yx)
    else:
        print ("Undefined")

答案 1 :(得分:1)

正如@Stephen Rauch所提到的,你可以选择使用else阻止,或者如果阻止你可以检查!=(如果允许负值):

if x != 0:
    yx = y/x
    rest of your code

以下是一些例子。

我们把x等于0:

with x == 0

我们把x不等于0:

with x != 0

答案 2 :(得分:0)

如果你使用的是if语句,但是你没有return任何内容,那么它之后的代码仍将被执行。 您可以通过将@Stephen Rauch提到的else中的其余相关代码包装起来来避免这种情况。

仅供参考:开始学习编程时的常见错误, print return 没有 相同。

或者,您可以使用try/except

处理ZeroDivisionError
......
y = y2 - y1
x = x2 - x1

try:
    # not sure what this does
    yx = y/x
    yx = int (slope) # I'm assuming you have slope defined somewhere
    print ("%d"%yx)
except ZeroDivisionError:
    print ("Undefined")

注意:这只处理ZeroDivisionError。有关错误处理的更多信息,请访问上面的链接