Programming

; develop a program

Back-End/Python

[Python] 함수(Function) 정의 및 호출 기본

Clloud_ 2022. 9. 24. 13:21
반응형

이번 포스팅에서는 파이썬의 함수(Function)에 대하여 공부를 해보고자 한다.

 


함수(Function)

함수는 하나의 작업, 기능, 동작을 처리하기 위한 명령문들의 묶음이라고 할 수 있다.

함수를 사용하면 중복적인 코드의 작성을 최소화하고, 코드의 재사용성을 높여준다.

 

함수를 만드는 것을 함수 정의라 하고, 정의된 함수를 사용하는 것을 함수 호출(call)이라고 한다.

 

파이썬에서 함수는 일급 시민 객체(First Class Citizen Object)이다.

▪ 일급 객체

변수에 할당할 수 있고, 인수로 전달할 수 있고, 반환 값으로 반환할 수 있는 객체를 말한다.

인수(arguments)
란 함수를 호출할 때 함수 내부에서 사용할 수 있도록 전달하는 데이터를 말한다.

 


함수 정의

함수는 선언부(Header)와 구현부(Body)로 나누어진다.

함수의 선언부는 함수의 이름과 인수를 받을 변수(매개변수)를 지정하고 구현부는 함수가 호출되었을 때 실행할 실행문들을 순서대로 작성한다.

 

함수의 기본구조

 

함수 선언 마지막에는 ' : '을 넣어 구현부와 구분한다.

매개변수(인자, Parameter)는 인수를 받기 위한 변수로 0개 이상 선언할 수 있다.

 

결과값이 있을 경우 return 구문을 넣고 없을 경우 return은 생략할 수 있으며, return 값이 없는(return 구문 생략한) 함수는 None을 반환한다.

함수의 실행 구문은 반드시 공백 4개 또는 탭 이후에 작성한다.

 


함수 호출

함수 호출 구문

변수 = 함수명(인수, 인수)

 

함수 호출 시 여러 개의 인수(arguments)를 한 번에 전달할 수 있으며, 인수들은 소괄호(())안에 쉼표(,)를 사용하여 구분한다.

선언된 매개변수 순서대로 전달 (position argument)

 

호출 시 변수명을 지정해서 전달 (keyword argument)

 

일반적으로 기본값이 있는 매개변수에는 값을 전달하지 않을 경우에는 변수명을 지정해서 전달하고, 반환 값이 없는 함수 호출하면 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

 


반응형