파이썬 함수

(2024-08-11)

함수 , map() , 형 변환


1. Python 함수의 특징파이썬 함수 이름은, 변수 이름과 동일한 규칙을 따름
     - 문자나 _로 시작하고, 문자, 숫자, _만 포함할 수 있음
  ㅇ 파이썬 함수의 정의
     - def 키워드를 사용하여 정의함
     - 함수명 직후에 괄호를 주고, 
        . 그 안에 매개변수를 받을 수 있으며, 
        . 매개변수가 없어도 괄호를 포함해야 함
     - 함수의 본문은, 콜론(:) 뒤에, 
        . 들여쓰기 된 코드 블록으로 작성함
  ㅇ 자기 자신을 호출 가능
     - 이를 재귀 함수라고 하며, 복잡한 문제를 단순화하는 데 유용


2. Python 함수의 종별

  ㅇ 내장 함수 (Built-in Function)
     * (모듈이나 패키지를 가져오지 않고도 즉시 사용 가능한 함수)
     - 산술
        . (절대값) abs()
        . (합) sum()
           .. 例) sum({1,2}) => 3, sum({0:1,1:3}) => 4, sum([1,2,3]) => 6, sum([1,2,3],10) => 16    
        . (나눗셈) divmod(,) : 몫과 나머지 함께 구하기 (결과를 튜플로 반환)
           .. 例) quotient, remainder = divmod(7, 2) => quotient = 3, remainder = 1 
        . (최대,최소)  max(), min()

     - 형변환
        . str() : 수치(숫자형)를 문자열로 변환
        . int() : 문자열정수형 수치로 변환
        . float() : 문자열실수형 수치로 변환
           .. [참고] 양의 무한대 : float('inf'); 음의 무한대 : float('-inf');
        . int() : 정수형으로 변환 (단, 소수 이하 반올림 올림이 아니고 내림 임)
        . float() : 실수형으로 변환 
        . round() : 반올림
        . bool() : 논리형으로 변환 (논리값 판정)
           .. int,float일 때, 0 => False, 0이 아니면 => True 
           .. chr,str일 때, 빈 값 => False, 빈 값 아니면 => True

     - 아스키 코드
        . ord() : 문자를 아스키 코드 값으로 변환
        . chr() : 아스키 코드 값을 문자로 변환

     - 파일 처리
        . 파일 열기 : open()
           .. 형식 : fileobj = open( filename, mode [, encoding=] )
           .. mode : 첫자 (동작:r,w,x,a), 둘째자 (타입:t,b)
        . 파일 닫기 : fileobj.close()
        . 자동 처리 : with open(filename, mode) as fileobj:

     - 입력
        . input() : 입력된 값을 문자열로 변환 출력
           .. input('입력: ')  =>  입력: xxx [Enter]
           .. input.split()  =>  `입력된 문자열을, 공백 기준으로 잘라내어 리스트로 출력`
           .. A, B = input.split()  =>  `입력 문자열을, 공백 기준으로 잘라, A,B 변수에 각각 저장`
           .. A, B = map(int,input.split())  =>  `입력을, A,B 변수 각각에, int 변환 후 저장`

     - 출력 : 화면에 표시
        . format()
        . globals()
        . print() 

     - 문자열
        . len() : 문자열 길이

     - 특정 범위 내 리스트 생성
        . range([strat,] stop [,step]) : 특정 범위 내 차례대로 증가하는 숫자 리스트를 생성 반환
           .. 형식 : range(시작,끝,증가값), range(시작,끝), range(끝)
           .. 例) list(range(3)) 또는 list(range(0,3)) => [0,1,2]
           .. 例) list(range(3,7)) => [3,4,5,6]
           .. 例) list(range(3,7,2)) => [3,5]

     - 길이(크기) 알아보기 : len()

     - 자료형 알아보기 : type()

     - 메모리 위치 확인 : id()
        . 메모리 상에 위치한 객체주소를 가져와 출력

     - 정렬 
        . sorted() : 순서대로 정렬
           .. sorted(data), sorted(data, reverse-parameter), sorted(data, key-parameter),
              sorted(data, key-parameter, reverse-parameter)
        . reversed() : 거꾸로 정렬 (뒤집기)

     - 반복
        . iter() : Iterator 객체를 생성하여 이를 반환
        . enumerate(Iterable 객체 [,시작번호]) 
           .. 리스트Iterable 객체인수로 받아, Iterator 객체를 생성 반환
        . map(콜백함수, Iterable 객체)
           .. 리스트Iterable 객체인수로 받아, 
           .. 각 원소들을 콜백함수로 처리하고,
           .. 그 결과로써, Iterator 객체를 생성 반환
           .. 例) list(map(lambda n : n**2, [1,2,3])) => [1,4,9]

     - 데이터를 짝으로 엮기 : zip()
        . 이터러블(iterable:순회가능한) 객체를 인자로 받고, 
        . 각 객체 내 원소 마다, 튜플 형태로, 차례로 접근할 수 있는 반복자(iterator)를 반환 
           .. 例) A=[1,2,3];B=[-1,-2,-3];[a+b for a,b in zip(A,B)] => [0, 0, 0]

     - 객체 대상 
        . dir(객체명) : 객체 내 존재하는 요소들의 이름 보여주기
        . hasattr(객체명,속성) : 객체 내 주어진 속성이 있는지 여부 (true/false) 
        . id() : 객체 마다 부여된 (식별용) 상수를 리턴
   
     - (내장 함수 목록)
        . abs(), all(), any(), ascii()
        . bin(), bool(), breakpoint(), bytearray(), bytes(),
        . callable(), chr(), classmethod(), compile(), complex()
        . delattr(), dict(), dir(), divmod()
        . enumerate(), eval(), exec()
        . filter(), float(), format(), frozenset()
        . getattr(), globals()
        . hasattr(), hash(), help(), hex()
        . id(), input(), int(), isinstance(), issubclass(), iter()
        . len(), list(), locals()
        . memoryview(), min(), map(), max(), next()
        . object(), oct(), open(), ord()
        . pow(), print(), property()
        . range(), repr(), reversed(), round()
        . set(), setattr(), slice(), sorted(), staticmethod(), str(), sum(), super()
        . tuple(), type()
        . vars(), zip(), __import__()

     * [참고] ☞ 내장 함수 (파이썬 홈페이지)

  ㅇ 사용자 정의 함수 (User-defined Function)
     - def문을 사용하여 사용자가 직접 정의하는 함수
        . 例) def my_function(x,y) :


