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
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
在将
x
赋值给mini
之前,您尚未声明它。默认情况下,函数应该返回什么?你知道吗您定义了局部变量'x',其作用域仅限于if块,并且您正试图从函数中返回此变量,因此它变得未定义。最好在函数中定义局部变量x,并给它一些函数应该返回的默认值。你知道吗
只有当
len(arr) < 3
时才定义x
。在其他情况下,它是未分配的。您应该在if
块之前或在else
块内添加一个默认值,具体取决于您尝试执行的操作。你知道吗相关问题 更多 >
编程相关推荐