프로그래밍/파이썬

[파이썬] 함수

znvlcm 2021. 6. 16. 20:14


함수 왜 쓰지? 반복적이고 중복되는 처리를 줄일 수 있다.
함수 왜 쓰지? 반복적이고 중복되는 처리를 줄일 수 있다.
코드 가독성, 유지보수성 등의 유용, 함수는 하나의 기능을 하나의 함수

1. 함수정의
def 함수명(parameter) :
        code

2. 함수호출
함수명(parameter)

3. 함수선언위치
함수선언은 반드시 함수호출전에 할 것 정의되지 않은 함수를 부를 수 없음
함수 선언 전 호출 : hello('world') => NameError: name 'hello' is not defined

함수선언

    def hello(world) :
        print("Hello", world)

함수 선언 후 호출 hello("Korea")
=> Hello Korea
hello("10000")
=> Hello 10000

4. return이 있는 함수

함수선언

def hello_return(world) :
    return "Hello "+ str(world)

hello_return('Korea')=> HelloKorea
hello_return(7777)=> Hello7777

5. 다중리턴이 있는 함수

함수선언

def func_mul(x) :
    y1 = x * 100
    y2 = x * 200
    y3 = x * 300
    return y1, y2, y3


함수호출
func_mul(100) => (10000, 20000, 30000) func_mul(100)[0] = 10000
다중리턴 기본 자료형 : <class 'tuple'>

6. 다중리턴 리스트로 받는 함수

함수선언

def func_mul_list(x) :
    y1 = x * 100
    y2 = x * 200
    y3 = x * 300
    return [y1, y2, y3]


함수호출
func_mul_list(100) => [10000, 20000, 30000]func_mul_list(100)[0] = 10000
자료형 : <class 'list'>

7. args 가변적개수를 가진 파라미터

함수선언

def args_family_name(*args) :
    return args


함수호출
args_family_name('kim') => ('kim',)
args_family_name('lee','park') = ('lee', 'park')
자료형 : <class 'tuple'>

8. kwargs 가변적개수를 가진 딕셔너리파라미터를 딕셔너리로 받기

함수선언

def args_family_name_dict(**kwargs) :
    return kwargs


함수호출
args_family_name_dict(p1 = 'kim') => {'p1': 'kim'}
args_family_name_dict(p1='lee',p2='park') = {'p1': 'lee', 'p2': 'park'}
자료형 : <class 'dict'>

7. args 가변적개수를 가진 파라미터

함수선언

def args_family_name(*args) :
    return args


함수호출
args_family_name('kim') => ('kim',)
args_family_name('lee','park') = ('lee', 'park')
자료형 : <class 'tuple'>

9. 중첩함수 클로져

함수선언

def nested_func(num) :
    def func_in_func(num) :
        print('>>> ',num)
    print("in func")
    func_in_func(num*10000)


함수호출
in func
>>>  20000
nested_func(2) =>   None

10. 힌트 : 파라미터와 리턴값의 자료형 명시

함수선언

def func_mul_hint(x : int) -> list :
    y1 = x * 100
    y2 = x * 200
    y3 = x * 300
    return [y1, y2, y3]


함수호출
func_mul_hint(2) =>   [200, 400, 600]
func_mul_hint('a') =>   ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa']
특별히 에러를 발생시키진 않지만, 함수를 쓸 때 툴팁에 자료형이 표시

728x90

'프로그래밍 > 파이썬' 카테고리의 다른 글

[머신러닝] 다중선형회귀  (0) 2021.11.29
[머신러닝] 단순선형회귀 분석  (0) 2021.11.29
[파이썬] 딕셔너리 (Dict)  (0) 2021.06.15
[파이썬] Set 셋  (0) 2021.06.15
[파이썬] 튜플 (Tuple)  (0) 2021.06.15