3. 익명 함수 (Anonymous Function) 또는 람다 표현식 (Lambda Expression)

  ㅇ (형식) lambda 인수: 표현식
     - 람다 표현식변수 할당 : 변수 = lamda 인수: 표현식
     - 람다 표현식의 호출 : (lamda 인수: 표현식)(인수값)

  ㅇ 例) var = lambda n1, n2 : n1 + n2
     - var : 생성된 익명 함수의 참조를 저장하는 변수
     - lambda : 람다 표현식키워드
     - n1, n2 : 매개변수
        . n1 + n2 : 실행될 함수 본체
        . 익명 함수의 호출 : var(2,3)


4. Function Annotation (함수 주석), Type Hint (타입 힌트), Type Annotation (타입 주석) 함수매개변수 및 리턴값의 자료형을 명시적으로 지정(주석)하기 위함으로, 강제성은 없음
      def 함수명(매개변수1 : 매개변수1_주석, 매개변수2 : 매개변수2_주석) -> 리턴값_주석 :

[파이썬]1. 파이썬   2. 파이썬 기초 문법   3. 파이썬 함수   4. 파이썬 연산자   5. 파이썬 객체   6. Python 프로그램 계층 구조  

  1. Top (분류 펼침)      :     1,594개 분류    6,533건 해설

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 (차재복)