Ljubomir Perkovic의 Python을 사용한 컴퓨팅 소개 책을 읽고 있는데이 책의 재귀 섹션에있는 예제 중 하나에 문제가 있습니다. 다음 코드는 :Python3의 재귀 함수에서 print() 사용
def pattern(n):
'prints the nth pattern'
if n == 0: # base case
print(0, end=' ')
else: #recursive step: n > 0
pattern(n-1) # print n-1st pattern
print(n, end=' ') # print n
pattern(n-1) # print n-1st pattern
말하자면
들어, pattern(1)
, 출력 0 1 0
해야하고, 이는 수평으로 표시한다. 그러나 함수 pattern(1)
을 호출 할 때 아무 것도 출력되지 않습니다. 그러나 인수 뒤에 print 문이 오면 결과가 표시됩니다. 나는 재귀 함수 내부의 print()
기능의 end
인수를 제거 할 경우 (이 수직으로 표시이기는하지만)
>>>pattern(1)
>>>print()
0 1 0
, 내가 올바른 출력을 얻을 :
>>> pattern(1)
0
1
0
이 나를 생각하게하는 재귀 코드 자체 (나는 책의 웹 사이트에서 제공 한 소스와 정오표가 맞는지 확인했다.) 그러나 end
매개 변수가 포함 된 경우 print
문이 함수가 실행될 때 출력이 인쇄되지 않는 이유는 확실하지 않습니다. 어떤 도움이라도 대단히 감사하겠습니다.
이 문제는 IDE 특정 될 수있다 :
이 두 프로그램의 차이를 참조하십시오. Ubuntu/gnome-terminal (또는 IPython + emacs)에서 실행되는 Python3을 사용하는 것으로는 보이지 않습니다. – unutbu