【发布时间】:2015-08-03 12:22:50
【问题描述】:
我是 Python 的新手,我正在尝试编写一个简单的递归函数:
def bugged_recursion(inp_value,list_index=0):
'''Define a recursive function that tag lists according to one parameter.
'''
#check if a criterion is true at position 0 in the list
if list_index == 0:
if inp_value[list_index] == 'valid':
status = 'valid inp_value'
#if the criterion is false call the function at the next index
else:
status = 'invalid inp'
list_index +=1
bugged_recursion(inp_value,list_index=list_index)
#check if a criterion is true at position 1 in the list
else:
if inp_value[list_index] == 'valid':
status = 'index {} is a valid inp_value'.format(list_index)
else:
status = 'index is never a valid inp_value'
print(status)
#return the input and its status
return (inp_value,status)
if __name__ == '__main__':
inp_value = ['invalid','invalid']
bugged_recursion(inp_value)
我不明白为什么这个函数会返回 if 语句中的状态,而不是返回最后一个 else 语句中包含的状态。 对我来说,最奇怪的是它会在某些时候打印正确的状态,但不会返回。
我无法理解为什么...我真的很好奇如何使用递归函数来执行此任务。
【问题讨论】:
标签: python-3.x recursion