为什么我一直收到姓名错误? Euler 2 Python

时间:2015-02-17 21:07:50

标签: python variables

每当我定义函数中的每个变量时,我都会收到错误,例如" 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

1 个答案:

答案 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()
相关问题