더북(TheBook)

함수를 정의했으니 함수를 호출해서 입금하는 부분을 작성하겠습니다. 현재 잔액을 담는 변수 balance를 정의하는데, 입금 내역이 없으니 초깃값은 0으로 저장합니다. 그리고 앞에 정의한 deposit() 함수를 호출합니다. 이때 현재 잔액이 담긴 balance 변수와 입금할 금액인 1000을 넣어 전달합니다. 현재 잔액은 0이므로 0과 1000, 2개의 값을 전달하는 셈이죠. deposit() 함수는 전달값을 받아 동작을 수행하고 값을 반환합니다. 이 값을 받아 다시 balance 변수에 저장합니다.

def open_account():
    print("새로운 계좌를 개설합니다.")

open_account() # open_account() 함수 호출

def deposit(balance, money): # 입금 처리 함수
    print("{0}원을 입금했습니다. 잔액은 {1}원입니다.".format(money, balance + money))
    return balance + money # 입금 후 잔액 반환

 

balance = 0 # 초기 잔액
balance = deposit(balance, 1000) # 1,000원 입금

그런데 함수 정의에도 balance 변수가 있고, 함수를 호출하는 부분에도 balance 변수가 있습니다. 두 변수는 이름은 같지만, 같은 변수가 아닙니다. 함수 정의에 있는 balance는 전달값(여기서는 0)을 저장하는 새로운 변수입니다. money 또한 1000이라는 값을 저장하는 새로운 변수이며, 이 둘은 함수 안에서만 사용할 수 있습니다. 이처럼 함수를 정의할 때 전달값을 받는 balance, money와 같은 변수를 매개변수(parameter)라고 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.