티스토리 뷰

6.1 함수(Functions)

 

- 함수(Functions)는 코드를 재사용할 일이 있거나, 좀 더 조직적으로, 좀 더 간단하게 코드를 만들 때 사용한다.

- 예를 들어 코드 1 에서 10 까지의 덧셈, 20에서 37까지의 덧셈, 50에서 60 까지의 덧셈의 결과를 출력하는 프로그램을 작성할 경우, 덧셈을 할 값들만 다르지 다른 코드는 다 비슷하다.

- 이렇게 연산할 값만 다르고 공통된 작업을 하는 코드를 재사용한다면 더 효율적으로 코드를 작성 할 수 있다.

- 이럴 때 이용하는 기능이 바로 함수(Functions)이다.

 

* 함수를 사용하지 않았을 때

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sum = 0
for i in range(1,11):
    sum += i
print("Sum from 1 to 10 : ",sum)
 
sum = 0
for i in range(20,38):
    sum += i
print("Sum from 1 to 10 : ",sum)
 
sum = 0
for i in range(50,61):
    sum += i
print("Sum from 1 to 10 : ",sum)
cs

 

위의 코드와 아래의 코드는 같은 의미이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
def sum(i1, i2):
    result = 0
    for i in range(i1,i2+1):
        result += i
 
    return result
 
def main():
    print("Sum for 1 to 10: ",sum(1,10))
    print("Sum for 20 to 37: ",sum(20,37))
    print("Sum for 50 to 60: ",sum(50,60))
 
main() #메인 함수 호출
cs

 

- 우리가 여태 써왔던 eval(), randint()와 같은 함수들 역시 우리가 이 함수들을 호출(call)하고 결과값을 반환(return) 받은 것이다.

 

6.2 함수 정의하기(Defining a Function)

- 함수 정의(A function definition)함수의 이름, 매개변수, 바디(body)로 구성되어진다.

 

* 함수 정의 형태

def functionName(list of parameters)

# Function body 

 

- 숫자 두 개를 비교하여 더 큰 숫자를 반환하는 함수를 정의하면 아래와 같다.

def max(num1, num2):

if num1 > num2 :

result = num1

 

esle num1 < num2 :

result = num2

 

return result

 

- 여기서 max는 함수의 이름, num1와 num2는 매개변수, 그리고 함수에 우리가 사용할 코드를 작성하는 곳이 바디(body)이다.

- return 키워드를 이용해 결과 값을 반환한다.

- 함수는 헤더(header)바디(body)를 가지고 있다.

- 헤더(header) def 키워드로 시작하며, 뒤 따라 함수의 이름매개변수를 작성한다.

- 함수 헤더에 있는 변수들(num1, num2)공식 매개 변수(formal parameter), 간단 매개 변수(simply parameter)라고 부른다.

 

- 매개변수(parameter)는 플레이스홀더(placeholder)와 같다. 함수가 호출 될 때, 우리는 값을 매개변수(parameter)에 전달 한다.

 

* 함수 호출 형식

z = max(x, y)

 

- 함수를 호출할 때, 전달하는 매개변수를 우리는 실질 매개 변수(actual parameter)독립 변수(arguments)라고 부른다.

- 예를 들어, random.random()은 매개 변수를 가지고 있지 않다.

 

- 함수에는 값을 반환하는 함수도 있고, 값을 반환하지 않고 연산만 하는 함수도 있다.

- 값을 반환하는 함수를 우리는 값 반환 함수(value-returning funtction)라고 부른다.

 

- 함수의 바디(body)는 명령어들의 모임이며, 이것이 함수가 무엇을 하는 지를 정의한다.

 



6.3 함수 호출하기(Calling a Function)

 

- 함수 호출(calling function)은 함수 안에 있는 코드들을 실행시키는 걸 의미한다.

- 우리가 함수가 무엇을 할 지 정의 하였다면, 함수를 호출하여야 이 함수를 사용 할 수 있다.

- 함수를 호출하는 프로그램을 우리는 호출자(caller)라고 부른다.

- 함수를 호출하는 방법은 값이 반환되는지에 따라 두 가지의 호출 방법이 있다.

 

*반환 값이 있는 함수 호출 방법

lager = max(3, 4)

print(max(3, 4))

 

*반환 값이 없는 함수 호출

print("Programming is fun!")

 

- 반환 값이 없는 함수의 호출은 반드시 명령어(statement)로서 호출된다.

 

* 함수 정의, 호출 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def max(num1,num2): #두 개의 숫자 중 큰 숫자 반환
    if num1 > num2:
        result = num1
 
    else :
        result = num2
 
    return result
 
def main():
 
    i = 7
    j = 6
    k = max(i,j) #함수 호
 
    print("The bigger number of ",i," and ",j," is ", k)
 
main()
cs

 

- 관행적으로, 프로그램에서 주된 기능을 하는 함수를 메인 함수(main function)로 따로 정의하고, main()를 호출 한다.

 

 

 

참고 문헌 : Introduction to Programming Using Python / Y.DANIEL LIANG



본 게시물은 개인적인 용도로 작성된 게시물입니다. 이후 포트폴리오로 사용될 정리 자료이니 불펌과 무단도용은 하지 말아주시고 개인 공부 목적으로만 이용해주시기 바랍니다.


교재 영어 원서를 직접 번역하여 정리한 게시물이므로 일부 오타, 의역이 존재할 수 있습니다. 틀린 부분이 있다면 댓글로 알려주시면 감사하겠습니다. 

댓글