본문 바로가기
파이썬/파이썬 기본 문법

[파이썬] 내장함수

by Nov19 2018. 12. 11.
반응형


[파이썬] 내장함수


파이썬에서는 구현하지 않아도 배포본에 들어있는 유용한 라이브러리들이 많이 있다. 

그리고 이미 만들어진 프로그램들은 테스트 과정을 거쳤기 때문에 충분히 검증되어 있고 속도도 빠르다.

이미 만들어진 기능은 직접 구현하기 보다 사용법을 알고 적절할 때 가져다 쓰는 것이 효율적이다.


abs(x) all(x) any(xchr(i) dir(object) divmod(a,b) enumerate() eval(expression) hex(x) oct(x) id(object) input([prompt]) int(x) str(object) isinstance(object, class) lambda len(s) list(s) 

map(f, iterable) max(iterable) min(iterable) range([start,] stop ,step]) sorted(iterable)  

tuple(iterable) type(object) zip(iterable*)


abs(x) 어떤 숫자를 입력으로 받았을 때, 그 숫자의 절대값을 돌려주는 함수이다.

>>> abs(3)

3


all(x) 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며, 이 x가 모두 참이면 True, 거짓이 하나라도 있으면 False를 리턴한다.

(※ 반복 가능한 자료형이란 for문으로 그 값을 출력할 수 있는 것을 의미. 리스트, 튜플, 문자열, 딕셔너리, 집합 등.)

>>> all([1, 2, 3, 0])

False

리스트 자료형 [1, 2, 3, 0] 중에서 요소 0은 거짓이므로 False를 리턴한다.


any(x) x 중 하나라도 참이 있을 경우 True를 리턴하고, x가 모두 거짓일 경우에만 False를 리턴한다. all(x)의 반대

다음의 예를 보자.

>>> any([1, 2, 3, 0])

True


chr(i)는 아스키(ASCII) 코드값을 입력으로 받아 그 코드에 해당하는 문자를 출력하는 함수이다.

>>> chr(97)

'a'


dir(object) 객체가 자체적으로 가지고 있는 변수나 함수를 보여 준다.

>>> dir([1, 2, 3])

['append', 'count', 'extend', 'index', 'insert', 'pop',...]

>>> dir({'1':'a'})

['clear', 'copy', 'get', 'has_key', 'items', 'keys',...]


divmod(a, b) 2개의 숫자를 입력받아 a를 b로 나눈 몫과 나머지를 튜플 형태로 리턴하는 함수이다.

>>> divmod(7, 3)

(2, 1)


enumerate 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴한다.

(※ 보통 enumerate 함수는 아래 예제처럼 for문과 함께 자주 사용된다.)

>>> for i, name in enumerate(['body', 'foo', 'bar']):

...     print(i, name)

...

0 body

1 foo

2 bar

enumerate를 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.

for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려주는 인덱스 값이 필요할때 enumerate 함수를 사용한다.


eval(expression) 실행 가능한 문자열을 입력으로 받아 문자열을 실행한 결과값을 리턴하는 함수이다.

>>> eval('1+2')

3

>>> eval("'hi' + 'a'")

'hia'

>>> eval('divmod(4, 3)')

(1, 1)

보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶은 경우에 사용된다.


filter(name, list) 첫 번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 

두 번째 인수인 반복 가능한 자료형 요소들이 첫 번째 인수인 함수에 입력되었을 때 리턴값이 참인 것만 걸러내서 돌려준다.

def positive(x):

    return x > 0

print(list(filter(positive, [1, -3, 2, 0, -5, 6])))

결과값: [1, 2, 6]


hex(x) 정수값을 입력받아 16진수(hexadecimal)로 변환하여 리턴하는 함수이다.

>>> hex(3)

'0x3'


oct(x) 정수 형태의 숫자를 8진수 문자열로 바꾸어 리턴하는 함수이다.

>>> oct(34)

'0o42'


id(object) 객체를 입력받아 객체의 고유 주소값(레퍼런스)을 리턴하는 함수이다.

>>> a = 3

>>> id(3)

135072304


input([prompt]) 사용자 입력을 받는 함수이다. 

입력 인수로 문자열을 주면 아래의 세 번째 예에서 볼 수 있듯이 그 문자열은 프롬프트가 된다.

>>> a = input()

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

Enter: hi


int(x) 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 리턴하는 함수. 정수를 입력으로 받으면 그대로 리턴.

>>> int('3')

3

>>> int(3.4)

3

int(x)와 마찬가지로 str(x)는 문자열로 float(x)는 실수로 리턴한다.

int(x, radix) radix 진수로 표현된 문자열 x를 10진수로 변환하여 리턴한다.

2진수로 표현된 '11'의 10진수 값은 다음과 같이 구한다.

>>> int('11', 2)

3


isinstance(object, class) 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다. 

입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 리턴한다.

>>> class Person:pass

