Programming Language/Python

[Python] 20. 내장 함수(Built-in-function)

lumana 2023. 11. 7. 03:37

내장 함수 (Built-in-function)


abs 함수

  • abs(x)

  • 어떤 숫자를 입력받았을 때 그 숫자의 절댓값을 돌려주는 함수

    abs(-3)
    res : 3

all 함수

  • all(x)

  • 반복 가능한(iterable) 자료형 x를 인수로 받아 x가 모두 참이면 True, 거짓이 하나라도 있으면 False 돌려줌

    all([1, 2, 3])
    res : True
    
    all([0, 1, 2])
    res : False

any 함수

  • any(x)

  • x 중 하나라도 참이 있으면 True, x가 모두 거짓일 때 False 돌려줌

    any([1, 2, 3, 0, 4])
    res : True
    
    any([0, ""])
    res : False

chr 함수

  • chr(i)

  • 아스키 코드값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수

    chr(97)
    res : 'a'
    chr(48)
    res : '0'

dir 함수

  • 객체가 자체적으로 가지고 있는 변수나 함수를 보여줌

    dir([1, 2, 3])
    res : ['append', 'count', 'extend', 'index', ...]
    
    dir({'1': 'a'})
    res : ['clear', 'copy', 'get', 'has_key']

divmod 함수

  • divmod(a, b)

  • 2개의 숫자를 입력받아 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수

    divmod(7, 3)
    res : (2, 1)

enumerate 함수

  • enumerate : '열거하다'

  • 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력받아 index 값을 포함하는 enumerate 객체로 리턴

    for i, name in enumerate(['body', 'foo', 'bar']):
        print(i, name)
    res:
    0 body
    1 foo
    2 bar

eval 함수

  • eval(expression)

  • 실행 가능한 문자열(ex. 1+2, 'hi' + 'a') 을 입력 받아 문자열을 실행한 결괏값을 돌려주는 함수

  • 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용

    eval('1 + 2') # res : 3
    eval("'hi' + 'a'") # res : 'hia'
    eval('divmod(4, 3)') # res : (1, 1)

filter 함수

  • 첫번째 인수로 함수이름, 두번째 인수로 함수에 차례로 들어갈 iterable 자료형을 받음

    • 아래 예시를 filter함수를 사용해서 간단히 나타낼 수 있다.
    # positive.py
    def positive(l):
        result = []
        for i in l:
            if (i > 0):
                result.append(i)
        return result
    
    print(positive[1, -3, 2, 0, -5, 6])
    결괏값 : [1, 2, 6]
    # filter1.py
    def positive(x):
        return x > 0
    
    print(list(filter(positive, [1, -3, 2, 0, -5, 6])))
    --> filter 함수는 positive 함수에서 반환 값이 참인 것만 묶어서 돌려줌
    • 람다식 사용

      list(filter(lambda x: x > 0, [1, -3, 2, 0, -5, 6]))

hex 함수

  • hex(x)

  • 정수값을 입력받아 16진수로 변환하여 돌려줌

id 함수

  • id(object)

  • 객체를 입력받아 객체의 고유 주소(레퍼런스) 값을 돌려주는 함수

    a = 3
    id(3)
    135072304
    id(a)
    135072304

input 함수

  • input([prompt])

  • 사용자 입력을 받는 함수

  • 매개변수로 문자열을 주면 프롬프트가 됨

    a = input()
    b = input("Enter: ")

int 함수

  • int(x)

    • 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수형태로 돌려주는 함수
    int('3') # res : 3
    int(3.4) # res : 3
  • int(x, radix)

    • radix진수로 표현된 문자열 x를 10진수로 변환하여 돌려줌
    int('11', 2) # res : 3
    int('1A', 16) # res : 26

isinstance 함수

  • isinstance(object, class)

  • 첫번 째 인수로 인스턴스, 두번 째 인수로 클래스를 받아 클래스와 인스턴스 관계를 확인

    class Person: pass
    ...
    a = Person()
    isinstance(a, Person) # res : True

len 함수

  • len(s)

  • 입력값 s의 길이를 돌려주는 함수

    len("python") # res : 6
    len([1, 2, 3]) # res : 3
    len((1, 'a')) # res : 2

list 함수

  • list(s)

  • 반복가능한 자료형 s를 입력받아 리스트로 만들어 주는 함수

    list("python") # res : ['p', 'y', 't', 'h', 'o', 'n']
    list((1, 2, 3)) # res : [1, 2, 3]
  • 값만 복사(깊은 복사) 할 때도 사용

    a = [1, 2, 3]
    b = list(a)

