当我尝试运行此代码时,我的计算机基本崩溃。
有人可以指出原因吗?
我意识到调整列表大小并不是最有效的方法,但即使在 10 下键入任何数字也不会产生任何效果,导致spyder或我的计算机崩溃
我的目标是设置一个课程,我可以存储某个人的号码实例,这样如果有人想要拨打相同的号码,我就不必再次运行该功能。
class eratosthenes(object):
def __init__(self, b):
self.b = b
count1 = 2
self.lst = []
while count1 <= b:
self.lst.append(count1)
count1+=1
def sieve(self):
self.count2 = 2
while self.count2 < self.b/2.0:
for i in self.lst:
if i%self.count2==0:
self.lst.remove(i)
self.count2+=1
a=raw_input("How far are you willing to go in this search for what you seek, young traveler?: ")
q = eratosthenes(a)
print q.sieve()
答案 0 :(得分:1)
考虑一下:
lst = [1, 2, 3, 4, 5]
for entry in lst:
print(entry)
lst.remove(entry)
您认为代码会打印值1,2,3,4和5.相反(在macOS Sierra上的Python 3.6下),您将获得1,3和5。
当您向下走时,修改列表是禁忌。如果您查看sieve
方法,那就是您正在做的事情。
希望这有帮助!