<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 함수 정의하기 및 실행하기
함수 정의하기
Step2:  함수정의의 문서화
프로그래밍 코드를 저장한 파일에는 코드 이외에 코드와 관련된 주석을 적절하게 포함하고 있어야 한다. 이를 "문서화"라 한다. 
문서화는 코드 이상으로 중요하다. 문서화가 제대로 되어있지 않은 프로그램 코드 파일은 코드 개발 및 관리를 매우 어렵게 만든다. 
문서화의 기본은 함수에 주석을 다는 것이다. 함수정의에 사용되는 주석을 "docstring(문서화 문자열)"이라 부른다. 
함수에 주석을 달아주면 help 함수를 이용하여 해당 함수의 역할 및 사용법을 확인할 수 있다.
앞서 help("abs") 명령을 실행하여 abs 함수가 절대값을 return하는 함수임을 알 수 있었음에 주의하라.
Step3:  함수 관련 용어
함수를 호출(실행)하기 위해서는 함수이름(인자1, 인자2, ...) 형태로 사용한다. 
예를 들어 mysum(2,3) 처럼 mysum 함수를 호출한다.
Step4:  mysum(x,y)에서 x와 y는 mysum 함수를 호출할 때 사용되는 "인자(argument)" 들이다. 
z는 mysum 함수를 두 개의 인자 x, y에 대해 호출하였을 때 "되돌려주는 값(리턴값, return value)"이다. 
함수를 호출할 때 사용되는 인자의 개수는 0개 이상이다. 
리턴값이 없는 것처럼 보이는 함수도 존재한다. 대표적으로 print 함수가 그렇다. 즉, print 함수의 정의를 확인하면 return 값이 정의되어 있지 않다. 
하지만 return 값이 명시되어 있지 않아도 파이썬은 None이라는 특별한 값을 리턴한다고 간주한다. 
리턴값이 있는/없는 함수
Step5:  주의
Step6:  모듈(Module)
모듈은 동일한 분야에서 사용되는 함수 및 코드들을 한데로 모아놓은 파이썬 파일(확장자가 .py인 파일)이다.
예를 들어 operator 모듈은 파이썬에서 기본적으로 제공하는 계산 관련 함수들의 정의들을 갖고 있는 파일이다.
덧셈, 뺄셈, 나눗셈 등 기초 연산자들이 아닌 다른 함수들, 예를 들어, sin, cos, log 등 고등수학 관련 함수들은 math 라는 모듈에 정의되어 있다. 
operator 모듈
+, -, *, /, //, ** 등은 파이썬이 기본적으로 제공하는 함수들을 대신하는 기호들이다. 각 기호들에 해당하는 진짜 함수들은 operator 모듈에 정의되어 있다.
예를 들어, + 기호는 operator 모듈의 add 함수를 나타낸다.
기타 기호들의 함수들에 대해서는 아래 링크를 참조하면 된다.
   https
Step7:  dir 함수를 이용하면 operator 모듈에 정의되어 있는 함수들의 목록을 확인할 수 있다.
Step8:  모듈 사용하는 법
모듈을 사용하려면 해당 모듈을 import 해야 한다. 예를 들어, sin(10) 값을 구하기 위해 math 모듈을 임포트해야 하는데 임포트 방식은 크게 세 가지로 나뉜다.
import math 명령을 실행한 후에 math.sin(10) 등 처럼 실행하면 된다.
모듈 이름을 임의로 고쳐서 임포트 할 수 있다
Step9:  math 모듈에 들어있는 함수들을 종종 확인할 필요가 있다. 강의에서 가장 많이 사용하는 모듈 중에 하나이다.
<ASSISTANT_TASK:>
Python Code:
def mysum(a, b):
    return a + b
Explanation: 함수 정의하기 및 실행하기
함수 정의하기: def 키워드를 이용
함수를 정의하려면 def 키워드를 이용한다.
def 함수이름(인자, ...): 형태로 정의한다. 
콜론(:)을 항상 사용해야 함에 주의할 것.
함수의 본체(body)는 들여쓰기를 해야한다. 
들여쓰기는 선택이 아닌 의무사항이다.
End of explanation
def mysum(a, b):
    내가 정의한 덧셈이다.
    인자 a와 b에 각각 두 숫자를 입력받아 합을 되돌려준다.
    
    return a + b
