공부/파이썬 2021. 9. 26. 19:12

20210926 점프 투 파이썬

04-1 함수

 

def 함수이름( 매개변수 ) :

    수행할 문장1

    수행할 문장2

....

 

def add(a,b,c):

    return a+b+c

def add_print(a,b,c):

    print("%d, %d, %d 의 합은 %d입니다" % ( a,b,c,a+b+c) )

def say():

    return 'hi world'

def test_func(a,b)

    return a-b

test_func(4,1) = 3

test_func(b=3, a=10) = 7

 

매개변수 갯수를 모르는 경우 *매개변수 로 한번에 받을 수 있다.

def add_all( *num )

    result = 0

    for i in num:

        result = result + i

    return result

매개변수 갯수를 모르는 경우2  *매개변수 앞에 추가로 매개변수 넣을 수도 있음

def add_choice( choice, *num )

    if choice == "add" :

        result = 0

        for i in num :

             result = result + i

    elif choice == "mul":       

        result = 1

        for i in num :

             result = result * i

    return result 

매개변수를 키워드포함으로 받을 수도 있다. 딕셔너리화 가능

def print_kwargs(**kwargs):

    print(kwargs)

print_kwargs( a=1 ) -> {'a':1}

print_kwargs( name='test', a=2) -> {'name':'test', 'a':2}

 

함수의 결과값은 언제나 하나지만 여러개를 반환하려고 할 경우 튜플로 반환해준다

def ttt(a,b):

    return a+b, a*b, a-b

print( ttt(2,3) )-> (5, 6, -1)

 

매개변수에 미리 초기값을 넣어서 입력을 생략하게 할 수도 있다. c랑 동일

def tttt( a,b=3)

    return a+b

print( tttt(6) ) -> 9

 

함수내의 변수는 함수 내에서만 쓸수 있지만

global 가능

 

a = 1

def test() :

    global a

    a = a+1

test()

print(a)

 

def 말고 간결하게 함수 선언시 사용하는 lambda 

add = lambda a, b : a+b

print( add( 3,4 ) ) ----> 7

def add2(a,b):

    return a+b

print( add2(3,4) ) -----> 7

한줄짜리 간결한 함수 만들때 쓴다.