Machine Learning/Tensorflow

08. 함수

728x90

01. 함수 다루기, 함수의 인자, 지역 변수와 전역 변수, 리턴 값

- 함수는 1개이상의 명령어를 그룹으로 묶어 반복 처리가 가능합니다.
- 
데이터(변수)를 사칙연산(+, -, *, /, %)을 이용하여 처리하는 역활을 합니다.

- 데이터를 입출력하는 경우 사용합니다.
- 
한번 만든 함수는 계속적으로 호출(재사용) 할 수 있습니다.
- SW 
콤포넌트의 가장 작은 단위라고 할 수 있습니다.
- 
함수는 소괄호 '()'를 선언해야 합니다.
- 
함수로 전달하는 데이터를 Parameter, 전달받는 쪽을 Argument라고 부릅니다.
- 
파이썬은 Method Overroding을 지원하지 않습니다. 하지만 가변 인수로 어느정도 비슷한 기능을 구현할 수 있습니다.
- 형식 : 

def 함수이름(인자1, 인자2..) 
	코드들..
    return 결과값

1. 함수로 데이터 전달

- *actors: 인수를 tuple 형태로 가변 인자로 전달 받음
- **actors: 
인수를 dictionary 형태로 가변 인자로 전달 받음

2. 지역 변수와 전역 변수

- 지역 변수 : 메소드(함수) 안에 선언, 메소드(함수) 안에서만 사용 가능
- 전역 변수 : 메소드(함수) 외부에 선언, 모든 메소드(함수)에서 사용 가능
- global : 전역 변수의 사용 선언

 /python/notebook/module/Def.ipynb

- Jupyter Notebook에서 '/python/notebook/module' 폴더를 생성합니다.
  (Python3
부터 폴더와 패키지의 구분이 없어짐)

def movie1(name):  # name 인수
    print('영화명: ' + name)    
    
def movie2(name, genre):  # 인수 여러개 사용 가능
    print('영화명: ' + name)        
    print('장  르: ' + genre)          

.....  
    
def movie3(name, genre, score=5.0):  # 기본값 사용
    print('영화명: ' + name)        
    print('장  르: ' + genre)  
    print('평  점: ' + str(score))

.....
def movie4(time, name, genre):
    print('영화명: ' + name)        
    print('시  간: ' + str(time))  
    print('장  르: ' + genre)

.....
def movie5(*actors):  # tuple, 가변인자 처리
    print(type(actors))
    print(actors)

.....

def season(month):
    season=''
    if month == 1:
        season='January'
    elif month == 2:
        season='February'
    elif month == 3:
        season="March"
    else:
        season="Only input 1 ~ 3"
    
    return season

.....