점프 투 파이썬 DAY12(내장함수)

정지범·2026년 9월 21일

점프 투 파이썬

목록 보기
23/37

05-5 내장 함수

목차

  • 1. 내장 함수란?
  • 2. abs
  • 3. all
  • 4. any
  • 5. chr
  • 6. dir
  • 7. divmod
  • 8. enumerate
  • 9. eval
  • 10. filter
  • 11. hex
  • 12. id
  • 13. input
  • 14. int
  • 15. isinstance
  • 16. len
  • 17. list
  • 18. map
  • 19. max / min
  • 20. oct
  • 21. open
  • 22. ord
  • 23. pow
  • 24. range
  • 25. round
  • 26. sorted
  • 27. str
  • 28. sum
  • 29. tuple
  • 30. type
  • 31. zip

1. 내장 함수란?

내장 함수(Built-in Function) 는 파이썬에서 기본으로 제공하는 함수이다.

별도의 모듈을 불러오지 않아도 바로 사용할 수 있다.

예를 들어 지금까지 사용했던

print()
type()
input()
len()

등도 모두 내장 함수이다.

print("Hello")

처럼 별도의

import

없이 바로 사용할 수 있다는 것이 특징이다.

내장 함수는 파이썬에서 기본적으로 제공하므로 import 없이 사용할 수 있다.


2. abs

abs()는 숫자의 절댓값을 반환한다.

print(abs(3))
print(abs(-3))
print(abs(-1.5))

실행 결과

3
3
1.5

즉,

3   → 3
-3  → 3
-1.5 → 1.5

처럼 음수도 양수 값으로 반환한다.


3. all

all()은 반복 가능한 데이터의 값이 모두 참인지 확인한다.

print(all([1, 2, 3]))

실행 결과

True

모든 값이 참이기 때문이다.

하지만

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

실행 결과

False

0은 False로 판단되기 때문이다.

핵심

모두 True → True
하나라도 False → False

빈 데이터는

print(all([]))
True

를 반환한다.


4. any

any()는 all()과 반대로 하나라도 참이 있는지 확인한다.

print(any([0, 0, 1]))

실행 결과

True

1이라는 참 값이 하나 존재하기 때문이다.

print(any([0, ""]))

실행 결과

False

모든 값이 거짓이기 때문이다.

all과 any

함수의미
all()모든 값이 참인가?
any()하나라도 참인가?
all → 모두
any → 하나라도

5. chr

chr()는 숫자 형태의 유니코드 값을 문자로 변환한다.

print(chr(97))

실행 결과

a
print(chr(44032))

실행 결과

가

즉,

유니코드 숫자 → 문자

로 변환한다.


6. dir

dir()은 객체가 가지고 있는 속성과 메서드 목록을 확인할 때 사용한다.

a = [1, 2, 3]

print(dir(a))

실행하면 리스트에서 사용할 수 있는

append
clear
copy
count
extend
index
insert
pop
remove
reverse
sort
...

등을 확인할 수 있다.

딕셔너리도 확인할 수 있다.

a = {"name": "python"}

print(dir(a))

keys(), values(), items() 등 딕셔너리에서 사용할 수 있는 메서드를 확인할 수 있다.

객체에서 어떤 기능을 사용할 수 있는지 확인할 때 유용하다.


7. divmod

divmod(a, b)는 두 숫자를 나눈 몫과 나머지를 한 번에 반환한다.

print(divmod(7, 3))

실행 결과

(2, 1)

즉,

7 / 3

몫     → 2
나머지 → 1

이다.

따로 계산하면

