[Python] 내장함수

소복치·2024년 6월 23일

내장함수란?

외부 모듈과 다르게 import 를 하지 않아도 사용 가능한 함수

내장함수

  • abs
    abs(x)는 어떤 숫자를 입력받으면 그 숫자의 절댓값을 돌려줌.
  • all
    all(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려줌.
    이때 반복 가능한 자료형은 for문으로 리스트,튜플,문자열,딕셔너리,집합이 있음.
> all([1,2,3])
True
> all([1,2,3,0]) # 0은 거짓이므로
False
> all([]) # 입력 인수가 비었을 경우는 참
True
> all(())
True
  • any
    any(x)는 반복 가능한(iterable) 자료형 x를 입력인수로 받으면 이 x의 요소중 하나라도 참이 있으면 True, x가 모두 거짓일 경우에만 False를 돌려준다. 즉 all(x)와 반대
> any([1, 2, 3, 0])
True
> any([0, ""]) # 모두 거짓이므로 거짓 
False
> any([]) # 입력 인수가 비었을 경우는 거짓 
False
  • chr
    -chr(i)는 유니코드값을 입력받아서 그 코드에 해당하는 문자들 출력한다.
> chr(97)
'a'
> chr(44232)
'곈'
  • ord
    ord(c)는 문자의 유니코드 값을 돌려준다.
> ord("b")
98
> ord("나")
45208
  • dir
    dir은 객체가 자체적으로 가지고 있는 변수,함수를 보여준다.
> dir([1,2,3]) #리스트 관련 함수
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
> dir({'1':'a'}) #딕트 관련 함수
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
  • divmod
    divmod(a,b)는 2개의 숫자를 입력으로 받아서 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려준다.
> divmod(10,2)
(5, 0)
  • enumerate
    이 함수는 순서가 있는 자료형(리스트,튜플,문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate객체를 돌려준다. enumerate는 '열겨하다'라는 뜻이다.
    for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인데스 값이 필요할때 사용하면 유용하다.
for i, name in enumerate(['body', 'foo', 'bar']):
    print(i, name)
    
#결과 
0 body
1 foo
2 bar
  • eval
    eval(expression)은 실행 가능한 문자열을 입력으로 받아 문자열을 실행한 결괏값을 돌려주는 함수이다.
    보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을때 사용한다.
> eval("1+2")
3
> eval("'hello'+'girl'")
'hellogirl'
> eval("divmod(3,4)")
(0, 3)
  • filter
    filter 함수는 첫번째 인수로 함수 이름을, 두번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 그리고 두번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을때 반환값이 참인 것만 묶어서 돌려준다.

[적용전]

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]

[적용후]

def positive(x):
    return x > 0

print(list(filter(positive, [1, -3, 2, 0, -5, 6])))
※ positive 함수에 두 번째 인수인 리스트이 요소들이 입력되었을때, 참인 값들만 돌려준다.
  • input
    input()는 사용자 입력을 받는 함수이다. 매개변수로 문자열을 주면 그 문자열을 프롬프트가 된다.
> a = input()
i wanna sleep rn
> a
'i wanna sleep rn'
  • int
    int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자를 정수 형태로 돌려주는 함수이다.
> int(3.4) #소수점 버리고 정수로 
3
> int("4")
4
int(x,radix)는 radix 진수로 표현된 문자열 x를 10진수로 변화해서 돌려준다.
> int("11",2) # 2진수로 표현된 11의 10진수 값을 돌려줌
3
> int("1A",16) # 16진수로 표현된 1A의 10진수 값을 돌려줌. 
26
  • isinstance
    isinstance(object,class)는 첫 번째 인수로 인스턴스, 두번째 인수로 클래스 이름을 받는다. 입력으로 받은 인스턴스가 그 클래스의 인스턴스인지 판단하여 참이면 True, 거짓이면 False를 돌려준다.
class Person:
    pass

a = Person()
res=  isinstance(a,Person) # 인스턴스, 클래스이름
print(res) # 클래스의 인스터스인지 아닌지 판단여부

#결과 
True
  • len
    len(s)는 입력값 s의 길이(요소의 전체 개수)를 돌려준다.
> len("python")
6
> len([1,2,3,4,5,6,7])
7
> len((1,"aaaa"))
2
- list
len(s)는 반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려준다.
> list((1,2,3,4,5,6,7))
[1, 2, 3, 4, 5, 6, 7]
> list("python")
['p', 'y', 't', 'h', 'o', 'n']
  • map
    map(f,iterable)은 함수(f)와 반복가능한(iterable)자료형을 입력으로 받는다. map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려준다.
def two_times(x):
    return x*2 #두배 


a =list(map(two_times,[1,2,3,4,5]))
print(a)

1이 먼저 two_time에 들어가 [2]가 된다. 
다음으로 2가 two_times에 들어가 4가된다. 그리고 리스트는 [2,4]가 된다. 

이렇게 반복되어 [2,4,6,8,10]이 된다. 

※ 람다 함수 사용하기
a = list(map(lambda a: a*2, [1, 2, 3, 4]))
print(a)
  • max,min
    max(iterable)는 반복가능한 자료형을 인수로 받아 최댓값을 돌려주고,min(iterable) 또한 반복가능한 자료형을 인수로 받아 최솟값을 돌려준다.
> max([1,2,3,4,5])
5
> max("hello im hazel")
'z'
> min([1,2,3,4,4,4,4])
1
> min("hello im hazel")
' '
> min("hello")
'e'
  • oct
    oct(x)는 정수 형태의 숫자를 8진수 문자열로 바꿔서 돌려준다.
> oct(100)
'0o144'
> oct(10000)
'0o23420'
  • pow
    pow(x,y)는 x의 y제곱한 결괎값을 돌려준다.
> pow(2, 4)
16
> pow(3, 3)
27
  • range
    range([start],stop,[step]는 for문과 함께 자주 사용하는 함수이다. 이 함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려준다.
> list(range(5))
[0, 1, 2, 3, 4]
> list(range(1,10))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
> list(range(1,10,2))
[1, 3, 5, 7, 9]
> list(range(0,-10,-2))
[0, -2, -4, -6, -8]
  • round
    round(number,[ndigits] 함수는 숫자를 입력받아 반올림해준다.
    두 번째 매개변수 ndisits는 반올림하여 표시하고 싶은 소수점의 자리수이다. 그리고 있을수도 없을수도 있음.
> round(4.6)
5
> round(4,2)
4
> round(4.678,2) #소수점 2에서 반올림
4.68
  • sorted
    sorted(iterable)은 입력값을 정렬한 후 그 결과로 리스트를 돌려준다.
    리스트 자료형에도 sort함수가 잇지만, 리스트 자료형의 sort함수는 리스트 객체 그 자체를 정렬만할 뿐 정렬된 결과를 돌려주지 않는다.
> sorted([3, 1, 2])
[1, 2, 3]
> sorted(['a', 'c', 'b'])
['a', 'b', 'c']
> sorted("zero")
['e', 'o', 'r', 'z']
> sorted((3, 2, 1))
[1, 2, 3]
  • str
    str(object)는 문자열 형태로 객체를 변환해 돌려준다.
> str(4)
'4'
> str("hazel")
'hazel'
> str("hello".upper())
'HELLO'
  • sum
    sum(iterable)은 입력받은 리스트나 튜플의 모든 요소의 합을 돌려준다.
> sum([1,2,3])
6
> sum((4,5,6))
15
  • tuple
    typle(iterable)은 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려준다. (튜플이 입력되면 튜플 그대로 돌려줌)
> tuple("aaaaa")
('a', 'a', 'a', 'a', 'a')
> tuple(["adfadfa"])
('adfadfa',)
> tuple(["adfadfa","A","As"])
('adfadfa', 'A', 'As')
  • type
    type(object)는 입력값의 자료형이 무엇인지 알려준다.
> type("abc")
<class 'str'> 
> type([ ])
<class 'list'>
> type(open("test", 'w'))
<class '_io.TextIOWrapper'>
  • zip
    zip(*iterable)은 동일한 개수로 이루어진 자료형을 묶어준다.
> list(zip([1, 2, 3], [4, 5, 6]))
[(1, 4), (2, 5), (3, 6)]
> list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
> list(zip("abc", "def"))
[('a', 'd'), ('b', 'e'), ('c', 'f')]
profile
오늘 터져도내일 다시극복

0개의 댓글