Python需要缩进Else条件错误

Python需要缩进Else条件错误,python,Python,不知道为什么这个代码不起作用。看起来缩进是正确的 count = 1 prime = 3 prime_sum_total = 0 while count != 10: for k in range(2,prime): #from 2 up to but not including prime. if prime%k == 0: break else: prime_sum_total = prime+pr

不知道为什么这个代码不起作用。看起来缩进是正确的

count = 1
prime = 3

prime_sum_total = 0

while count != 10:
    for k in range(2,prime):  #from 2 up to but not including prime. 
        if prime%k == 0:       
            break
    else:
        prime_sum_total = prime+prime_sum_total
        count += 1
        print(prime)   #<---This is where python is saying 
    prime += 2         #IndentationError: unindent does not match any 
                       #outer indentation level
print prime_sum_total

当我复制并粘贴到文件中时,您发布的代码工作正常。最有可能的问题是,问题行的缩进是制表符和空格的混合。在编辑器中,它的缩进量可能与上面的行相同,但这取决于选项卡宽度设置。试着让缩进只使用制表符或空格,看看这是否解决了问题。

我不确定我是否理解你的问题。你能发布一段完整的代码并解释为什么它没有像你期望的那样运行吗?else分支中的代码需要缩进,因为Python就是这样知道哪些语句是else块的一部分。我发布了完整的代码。是的,我复制粘贴了自己的代码并删除了旧代码,现在它可以工作了。我以后只能使用标签。谢谢你,这让我快发疯了。@AndrewFerro太棒了!是的,当它第一次出现在我身上的时候,它让我发疯:你能接受我的答案吗?@AndrewFerro我在一个很大的系统上工作,这个系统主要是用Python实现的。我们建议您考虑采用您自己的做法是将编辑器设置为将标签转换为四个空格,并仅使用缩进空间。避免使用制表符的原因是每个制表符的缩进量没有很好的定义,并且使用空格可以确保a如果看起来正确,它会工作,b无论何时使用单空格字体格式化,代码都会保持一致。谢谢Mark,我会这样做。