Python 5-1. 함수

최다연·2021년 10월 10일
0

Python

목록 보기
6/10
post-thumbnail

함수의 정의

함수의 역할

함수는 레고 블록처럼 하나의 프로그램을 구성하는 요소로 생각할 수 있다.

용어정리

  • 덩어리 or 블록(block): 반복적으로 사용되는 코드
  • 내장함수(built-in function): 파이썬에서 미리 만들어서 제공하는 함수, 인터프리터에 포함되어 배포됨
    -사용자 정의 함수(user defined function): 사용자가 직접 필요한 함수를 만듬, 이 때 def(define 의 약자)키워드를 사용한다.

함수 정의의 형식

C언어와 다르게 콜론(:)이 사용되는 것과 줄을 맞춰 블록을 형성하는 것에 주의하여야 한다.

한 번 만들어진 함수는 다른 프로그램에서 재사용이 가능하며 프로그램 개발의 시간과 비용을 절약할 수 있다.

함수와 매개변수

매개변수란 함수나 메소드 헤더부에 정의된 변수로 함수가 호출될 때 실제 값을 전달받는 변수이다. 인수, 인자와 같은 말이다. 실제 함수에 넘겨줄 값을 실인자(actual argument) 라고 하며 전달받을 값을 지정하는 변수를 형식인자(formal parameter) 라고 한다. 함수가 호출될 때 가장 먼저 하는 일은 실인자를 형식인자에 전달하는 인자 전달이다.

매개변수를 이용하여 문자열을 출력하는 프로그램을 작성하였다.

인자를 2개 필요로 하는 함수 호출 시에 인자를 하나만 넣어주게 되면 함수에서 필요한 매개변수의 값이 없으므로 TypeError메세지가 나타나며 실행되지 않는다.

매개변수를 이용한 2차 방정식의 해를 구해보자.

** 은 제곱 연산이며 제곱근은 0.5제곱을 해주는 것으로 연산한다. 그러나 위의 코드는 a, b, c 의 값이 달라질 때마다 전체 코드를 다시 작성해야 하는 번거로움이 있다. 이를 함수 사용으로 간단하게 만들어 줄 수 있다.

반환문 return

함수는 값을 전달받아 처리하고 결과를 반환할 수 있다. 일반적으로 함수 내부는 블랙박스(black box)라고 가정한다. 즉, 그 안에서 무엇이 일어나는지는 사용자가 알지 못한다. 함수의 내부는 특정한 코드를 가지고 있으며 주어진 일을 수행하고 return 키워드를 사용하여 하나 이상의 값을 반환해 줄 수 있다.

출력은 함수 내에서 하는 것보다는 밖에서 하는 것이 좋다. return을 이용하여 값을 반환할 때는 키워드 다음 수식을 입력하여 수식의 결과를 반환하는 것도 가능하다. 이와 같이 두 개 이상의 값을 반환하는 반환문을 다중 반환문이라고 한다. 다중 반환문에서 쉼표로 구분되는 두 개의 값은 튜플 형으로 반환이 이루어진다.

전역변수와 지역변수

전역변수와 지역변수는 변수가 선언된 위치에 따라 구별된다. 파이썬에서는 C언어와 다르게 명시적으로 변수가 선언되지 않고 값이 할당되며 선언되기 때문에 이 때 묵시적으로 선언되는 곳에 따라 구별하면 된다.

전역변수(global variable)

함수 바깥에서 선언되거나 전체 영역에서 사용 가능한 변수

지역변수(local variable)

함수 내에서 선언되거나 함수 내에서만 사용 가능한 변수

함수 내 a와 b는 전역변수를 의미하게 되어 함수 밖에 있는 a와 b와 값이 같아진다. 만약 함수 내에서 a와 b를 따로 정의한다면 함수 내의 a, b는 지역변수 함수 외의 a, b는 전역 변수로 두 a와 b는 서로 다른 값이 된다. 만약 지역변수를 선언한 뒤 전역 변수에 할당된 값을 지역변수에서 사용하고 싶다면 global 키워드를 사용한다.

global 선언을 하며 동시에 수에 할당을 하는 것은 불가능하다.

함수의 매개변수 값을 직접 적어줬을 땐, 호출 시 인자가 없을 땐 그 수를 사용한다는 의미이다. 이런 변수를 디폴트 매개변수 라고 한다. 여러개의 매개변수가 있는 함수에서는 전체 변수에 대하여 모두 할당하거나 매개변수의 출현 순서상 뒤에 있는 변수부터 할당해야 한다.

키워드 인자 는 함수를 호출할 때 인자의 값만을 전달하는 것이 아니라 그 인자의 이름을 함께 명시하여 전달하는 것이다. 파이썬의 기본 인자 전달 방식을 위치 인자 방식이라고 한다.

인자의 수가 정해지지 않은 가변인자가 있다. * 을 매개변수 앞에 넣어 사용한다. 위 코드는 가변인자를 사용하여 수의 합과 평균을 구하는 코드이다.

0개의 댓글