>>> a = Person()

>>> isinstance(a, Person)

True


lambda 함수를 생성할 때 사용하는 예약어로, def 와 동일한 역할을 한다. 보통 함수를 한줄로 간결하게 만들 때 사용한다. 

"람다"라고 읽고 def 를 사용해야 할 정도로 복잡하지 않거나 def 를 사용할 수 없는 곳에 주로 쓰인다.

lambda 인수1, 인수2, ... : 인수를 이용한 표현식

>>> sum = lambda a, b: a+b

>>> sum(3,4)

7


len(s) 입력값 s의 길이(요소의 전체 개수)를 리턴하는 함수이다.

>>> len("python")

6

>>> len([1,2,3])

3


list(s) 반복 가능한 자료형 s를 입력받아 리스트로 만들어 리턴하는 함수이다.

>>> list("python")

['p', 'y', 't', 'h', 'o', 'n']

>>> list((1,2,3))

[1, 2, 3]

list 함수에 리스트를 입력으로 주면 똑같은 리스트를 복사하여 돌려준다.

>>> a = [1, 2, 3]

>>> b = list(a)

>>> b

[1, 2, 3]


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

map은 입력받은 자료형의 각 요소가 함수 f에 의해 수행된 결과를 묶어서 리턴하는 함수이다.

>>> def double(x):return x*2

>>> list(map(double, [1, 2, 3, 4]))

[2, 4, 6, 8]

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

[2, 4, 6, 8]


max(iterable) 인수로 반복 가능한 자료형을 입력받아 그 최대값을 리턴하는 함수이다.

>>> max([1, 2, 3])

3

>>> max("python")

'y'


min(iterable) 인수로 반복 가능한 자료형을 입력받아 그 최소값을 리턴하는 함수이다.

>>> min([1, 2, 3])

1

>>> min("python")

'h'


open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 리턴하는 함수이다. 

mode가 생략되면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 리턴한다.

mode

쓰기 모드로 파일 열기 읽기 모드로 파일 열기 추가 모드로 파일 열기 바이너리 모드로 파일 열기 b는 w, r, a와 함께 사용된다.

>>> f = open("filename", "rb") # 파일을 바이너리 읽기 모드로 연다.


ord(c) 문자의 아스키 코드값을 리턴하는 함수이다.

(※ ord 함수는 chr 함수와 반대이다.)

>>> ord('a')

97


pow(x, y) x의 y 제곱한 결과값을 리턴하는 함수이다.

>>> pow(2, 4)

16


range([start,] stop [,step]) 입력받은 숫자에 해당되는 범위의 값을 반복 가능한 객체로 만들어 리턴한다.

for문과 함께 자주 사용되는 함수이다. 

인수가 하나일 경우 시작 숫자를 지정해 주지 않으면 range 함수는 0부터 시작한다.

>>> list(range(5))

[0, 1, 2, 3, 4]


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

단, 끝 숫자는 해당 범위에 포함되지 않는다는 것에 주의하자.

>>> list(range(5, 10))

[5, 6, 7, 8, 9]


인수가 3개일 경우 세 번째 인수는 숫자 사이의 거리를 말한다.

>>> list(range(1, 10, 2))

[1, 3, 5, 7, 9]


sorted(iterable) 함수는 입력값을 정렬한 후 그 결과를 리스트로 리턴하는 함수이다.

>>> sorted([3, 1, 2])

[1, 2, 3]

>>> sorted(['a', 'c', 'b'])

['a', 'b', 'c']

리스트 자료형에도 sort라는 함수가 있다. 하지만 리스트 자료형의 sort 함수는 리스트 객체 그 자체를 정렬만 할 뿐 정렬된 결과를 리턴하지는 않는다.


str(object) 문자열 형태로 객체를 변환하여 리턴하는 함수이다.

>>> str(3)

'3'

>>> str('hi')

'hi'


tuple(iterable) 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 리턴하는 함수이다. 

튜플이 입력으로 들어오면 그대로 리턴한다.

>>> tuple("abc")

('a', 'b', 'c')

>>> tuple([1, 2, 3])

(1, 2, 3)


type(object) 입력값의 자료형이 무엇인지 알려주는 함수이다.

>>> type("abc")

<class 'str'>


zip(iterable*) 동일한 인덱스 값끼리 묶어 주는 역할을 하는 함수이다.

>>> list(zip([1, 2, 3], [4, 5, 6]))

[(1, 4), (2, 5), (3, 6)]


반응형

'파이썬 > 파이썬 기본 문법' 카테고리의 다른 글

[파이썬] 외장함수 2  (0) 2018.12.11
[파이썬] 외장함수 1  (0) 2018.12.11
[파이썬] 예외처리 try except  (0) 2018.12.11
[파이썬] 모듈 Module  (0) 2018.12.11
[파이썬] 클래스 Class  (0) 2018.12.11

댓글