본문 바로가기

Coding

Python 내장 함수 정리 (A~E)

본 게시글에서는 Python에서 기본으로 제공되는 내장 함수 A~E에 해당하는 함수들을 소개한다.

내장 함수를 잘 활용하면 코드를 더 간결하게 만들 수 있다.

기본적인 함수와 자주 사용하는 함수만 정리했고, 나머지 함수들은 Python 공식 문서에서 더 자세하게 공부할 수 있다.



A

abs(x)

절댓값 구할 때 사용하는 함수다.

n = 123

abs(n)
>> 123
n = -123

abs(n)
>> 123

all(iterable)

iterable의 모든 요소가 True 또는 비어있으면 True를 반환한다.

l = [1, 2, 3, 4, 5]

# 모든 요소가 int 타입인가?
all(x for x in l if type(x) == int)
>> True

any(iterable)

iterable의 요소 중 하나라도 True이면 True를 반환하고, iterable이 비어있으면 Fale를 반환한다.

l = ['1', 2, 3, 4, 5]

# 요소 중 하나라도 str 타입이 있는가?
any(x for x in l if type(x) == str)
>> True

B

bin(x)

정수를 '0b'가 앞에 붙은 이진 문자열로 변환한다.

bin(0)
>> '0b0'
bin(2)
>> '0b10'

class bool([x])

True 또는 False를 반환한다.

False에 해당하는 x로는 0, 빈 문자열, 빈 리스트, 빈 딕셔너리, 빈 값 등이 있고, 이를 제외한 나머지는 True에 해당한다.

bool(0)
>> False
bool(1)
>> True
bool('')
>> False
bool('abc')
>> True
bool([])
>> False
bool([1, 2, 3])
>> True
bool({})
>> False
bool({1: '1'})
>> True
bool()
>> False

C

callable(object)

object가 호출 가능하면 True, 아니면 False를 반환한다.

l = [1, 2, 3]

callable(l)
>> False
def f(x):
    return x

callable(f)
>> True

chr(i)

정수 i를 나타내는 유니코드 문자를 반환한다.

chr(97)
>> 'a'
chr(12593)
>> 'ㄱ'

class complex([real[, imeg]])

real + imag*1j 값을 가진 복소수를 반환하거나, 문자열 또는 숫자를 복소수로 변환하는 함수이다.

complex(1, 2)
>> (1+2j)
complex('1+2j')
>> (1+2j)

D

delattr(object, name)

객체의 attribute를 삭제하는 함수이다.

del 과 같다.

class C(object):
    def __init__(self):
        self.x = 1

c = C()

print(c.x)

dellattr(c, x)

print(c.x)
>> 1



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-10-34cb4a853c28> in <module>
      7 print(c.x)
      8 
----> 9 dellattr(c, x)
     10 
     11 print(c.x)


NameError: name 'dellattr' is not defined
c = C()

print(c.x)

del d.x

print(c.x)
>> 1



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-11-3702106b4986> in <module>
      3 print(c.x)
      4 
----> 5 del d.x
      6 
      7 print(c.x)


NameError: name 'd' is not defined

dir([object])

object에 정의되어있는 것들의 이름들을 반환한다.

object를 입력하지 않으면 현재 정의되어있는 것들의 이름들을 반환한다.

dir()
>> ['C',
 'In',
 'Out',
 '_',
 '_1',
 '_2',
 '_3',
 '_4',
 '_5',
 '_6',
 '_7',
 '_8',
 '_9',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_dh',
 '_i',
 '_i1',
 '_i10',
 '_i11',
 '_i12',
 '_i2',
 '_i3',
 '_i4',
 '_i5',
 '_i6',
 '_i7',
 '_i8',
 '_i9',
 '_ih',
 '_ii',
 '_iii',
 '_oh',
 'c',
 'exit',
 'get_ipython',
 'quit']
dir(c)
>> ['__class__',
 '__delattr__',
 '__dict__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__le__',
 '__lt__',
 '__module__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 '__weakref__',
 'x']

divmod(a, b)

a를 b로 나눈 값을 반환한다.

반환되는 첫번째 값은 몫, 두번째 값은 나머지이다.

divmod(10, 2)
>> (5, 0)
divmod(11, 2)
>> (5, 1)

E

enumerate(iterable, start=0)

반복문에서 객체의 인덱스 번호와 요소를 tuple 형태로 반환한다.

l = [1, 2, 3, 4, 5]

for i, x in enumerate(l):
    print(i, ':', x)
>> 0 : 1
1 : 2
2 : 3
3 : 4
4 : 5

eval(expression[, globals[, locals]])

문자열로 표현된 식을 계산하는 함수이다.

a = eval('1+2+3')

a
>> 6

exec(object[, globals[, locals]])

문자열로 표현된 문을 실행하는 함수이다.

exec('b = 1 + 2 + 3')

b
>> 6