ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수(Function)에 대해서
    파이썬 2020. 7. 8. 03:30

    1. 수학에서 함수는?

    두 집합의 특정한 대응 관계. 한 집합의 임의의 원소를 다른 집합의 오직 한 원소에 대응시키는 대응 관계.

     

     

    2. 프로그램에서 함수, 파이썬의 함수란?

    수학에서 한 원소가 다른 원소에 대응되듯, 인자(argument)를 전달받아 그 결과로 결과값, 반환값을 돌려주는 역할을 하는 것을 함수라 한다.

     

     

    3. 파이썬에서 함수 만들기

    def(define 정의한다는 뜻) + 함수이름 + (매개변수)

    ex) def to_radians (deg) : 뜻은 deg를 radian으로 바꾸는 함수라는 뜻

     

     

    4. 파라미터(parameter, 매개변수)

    함수는 인자들을 가리키는 변수들을 이용하여 정의됨.

     

    그러한 인자들을 파라미터(parameter, 매개변수)라고 한다.

     

    예를 들어서 아래와 같은 경우에 (amount, rate, years) 들을 파라미터라고 한다.

    def compute_interest(amount, rate, years) :

    함수 내부에서 매개변수는 다른 변수와 동일하게 사용된다.

     

    그리고 함수의 수행이 끝나면 하나의 결과값을 리턴해주어야 한다.

    (물론 리턴하는 하나의 결과값을 튜플로해서 다양한 수나 문자를 넣어서 리턴하는 것이 가능하다)

    def f(): # 해당 함수는 튜플 하나의 값을 리턴함.
        x=10
        y=20
        return (x,y) #하나의 튜플 안에 여러개 원소가 들어가있는 것.
        
    >>> print(f())
    (10,20)
    
    >>>(a,b) = f()
    >>> print(a)
    10
    >>> print(b)
    20

     

     

    5. Argument(인자)와 parameter(매개변수)의 차이

    함수가 호출되면, 호출 될 때의 함수 인자(argument)들은 매개변수(parameter)로 대입.

    아래와 같이 함수 인자가 매개변수에 대입되는 것. 

    즉 함수 인자를 괄호 안에 넣어주고 그 인자가 매개변수에 대입되어 함수가 수행됨.

    def print_twice(text): #(text)에 해당하는 부분이 매개변수
        print(text)
        print(text)
        
    >>> print_twice("I love you") #("I love you)에 해당하는 부분이 함수 인자

     

     

     

    6. 함수의 종류

    (1) 여러 반환문을 가진 함수

    함수는 수행이 끝나면 하나의 결과값을 리턴해줘야 한다.

    그렇다고 함수 내부에서 리턴해줄 공식 자체가 단 한 가지라는 것은 아니다.

    여러 Return Statement(반환문)를 가진 경우에 따라 리턴해주는 값이 달라진다.

     

    아래와 같이 절대값을 구하는 함수에서는 두 가지의 리턴 스테이트먼트를 가졌고

    어떤 선택이냐에 따라 반환값이 달라진다. 단, 리턴하는 결과값은 단 하나다.

    def absolute(x):
        if x < 0:
        	return -x
        else:
        	return x

     

    (2) 논리값을 반환하는 함수(조건함수, predicate)

    논리값 True / False을 반환하는 함수로 아래와 같은 예를 들 수 있다.

    def is_divisible(a, b):
        if a%b == 0:
            return True
        else:
            return False

    조건함수는 if문항의 조건이나 while문항의 조건 안에 바로 사용이 가능하며,

    위와 같은 함수도 축약하고 같은 기능을 갖게 할 수 있다.

    def is_divisible(a, b) :
        return a & b == 0

     

    (3) 결과값이 없는 함수

    함수 중에선 결과값이 없는 함수도 있다.

    이 경우 None 값을 반환한다.

    아래 예시와 같은 경우 프린트된 값은 존재하지만, 이것이 리턴을 의미하는 것은 아니다.

    함수 내 return value가 없을 경우 None을 반환했다.

    def turn_right():
        for i in range(3):
            hubo.turn_left()
            
    >>> s = turn_right()
    >>> print(s)
    None

     

    (4) input함수

    사용자가 입력한 문자열의 입력을 받는 함수(숫자를 입력해도 문자열에 숫자가 들어간 형태로 입력됨)

    숫자를 입력하고 싶다면 문자열 형태로 입력된 숫자를 int함수를 이용해 데이터 타입을 바꿔줘야 한다.

    name = input("what is your name?") #실행시 "what...name?" 텍스트 출력 후 문자열 입력 가능
    print("welcome to Hometown" + name) # 실행시 "welcome..." 텍스트 출력 후 입력한 이름 출력
    >>> num = input("숫자를 입력해주세요") #숫자를 입력하지만 문자열로서 입력된다.
    
    "숫자를 입력해주세요" > 100
    
    >>> type(num)
    <class 'str'>
    
    #키보드를 이용한 입력은 기본적으로 문자열이다.
    
    >>> int(num)
    >>> type(num)
    <class 'int'>
    
    #int함수를 써준뒤에야 숫자형으로 데이터가 바뀐다.
Designed by Tistory.