help(mysum)
Explanation: 함수정의의 문서화
프로그래밍 코드를 저장한 파일에는 코드 이외에 코드와 관련된 주석을 적절하게 포함하고 있어야 한다. 이를 "문서화"라 한다. 
문서화는 코드 이상으로 중요하다. 문서화가 제대로 되어있지 않은 프로그램 코드 파일은 코드 개발 및 관리를 매우 어렵게 만든다. 
문서화의 기본은 함수에 주석을 다는 것이다. 함수정의에 사용되는 주석을 "docstring(문서화 문자열)"이라 부른다. 
함수에 주석을 달아주면 help 함수를 이용하여 해당 함수의 역할 및 사용법을 확인할 수 있다.
앞서 help("abs") 명령을 실행하여 abs 함수가 절대값을 return하는 함수임을 알 수 있었음에 주의하라.
End of explanation
x = 2
y = 3
z = mysum(x,y)
Explanation: 함수 관련 용어
함수를 호출(실행)하기 위해서는 함수이름(인자1, 인자2, ...) 형태로 사용한다. 
예를 들어 mysum(2,3) 처럼 mysum 함수를 호출한다.
End of explanation
def print42():
    print(42)
    
def return42():
    return 42
b = return42()
b
a = print42()
print(a)
Explanation: mysum(x,y)에서 x와 y는 mysum 함수를 호출할 때 사용되는 "인자(argument)" 들이다. 
z는 mysum 함수를 두 개의 인자 x, y에 대해 호출하였을 때 "되돌려주는 값(리턴값, return value)"이다. 
함수를 호출할 때 사용되는 인자의 개수는 0개 이상이다. 
리턴값이 없는 것처럼 보이는 함수도 존재한다. 대표적으로 print 함수가 그렇다. 즉, print 함수의 정의를 확인하면 return 값이 정의되어 있지 않다. 
하지만 return 값이 명시되어 있지 않아도 파이썬은 None이라는 특별한 값을 리턴한다고 간주한다. 
리턴값이 있는/없는 함수
End of explanation
return42()
print42()
Explanation: 주의: IPython의 경우 리턴값이 있는 함수의 경우에만 out[] 문장이 함께 사용된다.
End of explanation
import operator
help(operator.add)
Explanation: 모듈(Module)
모듈은 동일한 분야에서 사용되는 함수 및 코드들을 한데로 모아놓은 파이썬 파일(확장자가 .py인 파일)이다.
예를 들어 operator 모듈은 파이썬에서 기본적으로 제공하는 계산 관련 함수들의 정의들을 갖고 있는 파일이다.
덧셈, 뺄셈, 나눗셈 등 기초 연산자들이 아닌 다른 함수들, 예를 들어, sin, cos, log 등 고등수학 관련 함수들은 math 라는 모듈에 정의되어 있다. 
operator 모듈
+, -, *, /, //, ** 등은 파이썬이 기본적으로 제공하는 함수들을 대신하는 기호들이다. 각 기호들에 해당하는 진짜 함수들은 operator 모듈에 정의되어 있다.
예를 들어, + 기호는 operator 모듈의 add 함수를 나타낸다.
기타 기호들의 함수들에 대해서는 아래 링크를 참조하면 된다.
   https://docs.python.org/2/library/operator.html
operator 모듈에 있는 함수들의 이름을 직접 사용하려면 import operator 명령을 실행한 후에 operator.add(1,2) 형태로 실행하면 된다.
dir(operator) 를 실행하면 operator 모듈에 어떤 함수들이 정의되어 있는지 확인할 수 있다
End of explanation
dir(operator)
Explanation: dir 함수를 이용하면 operator 모듈에 정의되어 있는 함수들의 목록을 확인할 수 있다.
End of explanation
import math
math.sin(10)
import math as m
m.pi
from math import sin, pi
sin(10)
pi
math.cos(10)
from math import *
exp(1)
Explanation: 모듈 사용하는 법
모듈을 사용하려면 해당 모듈을 import 해야 한다. 예를 들어, sin(10) 값을 구하기 위해 math 모듈을 임포트해야 하는데 임포트 방식은 크게 세 가지로 나뉜다.
import math 명령을 실행한 후에 math.sin(10) 등 처럼 실행하면 된다.
모듈 이름을 임의로 고쳐서 임포트 할 수 있다: import math as m
from math import sin 명령을 실행한 후에 sin(10)을 실행하면 된다. 
from math import * 명령을 실행한 후에 sin(10)을 실행하면 된다. 여기서 * 는 모든 함수를 의미한다.
End of explanation
dir(math)
help(math.sqrt)
Explanation: math 모듈에 들어있는 함수들을 종종 확인할 필요가 있다. 강의에서 가장 많이 사용하는 모듈 중에 하나이다.
End of explanation
<END_TASK>