이번 포스팅에서는 파이썬의 함수(Function)에 대하여 공부를 해보고자 한다.
함수(Function)
함수는 하나의 작업, 기능, 동작을 처리하기 위한 명령문들의 묶음이라고 할 수 있다.
함수를 사용하면 중복적인 코드의 작성을 최소화하고, 코드의 재사용성을 높여준다.
함수를 만드는 것을 함수 정의라 하고, 정의된 함수를 사용하는 것을 함수 호출(call)이라고 한다.
파이썬에서 함수는 일급 시민 객체(First Class Citizen Object)이다.
▪ 일급 객체
변수에 할당할 수 있고, 인수로 전달할 수 있고, 반환 값으로 반환할 수 있는 객체를 말한다.
인수(arguments)
란 함수를 호출할 때 함수 내부에서 사용할 수 있도록 전달하는 데이터를 말한다.
함수 정의
함수는 선언부(Header)와 구현부(Body)로 나누어진다.
함수의 선언부는 함수의 이름과 인수를 받을 변수(매개변수)를 지정하고 구현부는 함수가 호출되었을 때 실행할 실행문들을 순서대로 작성한다.
함수 선언 마지막에는 ' : '을 넣어 구현부와 구분한다.
매개변수(인자, Parameter)는 인수를 받기 위한 변수로 0개 이상 선언할 수 있다.
결과값이 있을 경우 return 구문을 넣고 없을 경우 return은 생략할 수 있으며, return 값이 없는(return 구문 생략한) 함수는 None을 반환한다.
함수의 실행 구문은 반드시 공백 4개 또는 탭 이후에 작성한다.
함수 호출
함수 호출 구문
변수 = 함수명(인수, 인수)
함수 호출 시 여러 개의 인수(arguments)를 한 번에 전달할 수 있으며, 인수들은 소괄호(())안에 쉼표(,)를 사용하여 구분한다.
일반적으로 기본값이 있는 매개변수에는 값을 전달하지 않을 경우에는 변수명을 지정해서 전달하고, 반환 값이 없는 함수 호출하면 None이 반환된다.
함수 정의 및 호출 예제
1. 매개변수(parameter)가 없는 함수를 정의한다.
def greeting():
print("안녕하세요.")
print('반갑습니다.')
정의한 함수를 호출한다.
greeting()
greeting()
greeting()
[실행 구문]
안녕하세요.
반갑습니다.
안녕하세요.
반갑습니다.
안녕하세요.
반갑습니다.
2. 매개변수(parameter)가 있는 함수를 정의한다.
def greeting2(name):
print(f"{name}님 안녕하세요. 반갑습니다.")
정의한 함수를 호출한다.
greeting2("손흥민")
greeting2("이강인")
[실행 구문]
손흥민님 안녕하세요. 반갑습니다.
이강인님 안녕하세요. 반갑습니다.
3. 매개변수가 3개 있는 함수를 정의한다.
def greeting3(name, address, age):
print(f"{address}에 사는 {age}세의 {name}님 환영합니다.")
정의한 함수를 호출한다.
greeting3("홍길동", "한양", 20)
greeting3(30, 20, True)
[실행 구문]
한양에 사는 20세의 홍길동님 환영합니다.
20에 사는 True세의 30님 환영합니다.
4. 매개변수에 타입 힌트를 선언했을 경우 (다른 타입의 값을 넣어도 에러 발생 X)
def 함수명 ( ) -> 리턴 값 타입 힌트:
def greeting4(name: str, age: int, address: str):
return f"{address}에 사는 {age}세의 {name}님 환영합니다."
정의한 함수를 호출한다.
g = greeting4("손흥민", 30, "한국")
print(g)
greeting4(20.5, "abcde", 300)
[실행 구문]
한국에 사는 30세의 손흥민님 환영합니다.
'300에 사는 abcde세의 20.5님 환영합니다.'
return 값이 있는 함수일 때, return 값 => [값을 가지고] 호출한 곳으로 돌아간다.
5. return 구문이 없는 함수는 None을 리턴한다.
v = greeting()
print(v)
[실행 구문]
안녕하세요.
반갑습니다.
None
'Back-End > Python' 카테고리의 다른 글
[Python] 일급 (시민) 객체(first-class citizen) (2) | 2022.09.25 |
---|---|
[Python] 함수의 매개변수(Parameter) (0) | 2022.09.25 |
[Python] 컴프리헨션(Comprehension) (0) | 2022.09.24 |
[Python] range 함수 (2) | 2022.09.23 |
[Python] break와 continue (0) | 2022.09.22 |