我为什么一直得到名称错误?Euler 2 Python

2024-09-30 12:32:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

Tags: 函数name定义错误calculatorprint未定义全局变量
1条回答
网友
1楼 · 发布于 2024-09-30 12:32:11

得到的UnboundLocal错误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()

相关问题 更多 >

    热门问题