"Unindent does not match any outer indentation level" 但我找不到任何 space 或 taberror

"Unindent does not match any outer indentation level" But I can't find any space or taberror

我收到错误 "unindent does not match any outer indentation level"。但是,当我 google 问题时,答案始终是制表符和空格可以互换使用或类似的东西,但我找不到我的情况可能出什么问题。我重写了它,确保所有内容都是制表符,然后再次重写,这次所有内容都带有空格。我不断收到错误消息。有帮助吗?

注意:错误出现在 "if n == 2:" 行


def is_prime_v3(n):
     '''return 'True' if 'n' is a prime number. False otherwise.'''
     if n == 1:
         return False

    #if the number is even and larger than 2, it is not a prime number.
    if n == 2:
        return True
    if n>2 and n%2==0:
        return False    

    max_divisor = math.floor(math.sqrt(n))
    for d in range(3, 1+max_divisor,2):
        if n%d == 0:
            return False
    return True

您的 if n==1 以及文档字符串比 if n==2 和其余代码多 space。

在函数内部将它们设置为 "zero level" 缩进,并且以下代码 "un-indents" 小于零。

问题位于“”return...代码段“”和 if n == 1: 之间。有一个不知名的角色做了什么....

立即尝试:

import math

def is_prime_v3(n):
  X  '''return 'True' if 'n' is a prime number. False otherwise.'''
                         # whitespace too many at X.
  Y  if n == 1:          # whitespace too many at Y.
  Z      return False     # whitespace too many at Z.
    # if the number is even and larger than 2, it is not a prime number.
    if n == 2:
        return True
    if n>2 and n%2==0:
        return False    

    max_divisor = math.floor(math.sqrt(n))

    for d in range(3, 1+max_divisor, 2):
        if n%d == 0:
            return False
    return True

print ('luck or lol : %s' % is_prime_v3(3))

编辑:更具体地说,看起来有一个:

SyntaxError: unexpected EOF while parsing with an "EOF".

'''return 'True' if 'n' is a prime number. False otherwise.'''

IndentationError: unindent does not match any outer indentation level

其中后者你现在可能已经搞定了