내장함수

2023. 3. 5. 21:35Python/실전 예제로 배우는 파이썬 프로그래밍

모듈이나 패키지에서 제공되는 함수를 이용하기 위해서 먼저 import 명령어를 이용하여 해당 모듈이나 패키지를 작성 중인 파일에 포함시켜야 합니다. 사용자의 편의를 위해서 import를 하지 않아도 사용할 수 있는 내장함수도 있습니다. 이러한 함수들은 builtins이라는 모듈에 의해서 제공됩니다.

 

형식

1) import 모듈명
2) from 모듈명 import 함수명1, 함수명2, ...

● import 방식: 해당 패키지 또는 모듈이 포함하고 있는 모든 구성요소를 포함시키는 방식입니다. 명령문 형식은 간결하지만 구성요소가 많은 경우에는 모든 구성요소가 메모리에 올라가기 때문에 처리속도가 느려지고, 메모리의 소모가 많아집니다.

● from 방식: 해당 패키지 또는 모듈이 포함하고 있는 구성요소 중에서 특정 요소만 포함시키는 방식입니다. 명령문 형식은 다소 복잡하지만 특정 요소만 메모리에 올라가기에 속도가 빠르고, 메모리의 효율성이 높습니다.

 

실습 builtins 함수와 import 함수 예시

# (1) builtins 함수
help(len)
dataset = list(range(1, 6))
print(dataset)

Help on built-in function len in module builtins:

len(obj, /)
    Return the number of items in a container.

[1, 2, 3, 4, 5]

print('len=', len(dataset))
print('sum=', sum(dataset))	# sum = 15
print('max=', max(dataset))
print('min=', min(dataset))

len= 5
sum= 15
max= 5
min= 1

# (2) import 함수
import statistics	# (방법1)
from statistics import variance, stdev	# (방법2)

print('평균=', statistics.mean(dataset))	# 방법1
print('중위수=', statistics.median(dataset))	# 방법1
print("표본 분산=", variance(dataset))	# 방법2
print("표본 표준편차=", stdev(dataset))	# 방법2

평균= 3
중위수= 3
표본 분산= 2.5
표본 표준편차= 1.5811388300841898

# (1) builtins 함수

builtins 모듈에서 제공되는 함수는 별도의 import 없이 바로 사용할 수 있는 내장함수입니다. len(), sum(), max(), min()의 4개 함수에 각각 dataset을 인수로 넣고, 실행할 경우 원소의 길이, 합계, 최댓값, 최솟값 등의 기초 통계량이 계산됩니다.

 

# (2) import 함수

import 명령어를 이용하여 외부 모듈을 포함시켜야 사용할 수 있는 함수를 말합니다. 수학/통계 관련 함수를 제공하는 statistics 모듈을 import 해야 합니다.

 

builtins 모듈

builtins 모듈의 내장함수와 내장클래스

함수명/클래스명 기능 구분
abs(x) x의 절대값을 변환한다. 내장함수
all(iterable) 모든 요소가 Tru일 때 True를 반환한다. 내장함수
any(iterable) 하나 이상의 요소가 True일 때 True를 반환한다. 내장함수
bin(number) 10진수 정수를 2진수로 반환한다. 내장함수
bool(x) x를 논리형으로 반환한다. 내장클래스
complex(x) x를 복소수형으로 반환한다. 내장클래스
dict(iterable) 사전형 자료구조 형으로 반환한다. 내장클래스
dir(x) 변수, 내장함수, 내장클래스의 목록을 반환한다. 내장함수
enumerate(iterable) 사전형 자료구조 형으로 반환한다. 내장클래스
eval(expr) 문자열 수식을 계산 가능한 수식으로 반환한다. 내장함수
float(x) 실수로 형 변환하여 반환한다. 내장함수
format(value) value에 양식을 적용한다. 내장함수
help(x) 함수 또는 클래스의 도움말을 반환한다. 내장함수
hex(number) 10진수 정수를 16진수 값을 반환한다. 내장함수
id(obj) 객체의 주소를 반환한다. 내장함수
input([prompt]) 키보드로 입력한 문자열을 반환한다. 내장함수
int(x) x를 정수형으로 반환한다. 내장클래스
len(obj) 전체 원소의 길이를 반환한다. 내장함수
list((iterable)) list자료구조로 형 변환한다. 내장클래스
max(iterable) 최댓값을 반환한다. 내장함수
min(iterable) 최솟값을 반환한다. 내장함수
oct(number) 10진수 정수를 8진수 값으로 반환한다. 내장함수
open(file, mode) 파일 읽기와 쓰기 내장함수
ord(character) character를 아스키 값으로 반환한다. 내장함수
pow(x, y) x에 대한 y의 제곱을 계산하여 반환한다. 내장함수
print(value) value를 콘솔에 출력한다. 내장함수
range(n) 0에서 n-1 사이의 정수를 반환한다. 내장클래스
round(number) 실수 number를 대상으로 반올림을 수행한다. 내장함수
set(iterable) 셋 자료구조로 형 변환한다. 내장클래스
sorted(iterable) 반복 가능한 원소들을 대상으로 정렬한다. 내장함수
str(object) 문자형 자료형으로 변환한다. 내장클래스
sum(iterable) 숫자들의 합을 구한다. 내장함수
tuple(iterable) 튜플 자료구조로 형 변환한다. 내장클래스
type(x) x의 자료형을 반환한다. 내장클래스
zip(iterable*) iterable의 원소를 묶어서 반환한다. 내장함수

