[Python] 파이썬 내장함수 모음 2탄 abs / all / any / chr / dir / divmod / enumerate / eval / filter / hex
내장함수
Don't Reinvent The Wheel!
이미 있는 것을 다시 만드느라 쓸데없이 시간을 낭비하지 말라.
우리가 프로그래밍을 하기 전에 만들고자 하는 함수를
이미 누군가가 만들어 뒀을 수 있다.
특히 이미 배포가 된 라이브러리의 경우에는
충분한 테스트와 검증이 되었기 때문에
시간을 낭비하지 않고 프로그래밍을 할 수 있다.
파이썬 내장함수는 다른 외부 모듈과 달리
import를 시키지 않고 바로 사용할 수 있다.
파이썬의 내장함수 종류가 엄청 많은데
이를 다 외울 수는 없고,
나중에 찾아 활용할 수 있을 정도로 기억해두는 것이 좋다.
abs
abs(x)는 어떤 숫자를 x에 입력받았을 때 절댓값을 돌려준다.
>>> abs(5)
5
>>> abs(-5)
5
>>> abs(1.5)
1.5
all
all(x)는 반복이 가능한 자료형 x를 입력 인수로 받는다.
x가 모두 참이면 -> Ture
x가 하나라도 거짓이면 -> Flase
>>> all([1,2,3])
Ture
>>> all([1,2,3,0])
False
참고로 숫자형에서 0은 False이다.
any
any(x)는
x가 하나라도 참 -> True
x가 모두 거짓 -> Flase
위 all(x)의 반대이니 혼동하지 않도록 조심해야한다.
>>> any([1,2,3,0])
True
>>>any([0,None])
False
chr
chr(i)는 아스키 코드값을 입력받아 그 코드에 해당하는 문자를 출력한다.
아스키 코드란? 0~127사이 숫자를 각 하나의 문자나 기호에 대응 시켜 놓은 것.

>>> chr(97)
'a'
>>> chr(42)
'*'
위 코드표와 비교를 해보면 각 값에 대응하는 문자가 리턴된다.
dir
해당 객체가 자체적으로 가지고 있는 변수나 함수(메서드)를 보여준다.
>>> dir()
['In',
'Out',
'_',
'_1',
'_2',
'_3',
'_4',
'_5',
'_6',
'__',
'___',
'__builtin__',
'__builtins__',
'__doc__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'_dh',
'_i',
'_i1',
'_i2',
'_i3',
'_i4',
'_i5',
'_i6',
'_i7',
'_ih',
'_ii',
'_iii',
'_oh',
'_sh',
'exit',
'get_ipython',
'quit']
이렇게 ()안에 아무것도 넣지 않으면 메모리에 있는 모든 목록이 출력된다.
만약
list를 넣으면
>>> dir(list)
['__add__',
'__class__',
'__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']
list에서 사용할 수 있는 메소드의 목록들이 리턴된다.
divmod
divmod(a,b)는 2개의 숫자를 입력받는다.
그리고a와 b를 나눈 몫과 나머지를 튜플 형태로 반환한다.
>>> divmod(7,5)
(1, 2)
enumerate
단어 자체는 '열거하다'라는 뜻이다.
순서가 있는 자료형을 입력받고, 인덱스 값을 포함하는 enumerate 객체를 반환한다.
>>> for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)
0 body
1 foo
2 bar
순서 값과 함께 body, foo, bar가 순서대로 출력된 것을 볼 수 있다.
위처럼 for문을 함께 사용하면, 현재 순서를 간편하게 알 수 있다.
eval
eval(expression)은 실행 가능한 문자열을 입력받고
문자열을 실행한 한 결괏값을 돌려준다.
>>> eval('1+2')
3
>>> eval("'hi'+'a'")
'hia'
filter
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]
함수를 하나씩 해석해보자.
먼저 positive라는 함수를 만들다.
result에 결과 값이 참인 것만 거른 것을 넣어둘 리스트를 만든다.
for문을 돌린다.
i가 0보다 크면 리스트에 추가한다.
결과는 result로 받는다.
출력은 positive함수에 1,-3,2,0,-5,6을 넣는다.
그럼 0보다 큰 1,2,6이 결과값으로 나온다.
추가로 lambda를 쓰면 더 간편하게 한 줄로 코드를 요약 할 수 있다.
list(filter(lambda x:x>0 , [1,-3,2,0,-5,6]))
hex
hex(x)는 정수값을 입력받고
16진수로 변환하여 리턴한다.
>>> hex(234)
'0xea'
나머지 함수들은
다음편에 이어서 포스팅하기로 하겠다.
이 포스팅은 '점프 투 파이썬' 책을 참고하여 포스팅하였습니다.
'Programming > Python' 카테고리의 다른 글
[Python] 점프 투 파이썬 연습문제 풀이 5장 (5) | 2022.03.12 |
---|---|
[Python] 파이썬 내장함수 모음 2탄 hex / id / input / int / isinstance / len / list / map / max / min / oct / open (14) | 2022.03.09 |
[Python] 패키지(Packages) 만들기 / __init__.py / __all__ / 파이썬 relative 패키지 (13) | 2022.03.07 |
[Python] 모듈 만들기 / 불러오기 import, from / if__name__ == "__main__": (4) | 2022.03.06 |
[Python] 클래스(Class) 1편 - 기본 개념 이해하기 / 사칙연산 계산기 클래스 만들기 (9) | 2022.03.04 |
댓글