为什么这个自定义和函数给我错误



我只是尝试用我自己的自定义函数做n个自然数的和,就像这样。

n = int(input("Enter value of n.n"))
def sumof(n):
for i in range(1,n+1):
s = s +  n -i
if (n - i)<0:
break
return s
print(sumof(n))

错误如下:

s = s +  n -i
UnboundLocalError: local variable 's' referenced before assignment

看起来像错误,因为变量's'。然后我意识到我没有赋值那个变量。所以我分配它s=0作为一个全局变量,但我仍然得到相同的错误。

请告诉我我哪里做错了。我是python的新手,很抱歉在我的程序中犯了一个愚蠢的错误。如果错误来自。

引用它之前你需要初始化s

n = int(input("Enter value of n.n"))
def sumof(n):
s = 0 # <--- Add this line
for i in range(1,n+1):
s = s +  n -i
if (nthterm - i)<0:
break
return s
print(sumof(n))

我发现这些:

  • 你需要在function
  • 的第一行写s=0
  • 检查for中的if and break,如下所示。(您可以在forwhile中写入break,然后当到达break时,您可以从loop退出)
  • (你在哪里定义nthterm?)
n = int(input("Enter value of n.n"))
def sumof(n):
s = 0
for i in range(1,n+1):
s = s +  n -i
# if (nthterm - i)<0:
#    break
return s
print(sumof(n))

如果你想在函数中使用variable作为gloabl,写如下:

s = 0
def sumof(n):
global s
...

最新更新