본문 바로가기

공부/python

(python) 함수1

함수(function)는 특별한 작업을 수행하는 명령어들의 모임이다.

이때까지 써왔던 print()함수, input()함수, abs()함수 등은 파이썬 언어에 의해 기본적으로 제공되는 함수로

텍스트를 화면에 출력하는 작업을 한다.

 

파이썬에서 함수를 사용하려면 함수를 호출해야한다.

자주 해왔던 print('hello world')여기서 print로 함수를 호출하고 함수가 작업을 수행하는데 필요한

데이터를 괄호안에 적어준다. 여기선 'hello world'로 했다. 이것을 함수의 인수(argument)라고 한다.

 

함수는 작업에 필요한 데이터를 전달받을 수 있으며, 작업이 완료된 후에는 작업의 결과를 호출자에게

반환할 수 있다.

 

함수 사용의 장점으로는

  • 프로그램 안에서 중복된 코드를 제거한다.
  • 복잡한 프로그래밍 작업을 더 간단한 작업들로 분해할 수 있다.
  • 함수는 한번 만들어지면 다른 프로그램에서도 재사용될 수 있다.
  • 함수를 사용하면 가독성이 증대되고, 유지 관리도 쉬워진다.

 

우리가 여기서 중점적으로 다룰것은 사용자가 정의한 함수이다.

함수를 만드는 방법을 알아보자.

함수는 크게 헤더와 몸체로 나뉜다. 헤더(header)는 def 키워드로 시작한다.

이어서 함수의 이름과 매개변수를 적어주고 콜론을 찍어준다.

매개 변수(parameter)는 외부에서 전달되는 데이터를 함수로 전달하는 변수이다.

함수의 몸체(body)는 함수가 수행하는 작업을 위한 명령어들이 들어간다.

 

아래의 예를 보자.

함수가 정의되고 say_hello('철수')로 함수를 호출하면서 '철수'라는 외부 데이터가 함수로 전달되었다.

여기서 이 외부 데이터를 인수(argument)라고 한다. 인수는 호출 프로그램에 의하여 함수에 실제로

전달되는 값이다.

 

다른 예를 보자.

앞에서 했었던 1에서 10까지의 합을 함수로 만들어 보았다.

함수는 return 키워드를 사용해서 위부로 값을 반환할 수 있다.

sum값이 함수 외부인 value로 반환되었다.

 

함수의 이름

함수의 이름은 식별자에 대한 규칙에 따르면서 소스 코드를 읽기 쉽게 하기 위해 함수의 기능을 암시하는

이름을 부여하는 것이 좋다. 일반적으로 동사 또는 동사+명사를 사용한다.

 

함수의 여러 번 호출

함수는 일단 작성되면 몇 번이라도 호출이 가능하다. 이것이 사실 함수의 가장 큰 장점이다.

예를 들어 아래의 예처럼 정수의 합을 계산하는 작업이 2번 필요하다면 get_sum()함수를 2번 호출하면 된다.

 

함수를 이용할 때 주의할 점

파이썬 인터프리터는 함수가 정의되면 함수 안의 문장들은 즉시 실행되지 않는다.

함수 정의가 아닌 문장들은 즉시 실행하게 된다.

아래의 예를 보자.

함수가 먼저 정의되고 호출이 되어야하는데, 호출이 먼저되고 함수가 정의되니

'power'가 정의되지 않았다면서 오류가 뜬다.

이것을 올바르게 고치면 아래와 같다.

정상적으로 실행되었다.