print(7 // 3)
print(7 % 3)

실행 결과

2
1

정리

divmod(7, 3)

은

(7 // 3, 7 % 3)

과 비슷하게 생각하면 된다.


8. enumerate

enumerate()는 반복 가능한 데이터를 사용할 때 인덱스 번호와 값을 함께 가져온다.

names = ["철수", "영희", "민수"]

for i, name in enumerate(names):
    print(i, name)

실행 결과

0 철수
1 영희
2 민수

일반적인 for문은 값만 가져온다.

for name in names:
    print(name)

하지만 enumerate()를 사용하면

인덱스 + 값

을 동시에 사용할 수 있다.

0 → 철수
1 → 영희
2 → 민수

반복문에서 현재 몇 번째 요소인지 알아야 할 때 자주 사용한다.


9. eval

eval()은 문자열로 작성된 파이썬 표현식을 실제 코드처럼 계산한다.

print(eval("1 + 2"))

실행 결과

3

또는

print(eval("10 * 5"))

실행 결과

50

즉,

"1 + 2"
   ↓
파이썬 표현식으로 실행
   ↓
3

이 된다.

eval()은 문자열을 실제 코드로 실행할 수 있으므로 외부에서 입력받은 값을 그대로 넣는 것은 위험하다.


10. filter

filter()는 데이터 중에서 조건에 맞는 값만 걸러 낼 때 사용한다.

기본 구조

filter(함수, 반복가능한데이터)

예를 들어 양수만 가져오는 함수를 만들어 보자.

def positive(x):
    return x > 0

사용

numbers = [1, -3, 2, 0, -5, 6]

result = filter(positive, numbers)

print(list(result))

실행 결과

[1, 2, 6]

동작 과정

1  → True  → 포함
-3 → False → 제외
2  → True  → 포함
0  → False → 제외
-5 → False → 제외
6  → True  → 포함

lambda를 사용하면 더 간단하게 작성할 수 있다.

numbers = [1, -3, 2, 0, -5, 6]

print(list(filter(lambda x: x > 0, numbers)))

실행 결과

[1, 2, 6]

11. hex

hex()는 정수를 16진수 문자열로 변환한다.

print(hex(255))

실행 결과

0xff

16진수는 앞에

0x

가 붙는다.

10진수 → 16진수
255    → 0xff

12. id

id()는 객체를 구별할 수 있는 고유 식별값을 반환한다.

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

print(id(a))
print(id(b))

a와 b가 같은 객체를 가리키고 있다면 같은 id 값이 나온다.

a ─┐
   ├→ [1, 2, 3]
b ─┘

id()의 실제 숫자는 실행할 때마다 달라질 수 있다.


13. input

input()은 사용자에게 값을 입력받는다.

name = input("이름을 입력하세요: ")

print(name)

실행 예

이름을 입력하세요: 둘기
둘기

중요한 점은 input()으로 입력받은 값은 기본적으로 문자열이라는 것이다.

age = input("나이: ")

print(type(age))

실행 결과

<class 'str'>

숫자로 사용하려면

age = int(input("나이: "))

처럼 변환해야 한다.


14. int

int()는 값을 정수형으로 변환한다.

print(int("3"))

실행 결과

3

실수도 정수로 변환할 수 있다.

print(int(3.9))

실행 결과

3

소수점 이하 부분은 제거된다.


진수 변환

int()는 문자열로 표현된 다른 진수 값을 10진수로 변환할 수도 있다.

print(int("11", 2))

실행 결과

3

즉,

2진수 11
   ↓
10진수 3

이다.

16진수도 가능하다.

print(int("1A", 16))

실행 결과

26

15. isinstance

isinstance()는 객체가 특정 클래스의 인스턴스인지 확인한다.

class Person:
    pass

a = Person()

print(isinstance(a, Person))

실행 결과

True

하지만

b = 3

print(isinstance(b, Person))

실행 결과

False

즉,

isinstance(객체, 클래스)

형태로 사용한다.


16. len

len()은 데이터의 길이 또는 요소 개수를 반환한다.

문자열

print(len("python"))
6

리스트

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

튜플

print(len((1, 2)))
2

17. list

list()는 반복 가능한 데이터를 리스트로 변환한다.

문자열

print(list("python"))

실행 결과

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

튜플

print(list((1, 2, 3)))

실행 결과

[1, 2, 3]

18. map

map()은 반복 가능한 데이터의 모든 요소에 같은 함수를 적용한다.

기본 구조

map(함수, 반복가능한데이터)

예를 들어 모든 숫자에 2를 곱해 보자.

def two_times(x):
    return x * 2

numbers = [1, 2, 3, 4]

result = map(two_times, numbers)

print(list(result))

실행 결과

[2, 4, 6, 8]

동작 과정

1 → 1 × 2 → 2
2 → 2 × 2 → 4
3 → 3 × 2 → 6
4 → 4 × 2 → 8

lambda를 사용하면

numbers = [1, 2, 3, 4]

print(list(map(lambda x: x * 2, numbers)))

실행 결과

[2, 4, 6, 8]

map과 filter 차이

함수역할
map()각각의 값을 변환
filter()조건에 맞는 값만 선택
map    → 바꾼다
filter → 거른다

19. max / min

max()는 가장 큰 값을 반환한다.

print(max([1, 5, 3, 9, 2]))

실행 결과

9

min()은 가장 작은 값을 반환한다.

print(min([1, 5, 3, 9, 2]))

실행 결과

1

정리

max → 최댓값
min → 최솟값

20. oct

oct()는 정수를 8진수 문자열로 변환한다.

print(oct(8))

실행 결과

0o10

8진수에는 앞에

0o

가 붙는다.

진수 표현

2진수  → 0b
8진수  → 0o
16진수 → 0x

21. open

open()은 파일을 열 때 사용한다.

기본 구조

open("파일이름", "모드")

예를 들어

f = open("test.txt", "r")

은 test.txt 파일을 읽기 모드로 연다.

파일 모드

모드설명
r읽기
w쓰기
a내용 추가
b바이너리 모드

예를 들어

f = open("test.txt", "w")

는 쓰기 모드이다.

바이너리 파일을 읽는다면

f = open("image.jpg", "rb")

처럼 사용할 수 있다.


22. ord

ord()는 문자를 유니코드 숫자 값으로 변환한다.

print(ord("a"))

실행 결과

97
print(ord("가"))

실행 결과

44032

chr()와 반대라고 생각하면 된다.

chr()

97
 ↓
'a'
ord()

'a'
 ↓
97

정리

함수변환
chr()숫자 → 문자
ord()문자 → 숫자

23. pow

pow(x, y)는 x의 y제곱을 계산한다.

print(pow(2, 4))

실행 결과

16

즉,

2⁴ = 16

이다.

다음과 같은 의미이다.

2 ** 4

24. range

range()는 일정 범위의 숫자를 만들어 반복문에서 자주 사용한다.


24-1. 인수가 하나일 경우

print(list(range(5)))

실행 결과

[0, 1, 2, 3, 4]

시작값을 생략하면 0부터 시작한다.

주의할 점은 마지막 숫자인 5는 포함하지 않는다는 것이다.

0 이상 5 미만

24-2. 인수가 2개일 경우

print(list(range(5, 10)))

실행 결과

[5, 6, 7, 8, 9]
range(시작, 끝)

형태이다.

끝 값은 포함하지 않는다.


24-3. 인수가 3개일 경우

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

실행 결과

[1, 3, 5, 7, 9]

세 번째 값은 증가 폭이다.

range(시작, 끝, 증가값)

음수도 가능하다.

print(list(range(5, 0, -1)))

실행 결과

[5, 4, 3, 2, 1]

25. round

round()는 숫자를 반올림한다.

print(round(4.6))

실행 결과

5
print(round(4.2))

실행 결과

4

소수점 자리수를 지정할 수도 있다.

print(round(5.678, 2))

실행 결과

5.68

즉,

round(숫자, 자릿수)

형태로 사용한다.


26. sorted

sorted()는 데이터를 정렬하고 새로운 리스트를 반환한다.

numbers = [3, 1, 2]

print(sorted(numbers))

실행 결과

[1, 2, 3]

문자열도 가능하다.

print(sorted("python"))

각 문자를 정렬한 리스트가 반환된다.


sorted()와 sort() 차이

sorted()

a = [3, 1, 2]

b = sorted(a)
a → [3, 1, 2]
b → [1, 2, 3]

원본은 그대로 유지된다.

반면

a.sort()

는 리스트 a 자체를 정렬한다.

정리

구분sorted().sort()
형태내장 함수리스트 메서드
원본 변경XO
반환값정렬된 리스트None

27. str

str()은 값을 문자열로 변환한다.

a = 3

print(str(a))

실행 결과

'3'

자료형을 확인하면

print(type(str(a)))

실행 결과

<class 'str'>

28. sum

sum()은 반복 가능한 데이터의 숫자를 모두 더한다.

print(sum([1, 2, 3]))

실행 결과

6

튜플도 가능하다.

print(sum((10, 20, 30)))

실행 결과

60

기존에는

result = 0

for i in [1, 2, 3]:
    result += i

처럼 작성할 수 있지만 sum()을 사용하면

sum([1, 2, 3])

으로 간단하게 처리할 수 있다.


29. tuple

tuple()은 반복 가능한 데이터를 튜플로 변환한다.

리스트

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

실행 결과

(1, 2, 3)

문자열

print(tuple("abc"))

실행 결과

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

30. type

type()은 객체의 자료형을 확인한다.

print(type("python"))

실행 결과

<class 'str'>
print(type([1, 2, 3]))

실행 결과

<class 'list'>
print(type((1, 2, 3)))

실행 결과

<class 'tuple'>

31. zip

zip()은 여러 개의 반복 가능한 데이터를 같은 위치끼리 묶어 준다.

a = [1, 2, 3]
b = ["a", "b", "c"]

print(list(zip(a, b)))

실행 결과

[(1, 'a'), (2, 'b'), (3, 'c')]

동작을 보면

1 + a → (1, 'a')
2 + b → (2, 'b')
3 + c → (3, 'c')

이다.

3개의 데이터도 묶을 수 있다.

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

print(list(zip(a, b, c)))

실행 결과

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

zip() 활용 예

학생 이름과 점수를 묶어 보자.

names = ["철수", "영희", "민수"]
scores = [80, 90, 95]

for name, score in zip(names, scores):
    print(name, score)

실행 결과

철수 80
영희 90
민수 95

zip()은 서로 관련 있는 여러 데이터를 함께 처리할 때 유용하다.


💡 자주 사용하는 내장 함수 정리

함수기능
abs()절댓값
all()모든 요소가 참인지 확인
any()하나라도 참인지 확인
chr()유니코드 숫자 → 문자
dir()객체의 속성/메서드 확인
divmod()몫과 나머지 반환
enumerate()인덱스와 값 함께 반환
eval()문자열 표현식 실행
filter()조건에 맞는 데이터 선택
hex()16진수 변환
id()객체 식별값 확인
input()사용자 입력
int()정수 변환
isinstance()특정 클래스의 인스턴스인지 확인
len()길이 확인
list()리스트 변환
map()모든 요소에 함수 적용
max()최댓값
min()최솟값
oct()8진수 변환
open()파일 열기
ord()문자 → 유니코드 숫자
pow()거듭제곱
range()숫자 범위 생성
round()반올림
sorted()정렬된 리스트 반환
str()문자열 변환
sum()합계
tuple()튜플 변환
type()자료형 확인
zip()여러 데이터를 같은 위치끼리 묶음

💡 특히 기억할 함수

이번 장의 모든 함수를 한 번에 외울 필요는 없다.

실제 코드에서 많이 만나게 되는 함수부터 기억하면 된다.

len()       → 길이
sum()       → 합계
max()       → 최댓값
min()       → 최솟값
sorted()    → 정렬

enumerate() → 인덱스 + 값
zip()       → 여러 데이터 묶기

map()       → 각각 변환
filter()    → 조건으로 거르기

int()       → 정수 변환
str()       → 문자열 변환
list()      → 리스트 변환
tuple()     → 튜플 변환

type()      → 자료형 확인
isinstance()→ 클래스 확인

특히

enumerate → 번호까지 필요할 때
zip       → 두 리스트를 같이 돌릴 때
map       → 전부 같은 방식으로 바꿀 때
filter    → 조건에 맞는 것만 남길 때

라고 기억하면 이해하기 쉽다.


💡 map, filter, zip, enumerate 비교

numbers = [1, 2, 3, 4]

map

list(map(lambda x: x * 2, numbers))
[2, 4, 6, 8]

각각의 데이터를 변환


filter

list(filter(lambda x: x % 2 == 0, numbers))
[2, 4]

조건에 맞는 데이터를 선택


enumerate

list(enumerate(numbers))
[(0, 1), (1, 2), (2, 3), (3, 4)]

인덱스 + 값


zip

names = ["A", "B", "C", "D"]

list(zip(names, numbers))
[('A', 1), ('B', 2), ('C', 3), ('D', 4)]

여러 데이터를 같은 위치끼리 묶기


💡 핵심 정리

내장 함수는 import 없이 바로 사용할 수 있는 파이썬 기본 함수이다.

이번 장에서는 함수를 전부 외우는 것보다

이런 기능이 필요할 때 이미 만들어진 함수가 있구나!

라는 것을 알아 두는 것이 중요하다.

특히 다음 함수들은 앞으로 코드를 작성하면서 자주 사용하게 된다.

len()
range()
enumerate()
zip()

map()
filter()

sum()
max()
min()
sorted()

int()
str()
list()
tuple()

type()
isinstance()

필요할 때 사용법이 기억나지 않는다면 찾아서 사용하면 된다.

profile
성실하자:)

0개의 댓글