본문 바로가기
Programming/Python

[Python] 파이썬 내장함수 모음 1탄 abs / all / any / chr / dir / divmod / enumerate / eval

by EunjiBest 2022. 3. 8.

[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'





나머지 함수들은
다음편에 이어서 포스팅하기로 하겠다.









이 포스팅은 '점프 투 파이썬' 책을 참고하여 포스팅하였습니다.

반응형

댓글