-
반응형
이번 포스팅은 함수에 대한 내용입니다.
제목을 사용자 정의 함수라고 했는데 파이썬에서 제공하는 내장 함수도 있으므로 사용자가 필요에 의해서 만드는 함수를 의미합니다.
● 함수는 무엇일까요?
파이썬 자료형에 대한 포스팅에서 메소드 및 내장 함수에 대해 알아보았습니다.
예를 들면 문자열이나 리스트등의 길이를 알려주는 len() 함수가 있습니다.
len( 인수 ) 를 넣으면 길이 값을 반환해 줍니다.
>>> x = "1234567890"
>>> len(x)
10
>>>파이썬에서 제공하는 내장 함수 len() 이지만 함수의 이해가 빠를 것 같아 예로 사용합니다.
인수를 넣으면 계산을 해서 길이 값을 반환해 줍니다.
len() 함수를 파이썬으로 구현해 보겠습니다.
x = "1234567890"
i = 0
for temp in x:
i = i+1
print(i)두줄이면 될 코딩이 5줄이 되었습니다.
그리고 문자열이나 리스트등의 길이를 구하는 일은 자주 코딩하게 되는 내용입니다.
함수가 없다면 이럴 때 마다 5줄의 코딩을 반복해야 합니다.
그리고 len() 이라고 코딩하면 길이를 구하는 구나 하고 단번에 알지만 위의 코딩으로 하게 되면 5줄을 보면서 분석하는 단계를 거쳐야 합니다.
이렇듯 함수는 가독성 및 재 사용 가능한 내용을 여러 번 반복하지 않고 한번의 정의로 간단하게 사용 할 수 있게 해 줍니다.
또한 프로그램 코딩시 그냥 길게 코딩하면 프로그램 흐름을 판단하기 어려워져 디버깅(오류가 발생하는 부분 찾기)이 어려울 수도 있습니다.
함수를 사용함으로써 프로그램이 좀 더 간결하게 보이고 흐름 파악에 좋습니다.
초보자들은 처음에 그냥 길게 코딩하게 마련입니다.
처음에는 코딩을 해 보면 함수를 만들 부분이 보입니다. 같은 코드를 함수를 사용하여 만들어 보세요.
이미 많이 사용할 만한 내용은 파이썬의 내장 함수로 만들어져 있다면 프로그램 하다 보면 함수 만들 일이 많이 있습니다.
● 함수는 어떻게 만들까요?
함수는 아래와 같이 정의 합니다.
def 함수명( 매개변수) :
< 실행할 문장>
< 실행할 문장>
….
return 결과값
함수는 def 로 정의 합니다. 들여쓰기 까지를 하나의 함수로 봅니다.
함수명은 변수명 규칙과 동일합니다.
매개변수는 없어도 되고 여러 개 일 수도 있습니다.
매개변수(parameter)는 함수에 전달되는 변수로써 인수, 인자, 파라메터 등의 용어로 사용합니다. 같은 말 입니다.
return 은 함수가 끝납니다.
return 다음의 결과값을 반환해 줍니다. 결과값이 없으면 return 은 없어도 됩니다.
len과 같은 기능을 하는 함수를 만들어 보겠습니다.
def user_len( x ) :
i = 0
for temp in x:
i = i+1
return i함수 호출은 내장 함수 호출하 듯이 함수명( 매개변수) 로 호출( call )하면 됩니다.
>>> user_len( "1234567890" )
10
>>> ret = user_len( "1234567890" )
>>> print( ret )
10함수를 만들어 보았습니다.
주의 할 점은 함수를 사용하기 전에 함수는 정의 되어야 합니다.
함수는 인수도 없고 , 리턴값도 없이 사용할 수 있다고 했습니다.
아래 예제는 간단하게 매개변수, 리턴값이 없는 출력하는 함수를 만들어 보았습니다.
>>> def title_print( ) :
print( " ==== 제목 : 파이썬 함수 만들기 ====" )
print( " ==== 작성자 : 행복한 코딩 ====" )
>>> title_print()
==== 제목 : 파이썬 함수 만들기 ====
==== 작성자 : 행복한 코딩 ====
>>>이번 포스팅은 함수 정의하는 법을 알아 보았습니다.
다음 포스팅에서 함수의 여러가지 매개변수 만드는 방법 및 리턴값도 여러 개 반환 할 수 있는 함수를 만들어 보겠습니다.
반응형'IT 이야기 공간 > 프로그램 언어' 카테고리의 다른 글
파이썬 함수 여러개 리턴하기 (0) 2020.06.29 파이썬 함수 매개변수 만들기 – 가변 및 디폴트값 설정 (0) 2020.06.28 파이썬 제어문 - 반목문 while문 (0) 2020.06.26 파이썬 제어문 - 반목문 for문 (1) 2020.06.25 파이썬 제어문 – 조건문 if문 (0) 2020.06.24