Lecture 함수

Lecture • Views 1779 • Comments 0 • Created at 2 years ago • Last Updated at 2 days ago  
  • 함수
  • 함수

함수

프로그램 작성할때 중복되는 코드가 많이 있으면 이 코드들을 묶어서 함수로 만든다.

함수란 '매개변수' 또는 인수를 입력하면 계산한 결과를 돌려주는 요술 상자이다. 여기서, 돌려주는 값을 반환값이란 한다.

함수를 사용하면

  • 프로그램의 가독성이 좋아진다.
  • 전체 프로그램의 흐름을 파악하기 쉽다.
  • 중요한 기능을 함수로 정의하면 다른 프로그램에서 재사용이 가능하여 효율적으로 사용할 수 있다.

함수 분류

함수는 내장 함수와 사용자 정의 함수로 분류된다.

내장 함수

파이썬에서 제공하는 함수로 일반적으로 사용빈도가 높은 함수들이다.

  • 타입 변환 함수 : int(), float(), str()
  • 최대, 최소 함수 : max(), min()

사용자 정의 함수

사용자의 필요에 의해서 직접 정의하는 함수이다.

함수 형식

def 함수명(매개변수):
    코드
    return 변수

함수 이름은 변수 이름을 정의할 때의 규칙을 따른다. 함수를 호출하는 방법은 다음과 같이 함수명과 매개변수를 적어주면된다.

def plus(var1, var2): # 매개변수
   result = 0
   result = var1 + var2
   return result

s = plus(10, 25)  # 인수

매개변수의 수

매개변수가 하나, 둘, 셋인 경우의 함수이다.

def f1(x1):
   return x1+10
   
def f2(x1,x2):
   return x1 + x2
   
def f3(x1, x2, x3):
   return x1+x2+x3

몇 개의 매개변수를 입력할 지 모를경우 "*변수명"의 형태로 매개변수를 지정한다.

이 경우 파이썬은 튜플 타입으로 데이터를 입력받는다. 입력받은 변수를 하나씩 풀어서 연산을 해야한다.

var 튜플에 있는 원소들을 하나씩 꺼내는 방법으로 자주 사용되는 방법은 for문을 이용하는 것이다. 다음 예제는 var에 있는 원소들을 하나씩 꺼내서 더해주는 프로그램이다.

def fplus(*var):
    result = 0
    for i in var:
        result = result + i
    return result

s = fplus(10)
s = fplus(10,15)
s = fplus(23,13,42,95)

"**변수명"은 디셔너리 타입의 데이터를 입력받는다.

def dictplus(**var):
    result = 0
    for i in var.keys():
        print(i, var[i])
        
dictplus(a=10, b=12, c=14, d=16)

위의 프로그램에서 파이썬은 var로 들어오는 데이터는 "{'a':10, 'b':12, 'c':14, 'd':16}으로 인식한다.

기본 인자값

직접 인자를 넘겨주지 않으면, 미리 설정해 놓은 값을 사용한다. 기본 인자값을 사용하는 변수는 입력하지 않아도 되기때문에 매개변수 맨 뒤에 두어야 한다.

def f5(x1, x2 = 5):
    return x1+ x2
    
y = f5(3, 7)     #x1=3, x2=7로 인식
y = f5(3)         #x1=3, x2=5로 인식 

Docstring

함수를 정의하는 행 바로 아래에 3개의 하나짜리 따옴표(''') 혹은 더블 따옴표(""")사이에 입력한 문장은 함수의 설명문 혹은 help 사용시 보여주는 문장이다.

def twoPointDist(A,B):
    '''
    거리계산
    
    두 점사이의 거리를 계산하고 돌려준다.
    '''

    import numpy as np
    dist = np.sqrt((A.x - B.x)**2 + (A.y - B.y)**2)
    return dist

class point():
    def __init__(self,x,y):
        self.x = x
        self.y = y
        
A = point(2,3) 
B = point(4,5)    
d = twoPointDist(A, B)
previous article
next article
Comments
Feel free to ask a question, answer or comment, etc.