티스토리 뷰
함수를 왜 사용할까요?
함수의 정의와 실행
def say_hello(name): return 'hello world {}'.format(name) say_hello("lemon")
함수를 정의할 때는 def 함수명(): 으로 시작하고 밑부분에는 실행할 구문들과 리턴값 등을 적어주면 됩니다. 그리고 함수를 실행할 때는 함수명()을 통해서 정의한 함수를 실행할 수 있습니다.
파라미터(매개변수)와 리턴
함수를 그림으로 나타내면 저런 모양이 됩니다. 하나의 구멍으로 값이 들어오고, 하나의 구멍으로 값이 나옵니다. output이라고 적힌 부분이 return입니다. 우리가 정의한 함수에서는 'hello world name'이라는 문자열이 리턴되었었죠? 함수에서 리턴 구문을 만나면 리턴에 있는 값을 반환하고 함수가 종료됩니다. 그리고 매개변수가 없을수도 있지만 함수는 꼭 무언가를 리턴해야합니다. 따로 리턴값을 적지 않으면 None이 리턴됩니다.
def say_hello(name): print('hello world {}'.format(name)) #똑같이 실행되는 것 같지만 리턴값은 None say_hello("lemon") def two_return(): return 'lemon' return 'candy' two_return()
two_return이라는 함수는 두개의 리턴구문을 가졌습니다. 함수는 리턴 구문을 만나면 리턴에 있는 값을 반환하고 함수가 종료된다고 했습니다. 즉 해당 함수는 첫번째 리턴구문을 만나서 "lemon"이라는 문자열을 반환하고 종료됩니다.
def two_value(): return 'lemon','candy' two_value()
리턴 구문이 두개가 아니라 리턴은 하나지만 값을 두개 반환하면 어떻게 될까요? 리턴해야할 값들이 튜플안에 담겨서 반환됩니다. 즉 저 함수는 실행하면 ('lemon', 'candy')를 반환하는 것입니다.
매개변수가 여러개일 경우 함수정의
def print_value(*values): for value in values: print(value) print_value('환', '영', '합', '니', '다')
매개변수에 *을 붙여서 정의하면 인수 전체를 튜플로 묶어서 전달합니다. 그리고 함수내부에서 반복문 등을 통하여 값을 활용할 수 있게 됩니다.
매개변수에 기본값 주기
def init_def(name='lemon'): print('hello world {}'.format(name)) init_def() #인수를 넣지 않아도 에러가 나지 않습니다.
기본값을 준 매개변수가 다른 기본값이 없는 매개변수와 함께 정의되어있다면 기본값을 가진 것들이 맨 뒤로 가야합니다.
프로그래밍에서 아주 중요한 함수에 대해서 배워보았습니다.
공감은 제작자에게 큰 힘이 됩니다.
'Backend-dev > python' 카테고리의 다른 글
파이썬의 클래스(class) (0) | 2018.04.09 |
---|---|
파이썬의 유효범위(scope) (0) | 2018.04.07 |
파이썬의 반복문(for, while) (0) | 2018.04.03 |
파이썬의 조건문(if) (1) | 2018.04.02 |
파이썬의 자료형 set 알아보기 (0) | 2018.03.30 |