본문 바로가기

Programming/Python

[Python] 내장 함수 정리 (3)

21. open

open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수이다. 읽기 방법(mode)을 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 돌려준다.

mode 설명
w 쓰기 모드로 파일 열기
r 읽기 모드로 파일 열기
a 추가 모드로 파일 열기
b 바이너리 모드로 파일 열기

b는 w, r, a와 함께 사용한다.

>>> f = open("binary_file", "rb")

위 예의 rb는 "바이너리 읽기 모드"를 의미한다.

다음 예의 fread와 fread2는 동일한 방법이다.

>>> fread = open("read_mode.txt", 'r')
>>> fread2 = open("read_mode.txt")

즉 모드 부분을 생략하면 기본값으로 읽기 모드 r를 갖게 된다.

다음은 추가 모드(a)로 파일을 여는 예이다.

>>> fappend = open("append_mode.txt", 'a')

22. ord

ord(c)는 문자의 아스키 코드 값을 돌려주는 함수이다.

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

>>> ord('a')
97
>>> ord('0')
48

23. pow

pow(x, y)는 x의 y 제곱한 결괏값을 돌려주는 함수이다.

>>> pow(2, 4)
16
>>> pow(3, 3)
27

24. range

range([start,] stop [,step] )는 for문과 함께 자주 사용하는 함수이다. 이 함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려준다.

인수가 하나일 경우

시작 숫자를 지정해 주지 않으면 range 함수는 0부터 시작한다.

>>> list(range(5))
[0, 1, 2, 3, 4]

인수가 2개일 경우

입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다. 단 끝 숫자는 해당 범위에 포함되지 않는다는 것에 주의하자.

>>> list(range(5, 10))
[5, 6, 7, 8, 9]

인수가 3개일 경우

세 번째 인수는 숫자 사이의 거리를 말한다.

>>> list(range(1, 10, 2))
[1, 3, 5, 7, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

25. round

round(number[, ndigits]) 함수는 숫자를 입력받아 반올림해 주는 함수이다.

※ [, ndigits]는 ndigits가 있을 수도 있고 없을 수도 있다는 의미이다.

>>> round(4.6)
5
>>> round(4.2)
4

다음과 같이 실수 5.678을 소수점 2자리까지만 반올림하여 표시할 수 있다.

>>> round(5.678, 2)
5.68

round 함수의 두 번째 매개변수는 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)이다.

26. sorted

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

>>> 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]

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

27. str

str(object)은 문자열 형태로 객체를 변환하여 돌려주는 함수이다.

>>> str(3)
'3'
>>> str('hi')
'hi'
>>> str('hi'.upper())
'HI'

28. sum

sum(iterable) 은 입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 함수이다.

>>> sum([1,2,3])
6
>>> sum((4,5,6))
15

29. tuple

tuple(iterable)은 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려주는 함수이다. 만약 튜플이 입력으로 들어오면 그대로 돌려준다.

>>> tuple("abc")
('a', 'b', 'c')
>>> tuple([1, 2, 3])
(1, 2, 3)
>>> tuple((1, 2, 3))
(1, 2, 3)

30. type

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

>>> type("abc")
<class 'str'>
>>> type([ ])
<class 'list'>
>>> type(open("test", 'w'))
<class '_io.TextIOWrapper'>

31. zip

zip(*iterable)은 동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수이다.

※ 여기서 사용한 *iterable은 반복 가능(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')]