我试图在两个表之间进行查找。使用递归调用。但总是一无所获。原因是什么
def checkExchangerate(yearEc,monthEc,dayEc,currCode):
currCodes = {
'gbp' : 'GBP/EUR',
'usd' : 'USD/EUR'
}
retVal = exch_rate[currCodes[currCode]][exch_rate['DAGS']==dt(yearEc,monthEc,dayEc)]
print(retVal)
if retVal.empty:
dayEc = dayEc-1
checkExchangerate(yearEc,monthEc,dayEc,currCode)
else:
return min(retVal)
支票兑换率(1999,1,17,'usd') 返回None
table exch_rate is pd.DataFrame:
DAGS USD/EUR GRP/EUR
1999-1-15 0,66 0,4
1999-1-18 0,65 0,4
预期输出为0.66
请在您的问题中添加一些示例数据
在代码中:
如果retVal为空,它将递归地调用自身。但是当它从递归中出来时,它对返回值不做任何处理,所以它不返回任何值
要解决这个问题,应该
return
递归返回的值:此外,您还可以替换:
与
但是,我建议使用循环,而不是递归:
这可能导致无限循环(就像您的代码可能导致无限递归一样),因此下面是一个for循环的版本:
您可以将
20
更改为不同的数字。或者使用range(dayEc, 1, -1)
,因为我认为这一天永远不应该少于1
相关问题 更多 >
编程相关推荐