避免函数内部出现ZeroDivisionError

时间:2019-05-18 03:51:21

标签: python python-3.x function exception

我有一个功能正在尝试调整,以避免使用ZeroDivisionError。我尝试过的两种方法还没有解决,我正在寻找任何帮助。

我已经尝试将以下内容添加到我的代码中:

try:
 try:
 raise Exception("0")

但是,这不起作用,我不确定我还能添加什么。

def complexDivide(list_of_numbers, index):
    denom = list_of_numbers[index]
    return [easyDivide(item, denom) for item in
        list_of_numbers]

def easyDivide(item, denom):
    return item / denom

complexDivide ([0, 2, 4], 0)

目标是在调用complexDivide时在代码中添加一些内容,以提供[0,0,0]的列表。

2 个答案:

答案 0 :(得分:2)

如果您希望除以零的结果为零,请设置为:

def easyDivide(item, denom):
    return 0 if denom == 0 else item / denom

complexDivide中做出决定而不是在easyDivide中做出决定可能更快:

def complexDivide(list_of_numbers, index):
    denom = list_of_numbers[index]
    if denom == 0:
        return [0] * len(list_of_numbers)
    return [easyDivide(item, denom) for item in
        list_of_numbers]

答案 1 :(得分:0)

您可以将complex_divide函数修改为:

def complex_divide(list_of_numbers, index):
    denominator = list_of_numbers[index]

    if denominator != 0:
        return [item / denominator for item in list_of_numbers]

    return [0 for _ in list_of_numbers]

easy_divide功能可以跳过。