Python:如何管理ZeroDivision

2024-04-25 03:54:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,我正努力解决这个错误,下面是我的代码:

new_dictionary = dict(((i,f), abs(int(-d/-(-first_dictionary[i, f]//second_dictionary[i, f])))) for i in I for f in F)

我得到的回报是:ZeroDivisionError: float division by zero

我知道发生这个错误是因为第一个字典和第二个字典的一些值等于0.0,但是我不知道如何管理它。在

我试图定义这个函数:

^{pr2}$

但是输出结果与我预期的不同,它为字典中的所有键提供了相同的值。在

如何解决此错误?提前谢谢!在


Tags: 代码innewfordictionary字典错误abs
2条回答

源-Reference

>>> try:
    ...     f(0)
    ... except ZeroDivisionError:
    ...     import traceback
    ...     traceback.print_last()
    ... 
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>

您可以使用它来检查导致错误的第一个实例

如果希望显式检查而不是错误捕获,则不需要执行两个循环:

def safe_division(a, b):
    if not b:
        return 0
    return a / b

new_dictionary = dict(((i,f), abs(int(safe_division(-d, safe_division(-first_dictionary[i, f], second_dictionary[i, f]))))) for i in I for f in F)

事实上,让我们在听写理解方面稍微好一点:

^{pr2}$

相关问题 更多 >