0
我在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語句中包含的狀態。 對我來說,最奇怪的是它在某個點打印正確的狀態,但不會返回它。
我無法理解爲什麼......我真的好奇我該如何使用遞歸函數來執行此任務。
感謝解釋這兩個如何糾正我的代碼,以及如何寫出更好的,非遞歸函數。我不知道是否有必要返回bugged_recursion() 道歉,如果我似乎天真,但我是一個自學者,我會看看你的鏈接!感謝您的幫助,我很高興今天學到了一些東西! –