我不確定我的代碼出了什麼問題。我正在嘗試編寫一個程序來查找數字的主要因式分解,並遍歷數字。我的代碼是縮進錯誤 - python
import math
import time
def primfacfind(n1,n2):
while n1 < n2:
n = n1
primfac=[]
time_start = time.clock()
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]]
print primes(n)
def factfind(lsp,n): #finds factors of n among primes
for i in lsp:
if n%i==0:
primfac.append(i)
else:
i+=1
factfind(primes(n),n)
print primfac
def simplify(lsp):
for i in lsp:
if lsp.count(i) > 1:
i+=1 #should simplify to 3^2 instead of 3,3; unfinished
time_end = time.clock()
time_elapsed = time_end - time_start
print time_elapsed
n1+=1
print primfacfind(6,15)
給出的錯誤是
Traceback (most recent call last):
File "python", line 15
sieve = [True] * n
^
IndentationError: expected an indented block
我已經在我的壓痕檢查一遍又一遍,而且我不確定,什麼是錯的。當程序不在整體函數和while循環中時,該程序起作用,但我不明白這應該如何改變。如果答案代碼儘可能簡單明白,我會很感激,因爲我對Python有點新鮮。
任何幫助這個錯誤,將不勝感激。謝謝!
你很可能混合了空格和製表符。獲得一個文本編輯器,可以修復 –
@MosesKoledoye,我正在使用repl.it,一個在線編譯器,並且我一直在點擊Tab鍵... – heather
某處可能存在錯誤的空間。很難說。有沒有辦法在你的電腦上使用python?文本編輯器是蜜蜂膝蓋。另外,雖然有時候您想要在其他函數中定義函數,但在這種情況下,它們應該在外部定義。這也可能有助於縮進問題。 –