每当我定义函数中的每个变量时,我都会收到错误,例如" NameError:name' Tempsum'没有定义。"当我将它们作为全局变量时,我会收到一个错误,例如" UnboundLocalError:局部变量' Tempsum'在分配之前引用"
Tempsum=0
FirstNum = 1
SecondNum = 2
SumofFibinaci= 0
def Fibinaci_calculator():
while Tempsum <= 4000000:
Tempsum= SecondNum
m= 2
if Tempsum % m == 0:
SumofFibinaci += Tempsum
Tempsum = SecondNum+ FirstNum
FirstNum= SecondNum
SecondNum= Tempsum
print SumofFibinaci
pass
print Fibinaci_calculator
答案 0 :(得分:2)
您得到UnboundLocal
错误Tempsum
在功能范围内不是全局错误。你指定它,所以它是一个本地的,除非另有明确说明。
你 Tempsum
在这里不是全球性的。将Tempsum = 0
行移动到该函数中。这适用于您的所有变量:
def Fibinaci_calculator():
Tempsum = 0
FirstNum = 1
SecondNum = 2
SumofFibinaci = 0
while Tempsum <= 4000000:
Tempsum = SecondNum
m = 2
if Tempsum % m == 0:
SumofFibinaci += Tempsum
Tempsum = SecondNum + FirstNum
FirstNum = SecondNum
SecondNum = Tempsum
return SumofFibinaci
我认为你想要SumofFibinaci
返回。
不要忘记调用你的功能:
print Fibinaci_calculator()