解总是返回x=0

2024-05-14 08:29:37 发布

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

在使用这段代码时,我得到的值总是返回0

def fi(arr,mini):
    print(arr)
    if(len(arr)<3):
        x = mini
        return 
    for j in range(1,(math.ceil(len(arr)/2) )):
        l1 = 2*j+1
        if(med(arr[0:l1])<mini):
            mini= med(arr[0:l1])
            print("hello", mini)
    fi(arr[1:],mini)
    return x

Tags: 代码inl1forlenreturnifdef
3条回答

在将x赋值给mini之前,您尚未声明它。默认情况下,函数应该返回什么?你知道吗

您定义了局部变量'x',其作用域仅限于if块,并且您正试图从函数中返回此变量,因此它变得未定义。最好在函数中定义局部变量x,并给它一些函数应该返回的默认值。你知道吗

def fi(arr,mini):
    x = some_default_value
    print(arr)
    if(len(arr)<3):
        x = mini
        return 
    for j in range(1,(math.ceil(len(arr)/2) )):
        l1 = 2*j+1
        if(med(arr[0:l1])<mini):
            mini= med(arr[0:l1])
            print("hello", mini)
    fi(arr[1:],mini)
    return x

只有当len(arr) < 3时才定义x。在其他情况下,它是未分配的。您应该在if块之前或在else块内添加一个默认值,具体取决于您尝试执行的操作。你知道吗

相关问题 更多 >

    热门问题