【发布时间】:2016-08-10 15:16:10
【问题描述】:
我目前正在学习递归函数,我已经部分解决了这个问题。
例如,如果输入是 [4,4,3],则输出应该为真。后续元素必须至少与前一个元素一样大。
这是我的代码:
def descending(l):
x=0
if len(l)==0 or len(l)==1:
return True
for value in range(0,len(l)):
if l[value]>=l[value]+1:
x=l[value]+1
descending(l[x:len(l)])
return True
else:
return False
请告诉我为什么我的逻辑在某些情况下会失败。
【问题讨论】:
-
为什么将
x设置为l[value] + 1(列表中的值之一),然后尝试将其用作下一行的索引(x:len(l))?跨度> -
这是我关于递归的唯一问题。我的其他问题如下:为什么要对这个问题使用递归?它不太适合它。为什么要使用尴尬的
for value in range(0, len(l))而不是直接迭代列表中的值? (当它显然是一个索引时,你称它为value也令人困惑......)x的目的是什么? -
完全偏离主题,但请不要使用
l作为变量名 - 它看起来太像1。 -
我认为在比较前 2 个元素之后,我必须从该元素开始传递列表。这就是为什么我分配 x 下一个值并从那时开始开始我的列表
标签: list python-3.x recursion