builtins 내장함수

(1) abs(x)

abs(x) 함수는 인수 x를 대상으로 절댓값을 반환하는 함수입니다.

abs(10)
10

abs(-10)
10

abs(-123.45)
123.45

(2) all(iterable)

모든 요소가 True일 때 True를 반환합니다. 영(0)이 아닌 숫자는 True로 해석합니다.

 

all([1, True, 10, -15.2])
True

all([1, True, 0, -15.2])
False

all([1, False, 0, -15.2])
False

(3) any(iterable)

하나 이상의 요소가 True일 때 True를 반환합니다. 영(0)이 False로 해석합니다.

any([1, False, 0, -15.2])
True

any([False, 0, 0])
False

(4) bin(number)

10진수 정수를 2진수로 반환합니다. 2진수는 '0b' 문자열로 시작합니다.

bin(10)
'0b10101'

bin(15)
'0b1111'

(5) dir(x)

객체 x에서 제공하는 변수, 내장함수, 내장클래스의 목록을 반환합니다. x의 멤버들은 'x. 멤버' 형식으로 호출합니다. 예를 들면 append() 함수를 호출하기 위해서는 x.append(object) 형식으로 명령문을 작성합니다.

x = [1, 2, 3, 4, 5]
dir(x)

['__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']
 
 x.append(6)	# 원소 추가
 x
 
 [1, 2, 3, 4, 5, 6]

(6) eval(expr)

문자열 수식을 인수로 받아서 계산 가능한 파이썬 수식으로 변환합니다.

eval("10 + 20")
30

eval(10 + "20 * 30")	# 오류 발생

Traceback (most recent call last)
<ipython-input-6-2f5a68c5531d> in <module>
----> 1 eval(10 + "20 * 30")
TypeError: unsupported operand type(s) for +: 'int' and 'str'

(7) hex(number)

10진수 정수를 16진수로 반환합니다. 16진수는 '0x' 문자열로 시작합니다.

hex(10)
'0xa'

hex(15)
'0xf'

hex(64)
'0x40'

(8) oct(number)

10진수 정수를 8진수로 반환합니다. 8진수는 '0o' 문자열로 시작합니다.

oct(10)
'0o12'

oct(7)
'0o7'

oct(8)
'0o10'

 

(9) ord(character)

character를 아스키 값으로 반환합니다. 숫자 영(0)은 48, 영문자 대문자 A는 65, 영문자 소문자 a는 97입니다.

ord('0')
48

ord('A')
65

ord('Z')
90

ord('a')
97

ord('z')
122

(10) pow(x, y)

x에 대한 y의 제곱을 계산하여 반환합니다.

pow(10, 2)
100

pow(10, 3)
1000

pow(10, -1)
0.1

pow(10, -2)
0.01

(11) round(number)

실수를 인수로 하여 반올림을 수행하는 결과를 반환합니다.

round(3.14159)
3

round(3.14159, 3)	# 소숫점 3자리
3.142

(12) sorted(iterable)

반복 가능한 원소들을 대상으로 오름차순 또는 내림차순 정렬한 결과를 반환합니다.

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

sorted([3, 2, 1, 5]), reverse = True)
[5, 3, 2, 1]

(13) zip(iterable*)

반복 가능한 객체와 객체 간의 원소들을 묶어서 튜플로 반환합니다. zip() 함수에서 반환된 결과를 확인하기 위해서 list 클래스를 이용하여 리스트 자료구조로 변환해야 합니다.

zip([1, 3, 5], [2, 4, 6])
<zip at 0x7fa7cc3f5d80>

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