본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Playdata_study/Python

210426_함수2

by 케리's 2021. 4. 26.

전처리 ↔ 데이터 표준화
  1. 정수, 실수, 불리언, 시퀀스(나열형 = 문자열, 리스트, 튜플, 딕트) + set
  2. 형 변환 1번에 제공하는 각각의 클래스를 통해 값을 전달 
     ex) int(90.7) = 90 
  3. 시퀀스(나열형 = 문자열, 리스트, 튜플, 딕트) + set , 시퀀스 연산자 *(반복), +(연결)
     CRUD 형식의 메소드 
  4. 제어문 = 조건문(선택문), 반복문, 제어 흐름 문 
  5. 함수, 함수 모듈 (라이브러리=import sys, 사용자 함수, 내장 함수), cmd ->python -> v 

 

파이썬은 모듈 단위이다.
  자료형 → 함수  클래스 모듈(. py) 패키지
  .py  →. pyc  pvm   output 

 

 

람다 함수 (lambda)?

 람다 대 수학 (lambda calculus)에서 유래된 이름으로 익명 함수라고 한다.
 함수의 이름이 없는 함수로 파이썬에서 lambda라는 키워드로 익명 함수를 정의한다. 
 간단한 기능의 함수가 컨테이너의 요소로 들어가는 경우, 혹은 다른 함수의 인자로 함수를 넘겨줄 때 사용되며 

 한 줄로 표시되는 함수로 정의된다. 
 filter( ), map( ), reduce( ) 등의 함수를 사용할 때 유용하다. 


 [형식]
  lambda 인자 1, 인자 2 , , , : 명령(표현식)

 

ex) 두 수의 합을 구하는 함수를 선언하자.
    def add(x , y) :
              res = x+y
              return(res) 
     n= add(5,3)
     print(n) 

ex) 두 수의 합을 구하는 함수를 lambda로 바꾸어보자. 
    add = lambda x, y : x+y #선언
    add(5, 3) # 호출 

 

 

 

파이썬의 고차 함수 (high - order fungtion)

 filter(), map(), reduce() 등의 함수를 사용할 때 유용하다. 

 

고차 함수 : 전달 인자로 다른 함수를 받는 함수를 말하며 함수를 매개 인자로 넘길 수 있고,

               다른 함수의 결괏값으로 반환 가능하게 해주는 함수를 말함 

 

 def getAvg(int hap):
          return hap/4
 def getHap( ) :
          return 100 + 100 + 100 + 100
 hap = getHap()
 avg = getAvg(hap) -> avg = getAvg(getHap()) 

 

 

filter(function, list)

 함수와 순서형 즉 리스트를 매개 인자로 받아서 리스트의 값이 하나씩 함수에 인수로 전달되어 조건에 맞는 결과인 True 가 되는 반환 값만을 따로 모아서 리스트의 형태로 반환한다.

 

map(function, seq) :

 함수와 시퀀스 자료형을 입력받아서 시퀀스 자료형의 각각의 요소가 하나씩 함수에 인수로 전달되어 리턴되는 출력값   을 묶어서 리스트로 리턴하는 함수 

 


reduce(function, seq) :

 함수와 시퀀스 자료형을 입력 받아서 시퀀스 자료형의 두 개의 요소가 함수에 인수로 전달되어 연산을 한 후 그 결괏값을 그다음  항목과 계속 연산하여 하나의 값을 리턴한다. 

 

from functools import reduce 를 처음에 불러와야만 쓸 수 있음 

 

 

재귀 함수(recursive) 

함수가 직접 또는 간접적으로 자기 자신을 다시 호출하는 것

 

재귀 호출 (recursive call)

 메모리를 많이 소모하게 되며 처리 속도 또한 상대적으로 느리지만 작성하는 코드가 간결해지고 이해도가 쉽다.

 quick sort, tower of hanoi, Fractal curve 등의 알고리즘을 구현할 때 사용된다. 

 

스코핑 룰(scoping) : 

 파이썬에서 사용되는 함수, 클래스 등이 선언되면 변수를 사용하게 되는데 선언된 변수를 저장할 때 네임스페이스 저장하고 호출될 때 네임스페이스의 영역의 우선순위에 따라 호출되는 룰을 말한다.

 

파이썬의 네임스페이스는 세 가지로 분류된다. 변수가 호출되는 우선순위를 약어로 LGB규칙
파이썬의 네임 스페이스 = LGB(Local -> Global -> Built-in) 순서를 가진다.
  1) Local : 함수 내부에 선언될 때의 영역
  2) Global : 함수 외부에 선언될 때의 영역
  3) Built-in : 내장 함수의 영역 

'|Playdata_study > Python' 카테고리의 다른 글

210427_클래스 2  (0) 2021.04.27
210426_클래스1  (0) 2021.04.26
210423_함수1  (0) 2021.04.24
210423_제어문2 (흐름 제어문)  (0) 2021.04.24
210422_PVM  (0) 2021.04.22

댓글