Python 101 - 6장. 함수

hyukim·2020년 5월 27일
0

Python 101

목록 보기
6/10
post-thumbnail

함수

정의

중복된 부분들을 자동화하기 위해 만든 기능으로 입력값과 출력값을 갖는 동작의 블록을 말한다.

def fun_name(par1, par2):
    (동작 내용)
    return something

리턴 타입

파이썬은 동적 타이핑 언어이므로 함수의 리턴 타입을 따로 지정하지 않고 def 키워드를 사용한다. void형의 함수는 return 키워드를 쓰지 않으면 알아서 아무것도 리턴 안 한다.

# 파라미터 값에 따라서 함수 bar의 리턴타입이 float() 또는 int()가 된다.
def bar(b_var):
    f_var = 1.2
    i_var = 2
    return f_var if b_var else i_var
    
def return_nothing(a):
    a += 1

파라미터

파라미터(인수 / 입력값)은 함수이름 뒤에 소괄호( ()) 안에 타입명 없이 쉼표(,)로 구분하여 넣는다. 하나 이상의 값을 리턴할 수 있다.

# tuple() 타입 값을 리턴한다
def foo(a, b):
    return a + 1, b - 1
    
a, b = foo(a, b)

디폴트 파라미터

파라미터의 기본값은 parm_name=value 형식으로 지정할 수 있다. 디폴트 파라미터는 모든 파라미터의 뒤에 선언해야 한다.

def person(name, age, location=“Korea“):
    print(name, end=' ')
    print(age, end=' ')
    print(location)
    
person("현욱", 21)
# 현욱 21 Korea

*args, **kwargs

파이썬은 동적으로 인자를 받을 수 있다. *args는 순서대로 인자를 받아 args라는 이름의 리스트에 순서대로 넣어서 args[index] 형태로 호출 할 수 있다.

def printer(name, *args):
    print(name, end=,)
    for i in range(len(args)): 
        print(args[i], end=" ")
        
printer("정연", 23, 168, 52, "서울")
# 정연, 23 168 52 서울

**kwargs는 dic()타입의 가변 개수 인수를 받을 수 있다.

def foo(**kwargs):
    kw in kwargs:
        print(kw +:+ kwargs[kw])

foo(item="bow", attack=23, level=12, rate=[1, 4, 5, 3])

# item: bow
# attack: 23
# level: 12
# rate: [1, 4, 5, 3]

람다 표현식

람다는 이름 없는 함수를 만드는데 사용된다.

plus_ten = lambda x: x + 10
plus_ten(5)
# 15
profile
💪 🥩 🍺 ✈ 💻

0개의 댓글