Python-SyntaxError:语法无效

时间:2020-04-12 11:54:06

标签: python

我是Python的初学者,刚刚开始学习。请使用以下代码帮助我。

def sum_divisors(n):
  sum = 0
  divisor = 1
  while divisor < n
  if n % divisor = 0
      sum = sum + divisor
    divisor += 1

  # Return the sum of all divisors of n, not including n

  return sum

print(sum_divisors(0))
# 0
print(sum_divisors(3)) # Should sum of 1
# 1
print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
# 55
print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
# 114

但是,我遇到以下错误,请帮忙:

Error on line 4:
    while divisor < n
                    ^
SyntaxError: invalid syntax

5 个答案:

答案 0 :(得分:0)

您错过了结尾的“:”:while divisor < n:

缩进还存在各种问题。

这可能会解决您的代码:

def sum_divisors(n):
    sum = 0
    divisor = 1
    while divisor < n:
        if n % divisor == 0:
            sum = sum + divisor
        divisor += 1

    # Return the sum of all divisors of n, not including n
    return sum

答案 1 :(得分:0)

很简单:

def sum_divisors(n):
  sum = 0
  divisor = 1
  while divisor < n:
      if n % divisor == 0:
          sum = sum + divisor
      divisor += 1

这是简单的语法:在whileif语句之后应该有一个“:”。 然后缩进。 另外== for if语句

答案 2 :(得分:0)

:while语句和适当的缩进之后,您需要一个冒号(if),并且=用于变量分配,相等的运算符为{ {1}}:

==

答案 3 :(得分:0)

您需要将"/abc/123/def/456/geh"放在:whileif和函数定义之后。另外,您需要使用for而不是==检查是否相等。

=

答案 4 :(得分:0)

缺少冒号的错误很少。我已经解决了。

def sum_divisors(n):
    sum = 0
    divisor = 1
    while divisor < n: 
        if n % divisor == 0:
            sum = sum + divisor
        divisor += 1

  # Return the sum of all divisors of n, not including n

    return sum

print(sum_divisors(0))
# 0
print(sum_divisors(3)) # Should sum of 1
# 1
print(sum_divisors(36)) # Should sum of 1+2+3+4+6+9+12+18
# 55
print(sum_divisors(102)) # Should be sum of 2+3+6+17+34+51
# 114
相关问题