이번에는 앞서 익힌 함수의 개념을 확대하여, 사용자들이 보기 편하게 함수를 다듬는 방법을 익힙니다.
더불어서 가장 간단한 형태의 구구단을 만들어 봄으로서, 앞으로 익힐 새로운 문법들이 얼마나 큰 도움을 주게 될지를 경험하게 됩니다.
우리는 앞에서 Python이 제공하는 다양한 내장 함수들에 대한 설명을 보고 싶을때, 관련 자료나 웹사이트를 방문할 수도 있지만,
Python에 내장된 help()
함수를 이용하여, 쉽고 빠르게 내장 함수에 대한 정보를 확인할 수 있었습니다.
그렇다면 사용자 정의 함수에 대한 설명도 help()
와 같은 방법으로 제공할 수 있을까요?
사용자 정의 함수를 help()
함수를 사용하여 확인할 수 있는 방법을 FDR이라고 합니다.
비단 FDR은 사용자 정의 함수를 사용하는 사람 뿐 아니아, 사용자 정의 함수를 개발하는 프로그래머 스스로에게도 도움이 됩니다.
그러면 FDR에 대해서, 사례를 통해서 알아보도록 합니다.
이를 위하여 앞 강좌에서 사용한 convert_to_celsius()
함수를 다시 기억합니다.
def convert_to_celsius(fahrenheit):
return (fahrenheit - 32) * 5/9
convert_to_celsius()
함수를 FDR로 처리한 예제가 다음처럼 됩니다.
def convert_to_celsius(fahrenheit):
""" (int) -> int #1
Return the celcius number from the given fahrenheit number. #2
>>> convert_to_celsius(212) #3
100 #4
""" #5
return (fahrenheit - 32) * 5/9
convert_to_celsius()
함수안에 여러줄이 포함된 것을 볼수 있습니다.
새롭게 추가된 부분은 일정한 규칙을 따르면서 작성합니다.
#1
에 해당하는 부분은 FDR의 시작을 나타내는 """
문장이 있습니다.
그리고 convert_to_celsius()
함수의 입력 파라메타가 정수임을 나타내는 (int)
문장과 출력값도 정수임을 나타내는 -> int
문장이 있습니다.
FDR 문장은 #5
에서 시작 부분과 동일하게 """
문장을 작성함으로서 종료지점을 나타냅니다.
#2
는 convert_to_celsius()
함수에 대한 자세한 설명을 합니다.
현재는 간단하게 섭씨를 받아서, 화씨로 바꾼다는 정도로만 작성했지만,
보다 복잡한 함수는 가능한 자세하게 설명을 하면 좋습니다.
#3
은 convert_to_celsius()
함수의 동작 예제를 보여주어, 처음 함수를 접하는 사람도 쉽게 사용할 수 있도록 합니다.
#4
는 convert_to_celsius()
함수의 동작 예제에 대한 결과를 보여줍니다.
동작 예제는 필요한 경우, 여러 가지에 대한 사례를 보여주면, 활용하는 사람 입장에서 편리할 것입니다.
그러면 위의 convert_to_celsius()
함수에 대한 FDR 예제 코드를 아래의 입력창에 입력후, 실행해 봅니다.
def convert_to_celsius(fahrenheit):
""" (int) -> int #1
Return the celcius number from the given fahrenheit number. #2
>>> convert_to_celsius(212) #3
100 #4
""" #5
return (fahrenheit - 32) * 5/9
convert_to_celsius()
함수의 FDR이 제대로 동작하는지 help()
함수의 입력 파라메타를 convert_to_celsius()
함수명으로 실행해 봅니다.
help()
함수의 실행 결과가 FDR로 추가한 문장들이라면, 제대로 동작하는 것을 확인한 셈입니다.
help(convert_to_celsius)
Help on function convert_to_celsius in module __main__: convert_to_celsius(fahrenheit) (int) -> int #1 Return the celcius number from the given fahrenheit number. #2 >>> convert_to_celsius(212) #3 100 #4
두 숫자의 차이를 절대값으로 계산하는 getDifference()
함수를 만들고자 합니다.
이 함수는 두 개의 숫자를 입력 파라메타로 전달 받아서, 두 숫자의 차이값을 절대 값으로 계산하여 호출된 곳으로 전달합니다.
절대 값의 계산은 Python의 내장 함수를 사용하도록 합니다.
또한 사용자가 편하게 getDifference()
함수를 사용할 수 있도록 help(getDifference)
의 형태로 정보를 제공하도록 합니다.
위의 사항을 반영한 getDifference()
함수를 아래의 입력 창에 입력하고, 실행하십시오.
def getDifference(value_1,value_2):
"""
Function that return absolute difference
"""
return abs(value_1-value_2)
[자가진단1] 본인이 만든 LAB 프로그램이 제대로 동작하는지 확인합니다.
아래의 입력창을 수정하지 않고, 그대로 실행해서, 실행결과로 8이 나온다면 제대로 작성한 것입니다.
만약 그렇지 않다면, getDifference()
함수를 수정하여 에러가 없도록 다시 작성합니다.
getDifference(10, 2)
8
[자가진단2] 본인이 만든 LAB 프로그램이 제대로 동작하는지 확인합니다.
아래의 입력창을 수정하지 않고, 그대로 실행해서, 아무런 변화가 없다면 제대로 작성한 것입니다.
만약 에러 화면이 나타난다면, getDifference()
함수를 수정하여 에러가 없도록 다시 작성합니다.
assert getDifference(10, 2) == 8
assert getDifference(-9910, 2) == 9912
사용자 정의 함수를 만들수 있으니, 원시적인 형태의 구구단 프로그램을 작성해 봅니다.
아래의 입력창에 1에서 9사이의 정수를 하나 입력 파라메타로 전달하면,
해당 정수에 대해서 곱하기 1부터 곱하기 9까지의 결과를 출력하는 함수 calcGugudan()
을 작성합니다.
calcGugudan()
함수의 출력값은 없습니다.
해당 calcGugudan()
함수를 만든후, 입력 파라메타로 1에서 9까지의 결과를 주어서 제대로 된 결과가 나오는지 확인 합니다.
참고로 calcGugudan()
함수에 입력 파라메타로 3을 준 경우의 결과 예시는 다음과 같습니다.
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
3 * 4 = 12
3 * 5 = 15
3 * 6 = 18
3 * 7 = 21
3 * 8 = 24
3 * 9 = 27
이런 형태의 출력을 만들기 위해서, print()
함수의 사용법을 추가로 설명하면 다음과 같습니다.
print()
함수를 통해서 여러 값을 한번에 출력하고 싶으면, ( )
괄호 사이에 쉼표로 여러 값을 나타내면 됩니다.
즉, 변수 x
와 *
, =
기호 및 산술식 x + 1
을 혼용해서 하나의 print()
함수에서 출력할 경우는 다음처럼 하면 됩니다.
print(x, "*", 1, " = ", x * 1)
그러면, 아래 창에 위의 조건을 만족하는 calcGugudan()
함수를 작성하고,
이 함수를 이용해서 1단에서 9단까지의 결과를 화면에 출력하는 프로그램을 작성 합니다.
def calcGugudan(x):
print(x, "*", 1, " = ", x * 1)
print(x, "*", 2, " = ", x * 2)
print(x, "*", 3, " = ", x * 3)
print(x, "*", 4, " = ", x * 4)
print(x, "*", 5, " = ", x * 5)
print(x, "*", 6, " = ", x * 6)
print(x, "*", 7, " = ", x * 7)
print(x, "*", 8, " = ", x * 8)
print(x, "*", 9, " = ", x * 9)
return
[자가진단1] 본인이 만든 LAB 프로그램이 제대로 동작하는지 확인합니다.
아래의 입력창을 수정하지 않고, 그대로 실행해서, 아래와 동일하게 나온다면 제대로 작성한 것입니다.
만약 그렇지 않다면, calcGugudan()
함수를 수정하여 에러가 없도록 다시 작성합니다.
9 * 1 = 9
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
calcGugudan(9)
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
[자가진단2] 본인이 만든 LAB 프로그램이 제대로 동작하는지 확인합니다.
아래의 입력창을 수정하지 않고, 그대로 실행해서, 1단 부터 9단까지의 구구단 결과가 제대로 나온다면 제대로 작성한 것입니다.
만약 그렇지 않다면, calcGugudan()
함수를 수정하여 에러가 없도록 다시 작성합니다.
calcGugudan(1)
calcGugudan(2)
calcGugudan(3)
calcGugudan(4)
calcGugudan(5)
calcGugudan(6)
calcGugudan(7)
calcGugudan(8)
calcGugudan(9)
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
Step_06_Boolean (0) | 2021.05.18 |
---|---|
Step_05_String (0) | 2021.05.15 |
Step_03_Functions_Part_1 (0) | 2021.05.10 |
Step_02_Variables (0) | 2021.05.07 |
Anaconda3 설치 및 Jupyter notebook 실행 (3) | 2021.05.06 |
댓글 영역