반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

 

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 지난 시간 함수의 개념을 익혀보았으니, 실제로 어떻게 만들고 어떻게 사용할 수 있는지 알아보겠습니다.

 

함수 만드는 법

 

파이썬에서 함수를 만드는 방법은 간단합니다.

 

1) definition(정의)의 약자인 def를 입력

 

2) 한칸 띄우고 함수명을 내맘대로 작성

    (기능이 무엇인지 알아볼 수 있는 이름 권장 / 당연히 영어)

 

3) 입력 받을 매개변수를 차례대로 ( )안에 입력

 

4) 아래에 실행할 코드를 작성

    (매개변수가 들어가는 코드와 안들어 가는 코드 모두 작성 가능)

 

5) 가장 마지막에 return을 쓰고 돌려주고 싶은 결과 값을 입력

 

<기본 형태>

def 함수명(매개변수 1, 매개변수 2, ...)

    실행할 코드
    
    return 결과값    


<예시 코드>

def plus(x, y)
    
    a = x + y
    
    return a     # 바로 x+y를 리턴해줘도 됨

 

이 때, 입력과 출력의 유무에 따라서 총 4가지 형태로 함수를 만들 수 있습니다.

 

  함수의 4가지 형태
1 입력 O, 출력 O (가장 기본적인 형태)
2 입력 O, 출력 X
3 입력 X, 출력 O
4 입력 X, 출력 X

 

방금 전 봤던 예시 코드로 1번 형태는 보았으니, 간단하게 4번 형태만 예시 코드로 보고 넘어가도록 하겠습니다.

 

def hi():
    
    print('Hi')

 

이 함수는 ( )안에 매개변수도 없고, return도 없죠? print( ) 함수로 'Hi'라는 문자열을 터미널 창에 출력할테니깐 출력이 있는 것 아닌가 생각 하실 수 있습니다. 하지만 여러분들이 꼭 기억하셔야 할 것은 반드시 return으로 주는 값이 실제 출력이라는 것입니다.

 

이 외에도 함수를 만들 때 아래와 같은 경우가 있을 수 있는데 이것까지 다루면 너무 머리가 복잡해지실 것 같아서 다루지 않았으니, 추후 코딩하면서 필요한 일이 생기면 검색해보시길 바랍니다.

 

1) 입력을 무한대로 받을 수 있는 *매개 변수

2) 초기값을 미리 가지고 있는 매개 변수 (따로 설정 안하면 초기값이 자동으로 입력)

 

함수 사용하는 법

이제 함수 만드는 법을 배웠으니, 사용하는 법도 배워야겠죠?

 

바로 위에서 예로 만들었던 hi() 함수를 사용해 보겠습니다.

 

hi()

>>> 'Hi'

 

이 경우는 입력이 없으니 그냥 hi()를 입력하고 실행하면 'Hi'를 터미널 창에 출력해줍니다. 너무 간단하죠?

 

이번에는 가장 처음 만들어 보았던 plus(x,y) 함수를 사용해 보겠습니다.

 

plus(5,10)       # 그냥 이렇게 쓰면 아무일도 일어나지 않습니다.


a = plus(5,10)   #이렇게 변수에 담아서 print()함수로 터미널 창에 띄워야 결과를 확인할 수 있어요.

print(a)

>>> 15


 

이렇게 plus(x,y)의 매개변수 x, y자리에 5와 10이라는 인수(입력값)를 넣어 줍니다.

(함수를 만들 때는 매개변수, 함수를 사용할 때는 인수가 괄호 안에 들어간다고 이해하시면 됩니다)

 

참고로, plus(x=5, y=10)과 같이 매개변수를 지정해서 입력값을 넣을 수 있답니다. 이런 방식의 장점은 입력 순서를 지키지 않아도 된다는 점입니다.

 

 

그 외 알아두면 좋은 것들

 

지역 변수 (local variable)

함수에 사용되는 입력 변수나 함수 안에서 만든 변수를 지역 변수라고 합니다. 해당 지역에서만 유효한 변수라는 뜻으로 함수의 밖에서는 사용할 수 없는 특징이 있습니다. 혹시 함수 밖에 같은 이름의 변수가 있다고 하더라도 별개의 변수로 취급됩니다. 

 

아래 코드로 확인해보시죠.

a = 100

def check_local(a):    
    print(a)


check_local(1)
print(a)


<결과창>

1
100

 

print() 함수로 함수 내에서의 a를 확인하기 위해서 check_local(a)  함수를 만들어 보았습니다.

 

check_local(1)을 실행하니, 처음에 선언한 a = 100을 무시한 1이 출력된 것과 그다음 print(a)는 100으로 출력되는 것을 확인할 수 있죠.

 

이것으로 같은 이름의 변수 a는 함수의 안과 밖에서 다르게 인식되는 것을 확인 할 수 있습니다.

 

 

전역 변수 (global variable)

만약 위의 예처럼 함수 안과 밖에 같은 이름의 변수가 없는 이상, 함수 밖에서 만들어진 변수는 함수 안에서도 사용할 수 있습니다.

이를 전역에서 모두 사용 가능한 변수라는 의미로 전역 변수라고 부릅니다. 

 

위에서 지역 변수를 설명하면서, 함수 안에서 설정한 변수는 밖에 영향을 미치지 않는다고 하였지만 예외가 있습니다.

바로 함수 안에서 변수명 앞에 global 명령어를 적어주는 것입니다. 하지만 웬만하면 이 방법은 권장하지 않습니다.

 


 

오늘 준비한 내용은 여기까지입니다.

 

다음 시간에 또만나요~!

 

반응형

+ Recent posts