1
我想做一個Eratosthenes腳本的簡單篩選,並且我剛剛開始Python和一般編碼,所以我現在不擔心效率。While loop not add right
import math
primes = range(2,500)
upperLimit = math.ceil(math.sqrt(float(primes[-1])))
def sieve(numbers):
for item in range(0,int(upperLimit)):
n = numbers[item]
while n < upperLimit:
n += numbers[item]
print n
print numbers
numbers.remove(n)
sieve(primes)
print primes
這不停地告訴我在第12行中不存在該numbers.remove(N),所以我把它上面的打印語句,試圖找出發生了什麼事情。它運行良好,刪除它應該達到的最多24個。然後,而不是再次添加2到n,它將n更改爲6.這就是給我的錯誤,但我不明白爲什麼它繼續這樣做。
我明白了。謝謝,這真的很有幫助。 – nolefan33