Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我总是收到名称错误?Euler2Python_Python_Variables - Fatal编程技术网

为什么我总是收到名称错误?Euler2Python

为什么我总是收到名称错误?Euler2Python,python,variables,Python,Variables,每当我在函数中定义每个变量时,都会出现一个错误,如“NameError:name'Tempsum'未定义”。当我将它们设为全局变量时,会出现一个错误,如“UnboundLocalError:赋值前引用的局部变量'Tempsum' Tempsum=0 FirstNum=1 SecondNum=2 sumoffininaci=0 def Fibinaci_计算器(): 而Tempsum则会得到UnboundLocal错误Tempsum在函数范围内不是全局的。您分配给它,因此它是本地的,除非另有明确说

每当我在函数中定义每个变量时,都会出现一个错误,如“NameError:name'Tempsum'未定义”。当我将它们设为全局变量时,会出现一个错误,如“UnboundLocalError:赋值前引用的局部变量'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()