为什么我总是收到名称错误?Euler2Python
每当我在函数中定义每个变量时,都会出现一个错误,如“NameError:name'Tempsum'未定义”。当我将它们设为全局变量时,会出现一个错误,如“UnboundLocalError:赋值前引用的局部变量'Tempsum'为什么我总是收到名称错误?Euler2Python,python,variables,Python,Variables,每当我在函数中定义每个变量时,都会出现一个错误,如“NameError:name'Tempsum'未定义”。当我将它们设为全局变量时,会出现一个错误,如“UnboundLocalError:赋值前引用的局部变量'Tempsum' Tempsum=0 FirstNum=1 SecondNum=2 sumoffininaci=0 def Fibinaci_计算器(): 而Tempsum则会得到UnboundLocal错误Tempsum在函数范围内不是全局的。您分配给它,因此它是本地的,除非另有明确说
Tempsum=0
FirstNum=1
SecondNum=2
sumoffininaci=0
def Fibinaci_计算器():
而Tempsum则会得到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
请发布此代码中出现的错误的全文。另外,为什么要为全局方法设置临时状态变量?这只是一个坏主意。可能还需要解决打印Fibinaci\u计算器
,这几乎肯定不是OP想要的。非常感谢您的帮助,修复了该功能!(我对python还是相当陌生)
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
print Fibinaci_calculator()