为什么我总是收到名称错误?欧拉 2 Python
Why do I keep getting name errors? Euler 2 Python
每当我在函数中定义每个变量时,我都会收到一个错误,例如 "NameError: name 'Tempsum' is not defined." 当我将它们设为全局变量时,我会收到一个错误,例如 "UnboundLocalError: local variable 'Tempsum' referenced before assignment"
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
您收到 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()
每当我在函数中定义每个变量时,我都会收到一个错误,例如 "NameError: name 'Tempsum' is not defined." 当我将它们设为全局变量时,我会收到一个错误,例如 "UnboundLocalError: local variable 'Tempsum' referenced before assignment"
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
您收到 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()