如何通过 python 中的零错误解决 modulus/division
How to resolve modulus/division by zero error in python
我正在努力调试以下代码,它抛出 ZeroDivisionError:
if num > 0:
return filter(lambda x: abs(num) % x == 0, range(1:abs(num))
else:
pass
错误信息是:
ZeroDivisionError: integer division or modulo by zero
代码有点难看,因为我在添加 if 和 abs() 语句之前收到此错误。
我根据学校要求使用 python 3.6,任务是使用过滤器 return 整数 num
因子。
您的代码 return 出现此错误是因为您定义 range() 的方式。
在 python 中定义范围的正确方法如下:
range(start, stop, step)
如果您的案例使用了切片,这将导致您的程序抛出错误。
对于您的程序,您需要定义一个函数以便 return 从条件语句中获取某些内容,以下代码将解决您的问题
def fac(num):
if num > 0:
return list(filter(lambda x: num % x == 0, range(1, num+1)))
print(fac(5)) # [1, 5]
这里我在列表函数中使用了过滤器,因为在 Python 3 和更高版本中过滤器 returns 过滤器对象。
我正在努力调试以下代码,它抛出 ZeroDivisionError:
if num > 0:
return filter(lambda x: abs(num) % x == 0, range(1:abs(num))
else:
pass
错误信息是:
ZeroDivisionError: integer division or modulo by zero
代码有点难看,因为我在添加 if 和 abs() 语句之前收到此错误。
我根据学校要求使用 python 3.6,任务是使用过滤器 return 整数 num
因子。
您的代码 return 出现此错误是因为您定义 range() 的方式。
在 python 中定义范围的正确方法如下:
range(start, stop, step)
如果您的案例使用了切片,这将导致您的程序抛出错误。
对于您的程序,您需要定义一个函数以便 return 从条件语句中获取某些内容,以下代码将解决您的问题
def fac(num):
if num > 0:
return list(filter(lambda x: num % x == 0, range(1, num+1)))
print(fac(5)) # [1, 5]
这里我在列表函数中使用了过滤器,因为在 Python 3 和更高版本中过滤器 returns 过滤器对象。