我的老师告诉我使用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")
答案 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:
我们把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。有关错误处理的更多信息,请访问上面的链接