내장 함수 이해하기
Python과 같은 프로그래밍 언어는, 이미 다양한 기능을 수행하는 함수들을 내장하고 있으며,
예를 들면 다음과 같습니다.
abs(x): 입력 받은 정수 혹은 실수 변수인 x의 절대값을 계산합니다.
pow(x, y): 입력 받은 x의 y 거듭제곱을 계산합니다.
round(x): 입력 받은 x를 소수점 다음에 대해서 반올림한 값을 계산합니다.
다음의 코드를 아래 입력창에 한번에 입력하여, 실행함으로서 확인이 가능합니다.
print(abs(-9))
print(pow(3,2))
print(round(4.3))
9
9
4
사용자 정의 함수 만들기
Fahrenheit to Celsius (수학): 𝐶=(𝐹−32)∗59C=(F−32)∗59
사용자 정의 함수를 만들기 전에 다음의 사항을 미리 고민해야 합니다.
(1) 함수의 이름은 무엇인가?
(2) 함수의 입력 파라메타는 무엇인가? (갯수, 종류 등)
(3) 함수의 기능은 무엇인가? (입력 파라메타를 받아서 어떤 작업을 해야하는가 등)
(4) 함수의 출력 파라메타는 무엇인가? ((3)의 작업을 마친후, 함수를 호출한 곳으로 어떤 결과를 돌려줘야 하는가 등)
각각에 대해서 미리 답을 해봅시다.
(1) 함수의 이름: convert_to_celsius
(2) 함수의 입력 파라메타: 화씨로 변환할 섭씨 온도 숫자 하나
(3) 함수의 기능: 화씨를 섭씨로 바꾸는 공식에 맞춰서, 입력 파라메타에서 32를 뺀후 5959를 곱함
(4) 함수의 출력 파라메타: 화씨로 변환한 온도 숫자 하나
이제 정의한 함수를 Python 언어로 작성하면 다음과 같습니다.
def convert_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
에러가 나지 않았다면, 이제 Python은 여러분이 만든 convert_to_celsius() 함수를 기억하고 있습니다.
convert_to_celsius(212)
100.0
함수를 호출하는 경우는 함수가 필요로 하는 입력 파라메타의 갯수(필요시 입력 파라메타의 타입(들) 및 순서)를 맞춰줘야 합니다.
이를 위해서 간단한 사용자 정의 함수인 quadratic()을 만들어 봅니다.
def quadratic(a, b, c, x):
first = a * x ** 2
second = b * x
third = c
return first + second + third
print(quadratic(2,3,4,3))
print(quadratic(2,3,4,1.0))
31
9.0
다음의 다섯 함수를 만듭니다.
-
sum(a,b): a와 b값을 더한 값을 출력값으로 돌려줌
-
multiply(a,b): a와 b값을 곱한 값을 출력값으로 돌려줌
-
subtract(a,b): a에서 b값을 뺀 값을 출력값으로 돌려줌
-
multiply_three_numbers(a,b,c): 𝑎∗𝑏∗𝑐a∗b∗c를 모두 곱한 값을 출력값으로 돌려줌
-
add_and_multiply(a,b,c): (𝑎+𝑏)∗𝑐(a+b)∗c를 계산한 값을 출력값으로 돌려줌
def sum(a,b):
first = a
second = b
return first+second
def multiply(a,b):
return a*b
def subtract(a,b):
return a-b
def multiply_three_numbers(a,b,c):
return a*b*c
def add_and_multiply(a,b,c):
return (a+b)*c
앞서 작성한 quadratic() 함수를, 기본 연산자들을 사용하지 말고,
지금까지 정의한 사용자 정의 함수 및 내장 함수를 '그대로' 이용하여 새롭게 정의하며, 이를 new_quadratic() 함수로 정의합니다.
def new_quadratic(a,b,c,x):
first=multiply(a,pow(x,2))
second=multiply(b,x)
third=c
return first+second+third
아래의 입력창을 수정하지 않고, 그대로 실행해서, 아무런 변화가 없다면 제대로 작성한 것입니다.
assert new_quadratic(2, 3, 4, 2) == 18
assert new_quadratic(4, 7, 1, 9) == 388
assert new_quadratic(-54, 77, 32, 100) == -532268
해당 자료는 경희대학교 소프트웨어융합학과 이성원교수님 수업내용을 참조하였습니다.
'Code > Phyton' 카테고리의 다른 글
[Phyton] List / Aliasing vs Slicing / List of lists (0) | 2019.10.07 |
---|---|
[Phyton] Modules/ Method & Class/ Object (1) | 2019.09.30 |
[Phyton] String/ Escape Sequence/ Slicing String (0) | 2019.09.23 |
[Phyton] Function Design Recipe (FDR) (0) | 2019.09.22 |
[Phyton] 변수/ 데이터 타입 (0) | 2019.09.22 |