| 함수

함수란 특정한 작업을 하나의 단위로 묶어놓은것
불필요한 소스코드 반복을 줄일 수 있음

| 파이썬 함수 종류

  • 내장함수
    파이썬의 기본으로 제공하는 함수
    프로그램 개발 전반에서 자주 사용한느 기능을 한데 묶어 미리준비
    개발자들이 필요할때마다 쓸 수 있도록 제공

  • 사용자 정의 함수 개발자가 직접 정의하여 사용할 수 있는 함수

| 함수 정의하기

  • 같은 코드 반복적 사용
  • 소스코드 길이를 줄이고 모듈화 하여 개발을 진행할 수 있다
    • 매개변수
      함수 내부에서 사용할 변수 함수를 호출할때 함수에서 사용할 입력값으로써 매개변수를 받을 수 있다
      파라미터 변수를 직접 지정 할 수있음 매개변수 순서 달라도 상관없다
      ex. add(b=3, a=7)

      [global 키워드] :star:
      global 키워드로 변수를 지정하면 해당 함수에서는 지역 변수를 만들지 않고
      함수 밖에 선언된 변수를 바로 참조한다
      함수 안에서 사용되는 변수가 함수 밖에 있는 전역변수와 동일하게 처리가 되도록 만들기 위함

      c 계열 함수는 global 키워드가 없으면 함수 밖의 전역변수를 참조하게 된다
      파이썬은 global 키워드를 사용

      전역변수와 지역변수로 동일한 이름의 변수가 존재한다면 함수는 함수 안에 선언되어있는 변수를 우선적으로 접근
      코딩테스트에서는 리스트 객체는 전역변수로 사용하는 경우가 많다

      a = 0
      def func():
        global a #함수 밖에 선언한 변수를 바로 참조하겠다
        a += 1 
      for i in range(10):
         func()
       
      print(a) #결과 10
      
    • 반환 값
      함수 내부적으로 연산을 수행하고 그 처리된 결과를 반환하고자 할때
      반환 값을 명시해서 return 키워드와 함께 반환 가능

      [여러가지 반환값] :star:
      파이썬 함수는 여러 개의 반환값을 가질 수 있다
      c++는 여러개의 반환값을 가지려면 별도로 포인터를 이용해야함

      패킹 여러개의 변수가 한번에 반환되는것
      언패킹 함수를 호출하는 측면에서 반환된 값을 차례대로 특정 변수에 담는 것

  • 매개변수와 반환값은 존재하지 않을 수도 있음




| 람다 표현식 :star:

함수를 간단히 표현할 수 있음
단한줄에 함수를 작성할 수 있다
이름없는 함수 라고도 함

lambda 입력받을 매개변수 :  함수의 반환값을 이어서 명시
print((lambda a,b : a + b)(3,7)) # 출력 10

어떠한 함수 자체를 입력으로 받는 또 다른 함수가 존재할때 유용하게 사용
함수의 기능이 매우 간단하거나 단순히 한번사용할때 효과적
여러개리스트에 동일한 규칙을 가지는 하나의 함수를 적용하고자 할때

sorted**와 같은 정렬 함수에서 람다함수를 속성값으로 간단하게 넣어줄 수 있음

## 점수대로 오름차순 정렬
arr = [('홍길동',50),('이순신',32), ('아무개',74)]
print(sorted(arr,key=lambda x:x[1])

## 원래는 이런식으로 해야함
def mykey(x):
  return x[1]
print(sorted(arr,key=mykey))

여러개리스트에 동일한 규칙을 가지는 하나의 함수를 적용하고자 할때 ```python li = [1,2,3] li2 = [4,5,6]

result = map(lambda a,b:a+b,li,li2) #map 함수 : 각 원소에 대해 어떤 함수를 적용하고자 할때 print(list(result)) #결과 [5,7,9]

댓글남기기