【发布时间】:2017-05-03 06:50:05
【问题描述】:
我正在处理 python 中的一个小问题。这就是问题 -
给定一个整数数组,如果数组包含 6,则递归计算。我们将使用只考虑数组中从给定索引开始的部分的约定。这样,递归调用可以通过 index+1 向下移动数组。初始调用将传入索引为 0。
array6([1, 6, 4], 0) → true
array6([1, 4], 0) → false
array6([6], 0) → true
这是我想出的解决方案。
def array6(intList, index):
if len(intList) < index + 1:
print(False)
else:
if intList[index] == 6:
print(True)
else:
array6(intList, index + 1)
脚本似乎可以正常工作,除非我将 print 更改为 return 语句并将其称为: print(array6([1, 6, 4], 0)) 它在控制台中显示“None”。为什么是这样?理想情况下,它应该显示 True 或 False - 对吗?还是我在脚本中遗漏了什么?
【问题讨论】:
-
您很可能忘记返回
array6。你能告诉我们return的代码吗?