본문 바로가기
개발/Python

Python(파이썬) - 함수

by devsu 2020. 4. 7.

함수

  • 파이썬에서는 함수 리턴값을 여러개 가질수 있다.

#함수 Code

def plus(x, y=5):

    return 10, x+y

 

a, b = plus(10)

 

print(a, b)

 

===>10, 15이 출력된다.

  • 가변 인수 
    • 디폴트 인수값을 가지고 있다가 인수가 넘어오지 않으면 기본값으로
  • 인자를 순서에 맞추어서 안넣어도 가능하다
    • plus(y=20, x=5)도 가능
  • 리스트의 개별 값을 전달하려면 *를 붙인다
    • b = [1,2]
    • plus(*b)
  • *가 붙어있다면 인수를 여러개 넣어도 리스트처럼 활용이 가능하다
    • def plus2(x, *y)
      • plus2(1, 2, 3, 4)
        • x = 1, y = (2, 3, 4)로 들어간다
      • x = 1, k = [2, 3, 4]
        • plus2(x, *k)로도 가능

사전 인수 - dic을 이용한 함수

#Code

d1 = {"이름":"박철수", "나이":20, "직업":"학생"}
d2 = {"yellow":"노랑", "red":"빨강", "black":"검정"}

def Disp(**y):
    for key,value in y.items():
        print(key, "==>", value)

Disp(3, **d1)
Disp(3, **d2)

  • dicr 인수는 리스트와 달리 **가 붙는다

 

람다(lambada) 함수

  • 이름없는 함수, 일회성 함수
  • b = lambda x, y : x+y
    • b(2,5)
      • 7 출력

빌트인 함수명

  • 빌트인 함수명과 동일하게 사용자 정의 함수명을 사용하면 우선순위에서 밀려서 헷갈리는 문제 발생

map 함수

  • map(함수명, 리스트)
    • 함수인자로 리스트가 순서대로 들어가면서 함수가 반복동작한다
    • b3 = [i for i in range(1,11)]
    • map(lambda x:x*x, b3))

filter 함수

  • filter(함수명, 리스트)
    • 함수의 조건이 맞는 리스트만 동작한다.
    • 짝수만 리스트에 추가
      • b3 = [i for i in range(1,11)]
      • map(lambda x:x%2 == 0, b3))