나는 print_backward
함수 코드를 온라인으로 받았지만, 나는 그게 어떻게 작동하는지 그리고 그 출력에 대해서는 매우 혼란 스럽다. .파이썬 재귀 함수에 대한 혼동
아래 코드는 제 코드입니다.
def print_backward(num):
if num == 10:
return
num += 1
print(num)
print_backward(num)
print("yeah")
print(num)
print()
print_backward(6)
아래 내용이 출력됩니다.
7
8
9
10
yeah
10
yeah
9
yeah
8
yeah
7
나는 그것이 그것이 + = 1
그러나 NUM 10을 달성하면 나는 혼란 오전의 print_backward
해야 반환 NUM, 재귀 를 호출 할 때마다부터, 7 ~ 10 인쇄하는 방법을 이해할 수있다 , 그 다음에 끝났다. 그것은 인쇄하지 말아야합니다 10, 예 9, 예 8, 예 7. 왜이 코드가 반환을 호출했는지, 어떻게 여전히 인쇄 할 수 있습니까? 이 코드가 뒤로 인쇄하는 방법, 즉 print(num)
을 호출 한 이유는 무엇입니까? 은 10에서 7까지 인쇄 할 수 있습니까? 첫 번째 실행에
설명해 주셔서 감사합니다. 그것은 아주 분명하다. – OregonDuck
정말 고맙습니다. – OregonDuck
괜찮습니다! 이러한 재귀 호출은 매우 직관적이지 않습니다. 디버거를 사용하면 가끔 도움이 될 수 있습니다. –