336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
함수란? 
간단히 말하면, 동등한 연산을 계속시키고 싶은 경우에 사용한다.
비유적으로 말하면,
자판기(함수)에 돈(매개변수 혹은 전달인자) 를 넣고, 음료 혹은 물건(return 값) 을 얻는 것을 말함.

함수를 왜 쓰는가? 계속 똑같은 연산을 해야하는데 그것을 여러번 코드로 작성하는 일은 코드 라인만 늘리고, 나중에 고치기도 쉽지않음. 계속 반복된 코드 부분을 하나하나 고쳐야하기에...
그래서 동일한 연산을 하는 부분을 함수부분으로 고칠 수 있음. 그러면 여러번 쓰이는 부분은 함수 내 작성된 코드부분을 고치면 반복적으로 작성된 코드를 고치는 일보다 더 나은 결과를 얻을 수 있음.

일단 함수의 구조를 보면,


 
간단히 총 1,2,3,4를 나눠서 볼 수 있다고 생각함.
1 : 함수이름
2 : 함수에 사용할 입력인수 (0개 이거나 N개 이거나)
3 : 함수내에 함수연산
4 : 함수 결과 값 (있거나, 없거나), 함수 내 return 을 만나면 반드시 종료한다.

함수이름을 작성해야 함수를 호출 할 수 있고, 
함수에 어떤 값을 넣어 연산을 시킬지 작성하고,
연산의 결과를 반환값으로 설정할 수 있다. 

이때 return 값이 존재해도 되고, 하지 않아도 된다. 

그러면 예를 들어 보자. 
두 수를 더하는 함수를 작성한다. 
조건으로 
함수의 이름은 plus_2
반환 값으로 두 수의 합을 내놓는다.

1
2
3
4
5
def plus_2(argv1, argv2):
    return argv1 + argv2
 
result = plus_2(12)
print result
cs

위와 같이 코드를 작성했다고 하자.


그러면 함수의 이름으로, 

function_name : plus_2


두 수의 합을 반환해야 하므로, 입력인수는 두개가 필요하다.

argv1, argv2 

두 개를 설정하였다.


반환값을 내놓아야 하므로, 

return argv1 + argv2


함수를 호출하고 반환 값을 받아줄 변수가 필요하다. 

result = plus_2(1, 2) 

로 전달인자로 1과 2를 넣어 result 변수에 반환 값을 받아내고,

print result 로

함수의 결과로 받은 반환 값을 출력한다.


위와 같이 함수를 작성해주면 된다. 


======================================================================================================

Q&A 1.   print 와 return 의 차이점이 뭔지 모르겠음.

print 는 console 창에 값을 출력해주는 출력함수이고,

return 은 함수 내 연산 결과를 반환해주는 키워드이다.


그러면 함수 내 print 를 사용하면? 그저 console 창에 보여주기만 할 뿐 영향을 끼치지 않는다.

그러나 return 은 결과를 반환하며, 함수를 종료시킨다.


======================================================================================================


위에서 구조를 알아보았다. 

그러면? 

함수를 작성할 때 여러형태로 작성할 수 있을텐데

1. 입력인수 없고, 반환값 없음

2. 입력인수 없고, 반환값 있음

3. 입력인수 있고, 반환값 없음

4. 입력인수 있고, 반환값 있음


총 4가지로 생각한다.


pass 는 작성하지 않고 넘어가기 위해 넣어주는 키워드이다.

1. 입력인수 없고, 반환값 없음


1
2
3
def function_type1():
    # source
    pass
cs


위와 같이 작성할 경우는 거의 없겠지만, 위 함수는 입력인수와 반환값이 없다. 그러므로 거의 쓰지 않는다.


2. 입력인수 없고, 반환값 있음

1
2
3
4
def function_type2():
    # source
    ret = 0
    return ret
cs


위 작성된 함수는 반환값(함수결과)로 0을 내놓는다. 이 또한 거의 쓰지 않을 것 같다.


3. 입력인수 있고, 반환값 없음

1
2
3
def function_type3(argv1):
    # source
    pass
cs


위 작성된 함수는 입력인수로 argv1을 받는다. 이때 입력인수는 여러개 존재해도 된다. 

하지만 입력인수를 작성할 때 무엇을 넣을 건지 생각을 하며 코드를 작성해야 한다.

리스트를 받는 경우, 정수를 받는 경우 ... 등등의 경우에 따라 함수 내 연산이 에러를 발생시킬 수도 있다.


4. 입력인수 있고, 반환값 있음

1
2
3
4
def function_type4(argv1):
    # source
    ret = argv1 * 2
    return ret
cs


위 작성된 함수는 입력인수로 argv1을 받고, (이 또한 여러개 작성할 수 있다. 형태3 내용을 참고하자.

결과로 argv1 * 2 를 반환 값을 내놓는다. 그러면 반환 값을 받아 줄 변수를 적어줘야 함수 연산 결과(반환 값)을 사용할 수 있다.

그러므로 입력인수를 왜 적는지 ? return 을 왜 해야하는지에 대한 생각을 갖고 코드를 작성해야한다.


입력인수와 return 는 여러개 작성될 수도 있고, 넣지 않을 수도 있다.



+ Recent posts