首页 > 解决方案 > 除了多个元素,我如何使用 try?

问题描述

所以我试图设置几个值除以可能为 0 的其他变量,所以我决定使用 try 除了:

    try:
        p = pacific / float(a)
        m = mountain / float(b)
        c = central / float(c)
        e = eastern / float(d)
    except ZeroDivisionError:
        p = 0
        m = 0
        c = 0
        e = 0

    print(p)
    print(m)
    print(c)
    print(e)

因此,由于 abc 和 d 都可能为零,我想创建一个实例,如果 pmc 或 e 由于 abc 或 d 为零而最终未定义,那么我只想设置一个特定的未定义变量(pmc 或e) 为 0。例如,如果 pmc 都分成浮点数,但 d 为 0,并且 e 变为未定义,我想返回 p、m 和 c 的数值,但 e 为 0。我如何实现这一点? 我上面的代码,如果 pmc 或 e 中只有一个变量未定义,则将 pmc 和 e 全部设置为 0。我知道我可能会强制执行此操作并尝试除 4 个变量中的每一个变量外,但我正在寻找一种方法来缩短这段代码。

标签: pythontry-except

解决方案


您可以编写一个函数来尝试除法并返回默认值。

def mydiv(a, b):
    try:
        return a/float(b)
    except ZeroDivisionError:
        return 0

p = mydiv(pacific, float(a))
m = mydiv(mountain, float(b))
c = mydiv(central, float(c))
e = mydiv(eastern, float(d))

推荐阅读