본문 바로가기
Python

Python 함수

by 복제비 2022. 6. 23.

Python 함수

 

Python 함수 정의

Python 함수는 특정한 기능을 수행하는 명령어들을 묶어 놓은 것을 의미합니다.

프로그램에서 그 특정한 기능이 필요할 때 그 함수를 호출하여 사용합니다.

 

형식
def  함수명([매개변수1, 매개변수2,....]) : 
        명령문1
        명령문2
        . . . . . . .
       [return  결과값1, 결과값2, ...]

함수를 정의할 때는 def 로 시작하며 함수명()을 적은 후 콜론(:)을 찍어줍니다.

함수명 다음의 매개변수는 전달받을 데이터가 있을 때만 적어줍니다.

함수에서 수행할 일들은 명령문으로 순차적으로 작성해 줍니다.

return 명령은 호출함수에게 전달할 실행 결과가 있을 때 적어줍니다.
함수 안에 포함되는 명령문을 적을 때 들여쓰기를 반드시 수행해야 하며, 들여쓰기가 되지 않으면 에러가 발생합니다.

Python 함수 호출

Python 함수는 정의하는 것만으로 수행되지 않습니다. 

Python 함수수행되도록 하려면 함수를 호출(function call)해야 합니다.

매개변수

호출하는 함수가 호출되는 함수에게 자료전달하기 위해서는 매개변수(parameter)가 필요합니다.

일반적으로 인수(argument)는 호출 프로그램에 의하여 함수로 전달되는 값을 뜻하고 매개변수는 이 값을 전달받는 변수를 의미합니다.

함수가 호출될 때마다 인수가 함수의 매개변수로 전달됩니다.

위치 인수와 키워드 인수

파이썬에서 대부분의 인수들은 함수 호출 시에 위치에 의하여 구별됩니다.

예를 들어 div(a,b)가 a/b를 반환하는 함수라고 한다면 div(30,4)과 div(4,30)은 같지않습니다.
전자인 div(30,4) 는 30/4을 뜻하고 후자인 div(4,30)는 4/30을 의미합니다.

이와 같이 순서 맞추어 전달하는 인수를 위치 인수(positional argument)라고 합니다.

 

매개 변수지정하여 인수를 전달하는 것을 키워드 인수(keyword argument)라고 합니다.

키워드 인수 방식으로 전달할 때는 매개변수명명시하기 때문에 인수의 순서중요하지 않습니다.

 

위치 인수와 키워드 인수가 섞일 수 있지만 위치 인수키워드인수 에 나와야 합니다.

디폴트 인수

파이썬에서는 함수의 매개변수가 기본값을 가질 수 있으며, 이를 디폴트 인수 (default argument)라고 합니다.

card()함수를 정의할 때 age 변수에 기본 값 19을 할당하면 함수 호출에서 age값이 생략되더라도 오류가 발생하지 않고, 디폴트 인수값이 할당됩니다.

반환값(return)

어떤 함수가 작업의 결과를 호출 함수로 전달하고자 할 때 return문을 사용하여 함수를 종료하고 값을 반환합니다.

상수, 변수, 수식반환값으로 사용될 수 있습니다.

반환값은 한 개 이상의 값을 반환할 수 있습니다.

함수 내에 반환값을 항상 사용해야 하는 것은 아니고 필요할 때만 사용하면 됩니다.

함수에 return문이 없거나, 단순히 return문만 사용되는 경우에는 반환 값이 없는 함수입니다.

함수의 장점

◾ 프로그램 안에서 중복된 코드를 제거합니다.

◾ 복잡한 프로그래밍 작업을 더 간단한 작업들로 분해함으로써 구현이 쉬워집니다.

◾ 함수는 한번 만들어지면 다른 프로그램에서도 재사용할 수 있습니다.

◾ 함수를 사용하면 가독성이 좋아지고 유지관리도 쉬워집니다.

 

지역 변수와 전역 변수

함수의 외부에서 생성되어 프로그램 전체에 영향을 미치는 변수를 전역 변수(global variable) 라고 합니다.

함수 내부에서 선언되고 사용되는 변수를 지역 변수(local variable) 라고 합니다.

전역 변수는 처음 변수가 사용될 때 메모리가 할당되며 프로그램의 수행이 종료되면 메모리가 회수됩니다.

전역 변수는 프로그램 내의 모든 함수에서 참조 가능 변수값을 읽을 수도 변경할 수도 있습니다.

지역 변수는 함수가 호출되어야 변수를 위한 메모리가 할당되며 함수의 수행이 끝나면 메모리가 회수됩니다.

매개 변수도 지역 변수에 포함됩니다.
지역 변수는 그 변수가 속해 있는 함수 내에서만 사용 가능하며, 다른 함수에서는 그 변수를 읽거나 변경할 수 없습니다.

 

'Python' 카테고리의 다른 글

Python 시퀀스 자료형  (0) 2022.06.25
Python 모듈  (0) 2022.06.24
Python 반복문  (0) 2022.06.22
파이썬 if 선택문  (0) 2022.06.21
Python 내장 함수  (0) 2022.06.20

댓글