map 함수

  • map(f, iterable)

  • 함수 f와 반복 가능한(iterable) 자료형을 입력 받는다.

  • 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려줌

  • 다음 예시는 PS 할 때 거의 매번 쓰는 코드

    • 입력으로 3개의 문자가 오면, 공백을 기준으로 split 하여 a, b, c에 int형으로 각각 형변환 후 저장
    a, b, c = map(int, input().split())
  • example

    def two_times(numberList):
        result = []
        for number in numberList:
            result.append(number*2)
        return result
    
    result = two_times([1, 2, 3, 4])
    print(result)
    
    위 코드를 map함수를 이용하여 다음처럼 바꿀 수 있다.
    def two_times(x): return x * 2
    list(map(two_times, [1, 2, 3, 4]))
    • 1이 two_times 함수의 입력값으로 들어감
    • 1 * 2가 되어 2가 됨.
    • 모두 수행되면 [2, 4, 6, 8]
    • 직접 인덱스에 접근해서 처리하는 것 보다 간결함.
  • lambda 사용

    list(map(lambda x: x*2, [1, 2, 3, 4]))

max 함수

  • max(iterable)

  • 인수로 iterable 자료형을 받아 최댓값을 돌려주는 함수

    max([1, 2, 3]) # res : 3
    max("python") # res : 'y'

min 함수

  • min(iterable)

  • 인수로 iterable 자료형을 받아 최솟값을 돌려주는 함수

    min("python") # res : 'h'

oct 함수

  • oct(x)

  • 정수 형태의 숫자를 8진수 문자열로 바꿔주는 함수

oct(34) # res : 0o42

open 함수

  • open(filename, [mode])

  • 파일이름, 읽기방법을 입력받아 파일 객체를 돌려준다.

  • 자세한 내용은 [[Python] 15. 파일 입출력]([Python] 15. 파일 입출력(FILE Input/Output)) 참조

  • 읽기방법 생략시 읽기전용모드(r)로 객체를 만들어 돌려줌

  • w: 쓰기 모드, r: 읽기 모드, a: 추가 모드, b: 바이너리 모드 (w, r, a와 함께 사용)

    f = open("binary_file", "rb") # rb는 바이너리 읽기 모드

ord 함수

  • ord(c)

  • 문자의 아스키 코드 값을 돌려주는 함수

pow 함수

  • pow(x, y)

  • x의 y 제곱의 결괏값을 돌려줌


pow(x, y)함수와 math.pow(x, y), x ** y와의 차이?


  • math.pow(x, y)의 결괏값은 항상 float형

  • pow는 3번째 파라미터로 나머지 계산 mod를 받을 수 있음. ex) pow(base, exp, mod) --> base, exp는 정수형

  • base ** exp 는 속도가 셋 중에서 제일 빠름


range 함수

  • range([start,] stop[,step])

  • for 문과 가장 많이 사용하는 함수

  • 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려줌

  • 인수가 하나일 경우

    • 시작 숫자를 지정하지 않으면 range함수는 0부터 시작, 끝 숫자 포함 X

      list(range(5)) # res : [0, 1, 2, 3, 4]
  • 인수가 2개일 경우

    • 입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다. 끝 숫자 포함 X

      list(range(5, 10)) # res : [5, 6, 7, 8, 9]
  • 인수가 3개일 경우

    • 세번 째 인수는 숫자 사이의 거리를 의미

      list(range(1, 10, 2)) # res : [1, 3, 5, 7, 9]
      list(range(0, -10, -1)) # res : [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

round 함수

  • round(number[, ndigits])

  • 숫자를 입력받아 반올림 해주는 함수

    round(4.6) # res : 5
    round(5.678, 2) # res : 5.68
    # 소수점 [ndigits]자리까지 반올림하여 표시

sorted 함수

  • sorted(iterable)

  • 입력값을 정렬한 후 결과를 리스트로 리턴

  • list 자료형의 sort 메서드는 리스트 객체 그 자체를 정렬만 하고, 리턴하지는 않음.

    sorted([3, 1, 2]) # res : [1, 2, 3]
    sorted(['a', 'c', 'b']) # res : ['a', 'b', 'c']
    sorted("zero") # res : ['e', 'o', 'r', 'z']
    sorted((3, 2, 1)) # res : [1, 2, 3]

str 함수

  • str(object)

  • 문자열 형태로 객체를 변환하여 돌려주는 함수

    str(3) # res : '3'
    str('hi') # res : 'hi'
    str('hi'.upper()) # res : 'Hi' 

sum 함수

  • sum(iterable)

  • 입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 함수(집합도 가능)

    sum([1, 2, 3]) # res : 6
    sum((1, 2, 3)) # res : 6

tuple 함수

  • tuple(iterable)

  • 반복 가능한 자료형을 입력받아 튜플형태로 돌려줌(튜플은 튜플 그대로 리턴)

    tuple("abc") # res : ('a', 'b', 'c')
    tuple([1, 2, 3]) # res : (1, 2, 3)
    tuple((1, 2, 3)) # res : (1, 2, 3)

type 함수

  • type(object)

  • 입력값의 자료형이 무엇인지 알려주는 함수

    type(open("test", 'w')) # res : <class '_io.TextIOWrapper'>

zip 함수

  • zip(*iterable)

  • 동일한 개수로 이루어진 자료형을 묶어줌

    list(zip([1, 2, 3], [4, 5, 6])) # res : [(1, 4), (2, 5), (3, 6)]
    list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9])) # res : [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
    list(zip("abc", "def")) # res : [('a', 'd'), ('b', 'e'), ('c', 'f')]

참조) Do it! 점프 투 파이썬 (박응용 지음)