缩进错误 - python
Indentation error - 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 有点陌生。
如能就此错误提供任何帮助,我们将不胜感激。谢谢!
我将该代码放入我的编辑器中,它编译得很好。所以我转到第 12 行 sieve = [True] * n
并去掉了缩进,因此它的缩进与上面的行相同 def primes(n):
并且我能够重新创建你的错误。
也许可以尝试添加比您想象的更多的缩进。如果你想要不同的编辑器,你也可以尝试 Enthought Canopy,如果你去大学,它是免费的。
下载类似 Sublime 的内容并突出显示代码。空格为点,制表符为破折号。
我不确定我的代码有什么问题。我正在尝试编写一个程序来查找数字的质因数分解,并遍历数字。我的代码是
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 有点陌生。
如能就此错误提供任何帮助,我们将不胜感激。谢谢!
我将该代码放入我的编辑器中,它编译得很好。所以我转到第 12 行 sieve = [True] * n
并去掉了缩进,因此它的缩进与上面的行相同 def primes(n):
并且我能够重新创建你的错误。
也许可以尝试添加比您想象的更多的缩进。如果你想要不同的编辑器,你也可以尝试 Enthought Canopy,如果你去大学,它是免费的。
下载类似 Sublime 的内容并突出显示代码。空格为点,制表符为破折号。