作为练习,我试图在Python中使用递归找到列表中的最低正数。这几乎可行,在 CircleOptions co = new CircleOptions();
co.center(point);
co.radius(distance);
co.strokeColor(getResources().getColor(R.color.light_blue));
co.strokeWidth(2.0f);
co.fillColor(Color.parseColor("#8CFFFFFF"));
googleMap.addCircle(co);
时找到2,但最终返回print(first)
。有没有办法修复此代码或我是否在错误的轨道上?
None
编辑:此问题与其他问题不完全相同。寻找这种答案的人不会找到另一个,因为它以一种非常不同的方式提出类似的问题。 Stack Overflow具有有用的内容,但敌意和贬低是令人讨厌的。
答案 0 :(得分:2)
问题是您忘记在第二个return
和if
个案例中添加else
声明。
以下内容应该有效:
def find_lowest(lst):
"""Return the lowest positive number in a list."""
def lowest(first, rest):
# Base case
if len(rest) == 0:
return first
if first > rest[0] or first < 0:
return lowest(rest[0], rest[1:])
else:
return lowest(first, rest[1:])
return lowest(lst[0], lst[1:])
a = [6, -4, 4, 8, -127, 5, 7, 2, 3, 9]