[AIFFEL 울산 1기] 수업 첫 날!

정경민·2021년 12월 28일
0

전체 과정의 첫 날, 오리엔테이션을 마치고 두 번째 날이 되었습니다.
Fundamental 과정을 도와주실 양재 캠퍼스 퍼실님들의 소개와 함께 수업 시작!!

Fundamental 과정은 LMS를 통해서 진행됩니다.
커널 연결이 안되신다면,
설정-커널 연결 부분을 로컬로 변경했다가 다시 클라우드로 변경하면 연결중 주황색 라인이 표시가 됩니다.
그런데 그 상태에서 또 진행이 안 될 경우,
로그아웃 및 재접속 후 강력 새로고침(?)을 통해 해결됩니다.
(강력 새로고침: Ctrl+Shift+R)

[Fundamental 6-1 파이썬으로 코딩 시작하기] 과정은 파이썬 기본에 관한 내용이었고, 어렵지 않게 할 수 있었습니다.

첫 번째 고비

아래는 직접 작성한 피보나치킨 코드!

def fibonacci(n):
    if n <= 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

def FibonaChicken(people):
    number = 1
    if people > 2:
        while fibonacci(number) < people:
            number += 1
        number -= 2
    return number

피보나치 수열의 n번째 숫자만큼의 사람이 있다면, n-1번째 피보나치 숫자만큼 주문하게 되는 프로그램입니다.
재귀함수를 이용하여 잘 했는지는 모르겠지만 일단은...ㅎㅎ많은 분들의 피드백 부탁드려요!!

두번째 고비

def print_two(word1, word2):
    print(word1)
    print(word2)

def print_and_return(word1, word2, word3):
    print_two(word3, word2)
    return word1

이렇게 선언하고,

print_two('A', print_and_return('B', 'C', 'D'))

이 코드를 실행했을 때!
사실 출력 되는 순서가 A D C B 일거라 생각했다.
정답은 D C A B

A라는 함수에 인자로 다른 B 함수가 호출이 되면, 인자로 어떤 값이 들어간 것이 아니기에 인자로 호출된 B함수를 가장 먼저 실행하게 됩니다. 그러면 B 함수를 차례로 진행하면서 출력할 것이 잇으면 출력을 하고, 마지막에 리턴되는 값이 아까 A함수의 인자가 되는 것입니다.

그래서 가장 먼저 print_two의 인자로 호출된 print_and_return('B', 'C', 'D') 함수를 수행합니다.
호출된 함수 안에 있는 함수 print_two(word3, word2)이 호출되어 D와 C가 출력됩니다.
그리고 리턴 값으로는 B가 할당됩니다.
결국 실행하려는 print_two 함수는 print_two('A', 'B')가 되면서 print('A')와 print('B')가 실행됩니다.
따라서 출력 결과가 D C A B로 나옵니다.

이 부분에서 상당히 복잡하게 생각했지만,
결국, 인자로 함수가 호출되면 그 함수부터 실행하여 값으로 치환해준다고 생각하게 되었습니다.

0개의 댓글