아래 코드 줄은 실행되지만 len (fib_list)가 <20에 도달하면 while 루프가 중지되지 않습니다. 대신 거꾸로 목록에 추가됩니다. 어떤 아이디어?
fib_list = [0,1]
def fib(n, sum):
while len(fib_list) < 20:
for i in range(n, len(fib_list)):
sum += fib_list[i]
n += 1
print(n, sum, len(fib_list))
fib_list.append(sum)
fib(n, sum)
else:
break
fib(0, 0)
while 루프에 for 루프가 있고 for 루프에 재귀 호출이 있습니다. 이것은 일반적으로 매우 나쁜 습관이며 많은 두통을 유발합니다. len (fib_list)가 20에 도달해도 멈추지 않습니다. while 루프가 한 번 실행되는 한 for 루프와 재귀 호출이 실행되기 때문입니다. 재귀 호출에서 len (fib_list)는 <20 일 수 있으며 while 루프로 이동하여 for 루프를 다시 시작합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다