用列表和括号打印偶数

时间:2018-11-11 23:52:43

标签: python python-3.x for-loop

当我出于某种原因运行以下代码时,它表示该中断不正确,但是如果删除该中断,则可以使用。

有人可以帮助我了解原因吗?

composites = []
for i in range(101):
    for j in range(i):
        if (i % j) == 0:
            composites.append(i)
            break
print("Composites: ", *composites)

2 个答案:

答案 0 :(得分:3)

提供的示例代码引发了ZeroDivisionError而不是中断错误。第二个范围存在问题,因为模函数不能用0来完成。

由于组合不是非质数,因此应从2开始进行因数检查。将第二个范围函数更改为range(2, i)应该可以解决此问题。

composites = []
for i in range(101):
    for j in range(2, i):
        if (i % j) == 0:
            composites.append(i)
            break
print("Composites: ", *composites)

答案 1 :(得分:1)

此代码在python 3.7中对我有效,range(10)将产生[0,1,2,3,4,5,6,7,8,9]这将产生ZeroDivisionError: integer division or modulo by zero

composites = []
   for i in range(1,101):
      for j in range(2,i):
        if (i % j) == 0:
          composites.append(i)
          break
print("Composites: ", *composites)