-
함수(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함수를 써준뒤에야 숫자형으로 데이터가 바뀐다.
'파이썬' 카테고리의 다른 글
함수에 대해서 - 매개변수와 인자 (0) 2020.07.08 함수와 객체와 형태 (0) 2020.07.06 파이썬 정규 표현식(Regular Expressions) (0) 2020.07.03 파이썬 내장함수 (0) 2020.07.03 연산자 - 비트연산자(bitwise Operators), 대입연산자 (0) 2020.07.02