数字の素因数分解を見つけるためのコードを書いています。 main関数は数値をインクリメントします。タイミング実験を行うためにコードを使用したいので、私はそれをやっています。私はそれが超効率的ではないことを気にしない、私のためのプロジェクトの一部は、より効率的な自分自身になるでしょう。それはまだ完全には完了していない(例えば、素因数分解を単純化しない)。私は主要な機能を除いてすべての機能をテストしていますし、機能しているので問題はありません。.clear()リストが機能しない - python
私のコードは
import math
import time
primfac=[]
def primes(n):
sieve = [True] * n
for i in xrange(3,int(n**0.5)+1,2):
if sieve[i]:
sieve[i*i::2*i]=[False]*((n-i*i-1)/(2*i)+1)
return [2] + [i for i in xrange(3,n,2) if sieve[i]]
def factfind(lsp,n): #finds factors of n among primes
for i in lsp:
if n%i==0:
primfac.append(i)
else:
i+=1
def primfacfind(n1,n2):
while n1 < n2:
n = n1
time_start = time.clock()
factfind(primes(n),n)
print primfac
time_elapsed = time.clock() - time_start
print "time:", time_elapsed
primfac.clear()
n1+=1
print primfacfind(6,15)
そして、それは出力
[2, 3]
time: 7.5e-05
Traceback (most recent call last):
File "python", line 43, in <module>
File "python", line 39, in primfacfind
AttributeError: 'list' object has no attribute 'clear'
を与え、私が間違っているものを本当によく分からない実行されています。それは素因数分解のための正しい数を与えており、それは時間を印刷していますが、リストをクリアするようには見えません。行primfac.clear()
をコメントアウトすることは機能しています。
ご協力いただければ幸いです。ありがとう!
[なぜpythonにlist.clear()メソッドがありませんか?](http://stackoverflow.com/questions/1401933/why-is-there-no-list-clear-method-in-python)説明のために。 – roganjosh
@roganjosh 'clear'メソッドがPython 3で追加されました。OPはおそらくPython 2を使用しています –
@roganjosh、ありがとう、ありがとう。私はlist.clear()が3.3で追加されただけであることをドキュメントでは言及していないことを実際に素早く指摘するかもしれません。それは私を捨てた。 – heather