Function and Module¶
In [ ]:
import warnings
warnings.filterwarnings('ignore')
I. def¶
- 함수(Function): 지정된 입력값을 받아 처리 후 출력값 리턴
- 입력값 -> 함수(Function) -> 출력값
1) 사용자 정의 함수 with def
- addition( ) 정의 및 사용
In [ ]:
def addition(m, n):
k = m + n
return k
In [ ]:
addition(m = 3, n = 6)
Out[ ]:
9
2) 사용자 정의 함수 with lambda
- subtraction( ) 정의 및 사용
In [ ]:
# def subtraction(m, n):
# k = m - n
# return k
- lambda: 한 줄로 함수 정의
In [ ]:
subtraction = lambda m, n : m - n
3) 매개변수 위치¶
- m - n
In [ ]:
subtraction(m = 3, n = 6)
Out[ ]:
-3
- m - n
In [ ]:
subtraction(n = 6, m = 3)
Out[ ]:
-3
- m = 3, n = 6
In [ ]:
subtraction(3, 6)
Out[ ]:
-3
- m = 6, n = 3
In [ ]:
subtraction(6, 3)
Out[ ]:
3
4) 입력값 개수 미지정¶
- '*' 기호가 입력값을 모아서 Tuple로 생성
In [ ]:
def add_all(*inputs):
result = 0
for i in inputs:
result = result + i
return result
In [ ]:
add_all(1, 3, 5, 7, 9)
Out[ ]:
25
5) 매개변수 초깃값 설정¶
- operator = 'addition'
In [ ]:
def add_mul(*inputs, operator = 'addition'):
if operator == 'addition':
result = 0
for i in inputs:
result = result + i
elif operator == 'multiplication':
result = 1
for i in inputs:
result = result * i
return result
- 마지막 매개변수 생략
In [ ]:
add_mul(1, 3, 5, 7, 9)
Out[ ]:
25
- 초깃값이 아닌경우 매개변수 지정
In [ ]:
add_mul(1, 3, 5, 7, 9, operator = 'multiplication')
Out[ ]:
945
- 초깃값 설정 - m = 3, n = 6
In [ ]:
def addition(m = 3, n = 6):
k = m + n
return k
- 매개변수 없이 실행
In [ ]:
addition()
Out[ ]:
9
- 매개변수 지정 실행
In [ ]:
addition(m = 7, n = 9)
Out[ ]:
16
II. Module¶
- Module: 사용자 정의 함수를 포함하고 있는 파이썬 스크립트(*.py)
- import: 파이썬 스크립트에 정의된 함수를 메모리로 호출
1) 내장 모듈¶
- 사용구문: import Module_Name
In [ ]:
import time
- 사용구문: Module_Name.Function_Name( )
In [ ]:
print('스크립트 시작')
time.sleep(9)
print('시작 9초 후 스크립트 종료')
스크립트 시작 시작 9초 후 스크립트 종료
- Built-in Module Path
In [ ]:
import sys
sys.path
Out[ ]:
['/content', '/env/python', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '', '/usr/local/lib/python3.10/dist-packages', '/usr/lib/python3/dist-packages', '/usr/local/lib/python3.10/dist-packages/IPython/extensions', '/root/.ipython']
2) 내장 모듈 with Alias (import ~ as)¶
- 사용구문: import Module_Name as Alias
In [ ]:
import time as t
- 사용구문 : Alias.Function_Name( )
In [ ]:
print('5초 후에 결과 출력')
t.sleep(5)
print('축하합니다. 합격입니다!')
5초 후에 결과 출력 축하합니다. 합격입니다!
3) 사용자 모듈 만들기¶
- myModule.py 스크립트 생성(UTF-8 Encoding)
- 스크립트에 사용자 함수 정의
- Colab에 myModule.py 업로드 후 실습 진행
In [ ]:
!pwd
/content
In [ ]:
!ls -l
total 8 -rw-r--r-- 1 root root 350 Jul 4 06:30 myModule.py drwxr-xr-x 1 root root 4096 Jun 29 13:30 sample_data
(1) Module import¶
- 사용구문: import Module_Name
In [ ]:
import myModule
(2) hi( )¶
- 사용구문: Module_Name.Function_Name( )
In [ ]:
myModule.hi()
사용자 정의 함수 실행 Hello World 사용자 정의 함수 종료
(3) addition( )¶
In [ ]:
myModule.addition(3, 6)
Out[ ]:
9
(4) subtraction( )¶
In [ ]:
myModule.subtraction(3, 6)
Out[ ]:
-3
(5) add_all( )¶
In [ ]:
myModule.add_all(1, 3, 5, 7, 9)
Out[ ]:
25
4) 사용자 모듈 with from ~ import
- Error
In [ ]:
hi()
--------------------------------------------------------------------------- NameError Traceback (most recent call last) <ipython-input-37-0c415d115f7e> in <cell line: 1>() ----> 1 hi() NameError: name 'hi' is not defined
- 사용구문: from Module_Name import Function_Name
In [1]:
from myModule import hi
- 사용구문: Function_Name( )
- 모듈명 없이 함수명으로 호출
In [2]:
hi()
사용자 정의 함수 실행 Hello World 사용자 정의 함수 종료
5) 사용자 모듈 with Alias (import ~ as)¶
- 사용구문: import Module_Name as Alias
In [ ]:
import myModule as m
(1) hi( )¶
- 사용구문 : Alias.Function_Name( )
In [ ]:
m.hi()
사용자 정의 함수 실행 Hello World 사용자 정의 함수 종료
(2) addition( )¶
In [ ]:
m.addition(5, 7)
Out[ ]:
12
'# Coding > 데이터 분석을 위한 Python' 카테고리의 다른 글
Python 넘파이 (0) | 2023.10.02 |
---|---|
Python 클래스 & 패키지 (0) | 2023.10.02 |
Python 제어문 (0) | 2023.10.02 |
Python 데이터 구조 (0) | 2023.10.02 |
Python 데이터 유형과 연산자 (0) | 2023.10.02 |