烧火棍 发表于 2017-7-27 09:37:38

求教大神,python这样写为什么会报错

a=[]
for number in range(3,31):
    a.append(number)
b=a[:]

for num in a:
    for value in range(2,num):
      if num % value == 0:
            b.remove(num)
      else:
            continue

b.insert(0,2)
print(b)

想写个求30内质数的程序,结果显示Traceback : ValueError: list.remove(x): x not in list{:10_250:}

冬雪雪冬 发表于 2017-7-27 09:48:38

这个错误提示是要移出的元素不在列表中。
问题出现在两层for循环中。以num=6为例,当value=2时,num % value == 0,b移出了6,然后当value=3时,num % value == 0,再去移出6,就出错了。

烧火棍 发表于 2017-7-27 09:54:02

冬雪雪冬 发表于 2017-7-27 09:48
这个错误提示是要移出的元素不在列表中。
问题出现在两层for循环中。以num=6为例,当value=2时,num % val ...

谢谢大神{:10_257:}我在b.remove(num)后面添加个break,现在能用了
页: [1]
查看完整版本: 求教大神,python这样写为什么会报错