본문 바로가기
파이썬/Basics(기초)

[Python] 15. 내장함수(built-in function) 21종

by 쿠킷리스트 2021. 10. 11.

학습내용


#1 : 파이썬 내장함수

 파이썬 내장 함수는 import가 필요하지 않기 때문에 아무런 설정 없이 바로 사용할 수 있다. 파이썬에는 수많은 내장함수가 존재한다. 이미 알고 있는 함수들은 대부분 제외했다.

 

1) abs

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

abs(7)
#7
abs(-7)
#7
abs(-3.14)
#3.14

 

2) all

all(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다. 반복 가능한 자료형이란 for문으로 그 값을 출력할 수 있는 것을 의미한다. 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다.

all([3,2,1,0])
#False
all([4,3,2,1])
#Fasle
all([])
#True

- all([3,2,1,0])에서는 0이 False이기에 False가 반환.

- all([ ])에서는 all 안에 비어있는 리스트를 넣은 것이기에 True를 반환.

- all([ ])이 True를 반환하는 것이 이상하게 느껴진다.

 

3) any

any(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x의 요소가 하나라도 참이면 True, 모두 거짓이라면 False를 돌려준다. all과 반대. 

# any([3,2,1,0])
#True
# any([])
#False
any([0,"",[]])
#Flase

 

4) chr

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

chr(97)
#'a'
chr(48)
#'0'
chr(77)
#'M'

 

5) dir

dir은 객체가 자체적으로 가지고 있는 변수나 함수를 보여준다. 메뉴얼 같은 것. 잘 사용하지 않음.

dir([1,2,3])
#['__add__', '__class__', ..., 'remove', 'reverse', 'sort']

 

6) divmod

divmod(a,b)는 2개의 숫자를 입력으로 받고 a를 b로 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수.

divmod(8,2)
#(4, 0)
divmod(9,5)
#(1,4)
divmod(84,13)
#(6,6)

 

7) enumerate

enumerate는 '열거하다'라는 뜻이다. 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate객체를 돌려준다. enumerate를 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다. for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인덱스 값이 필요할 때 enumerate함수가 유용.

for i, food in enumerate(['pizza','pasta','noodle']):
    print(i,food)
#0 pizza
#1 pasta
#2 noodle

 

8) eval

eval(expression)은 실행 가능한 문자열을 입력으로 받아 문자열을 실행한 결과값을 돌려주는 함수.

eval('4+8')
#12
eval("'hello' + 'world'")
#'helloworld'
eval('divmod(7,3)')
#(2, 1)

 

9) filter**

filter 함수는 첫 번째 인수로 함수 이름을 받고, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 그리고 두 번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서 반환한다. lamda를 사용하면 더욱 간결하게 코드를 작성할 수 있다.

#옛날 방식
def positive(k):
    result = []
    for i in k:
        if i > 0:
            result.append(i)
    return result
print(positive([3,-5,1,23,100,-3,5,-99]))
#[3, 1, 23, 100, 5]

#filter 사용
def positive(x):
    return x > 0
print(list(filter(positive, [3,-5,1,23,100,-3,5,-99])))
# [3, 1, 23, 100, 5]

#lambda 사용
list(filter(lambda x: x>0, [3,-5,1,23,100,-3,5,-99]))
# [3, 1, 23, 100, 5]

 

10) hex

hex(x)는 정수 값을 입력받아 16진수(hexadecimal)로 변환하여 돌려주는 함수.

hex(345)
#0x159
hex(0)
#0x0
hex(26)
#0x1a

 

11) id

id는 객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수.

a = 7
b = a
c = 5
print(id(7)) # 94679978789568
print(id(a)) # 94679978789568
print(id(b)) # 94679978789568
print(id(c)) # 94679978789504

 

12) int

int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수.

int('7') #7
int(3.14) #3.14
int('-3') #-3

int(x, radix)는 radix 진수로 표현된 문자열을 x를 10진수로 변환하여 돌려준다.

int('101011',2) #43
int('23A',16) #570

 

13) isinstance

isinstance(object, class)는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다. 입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려준다.

class Name: pass
a = Name()
isinstance(a, Name)
#True
b = 3
isinstance(b, Name)
#False

 

14) map**

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

def four_times(nums):
    result = []
    for num in nums:
        result.append(num*4)
    return result
result = four_times([1,2,3,4,5,6,7,8,9])
print(result)
#[4, 8, 12, 16, 20, 24, 28, 32, 36]

#map 사용
def four_times(x):
    return x*4
list(map(four_times,[1,2,3,4,5,6,7,8,9]))
#[4, 8, 12, 16, 20, 24, 28, 32, 36]

#lambda 사용
list(map(lambda a: a*4,[1,2,3,4,5,6,7,8,9]))
#[4, 8, 12, 16, 20, 24, 28, 32, 36]

 

15) max

max(iterable)는 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수. 문자열은 아스키 코드 기준.

max([5,4,3,2,1]) #5
max("Hello World") #r
max("aA") #a

 

16) ord

ord(c)는 문자의 아스키 코드 값을 돌려주는 함수로 chr과 반대이다. 아스키 코드 크기는 숫자 < 대문자 < 소문자.

ord('a') #97
ord('A') #65
ord('7') #7

 

17) pow

pow(x,y)는 x의 y제곱 결과값을 돌려주는 함수.

pow(2,10) #1024
pow(3,4) #81
pow(8,2) #64

 

18) round

round(number[, ndigits]) 함수는 숫자를 입력받아 반올림 해주는 함수. round 함수의 두 번째 매개변수는 반올림하여 표시하고 싶은 소수점의 자리수(ndigits)이다.

round(2.1) #2
round(8.5) #8
round(5.8) #6
round(3.141692,2) 3.14

 

19) sorted

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

sorted([3,2,7,1])
#[1, 2, 3, 7]
sorted(['k','c','i'])
#['c', 'i', 'k']
sorted("python")
#['h', 'n', 'o', 'p', 't', 'y']

 

20) sum

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

sum([34,56,23]) #113
sum((23,45,55)) #123
sum(list(range(1,10))) #45

 

21) zip

zip(*iterable)은 동일한 개수로 이루어진 자료형을 묶어주는 함수이며 반복 가능한 자료형 여러 개를 입력할 수 있다.

list(zip([0,2,4,6,8,],[1,3,5,7,9]))
#[(0, 1), (2, 3), (4, 5), (6, 7), (8, 9)]

list(zip([0,1],[2,3],[4,5],[6,7],[8,9]))
#[(0, 2, 4, 6, 8), (1, 3, 5, 7, 9)]

list(zip("sky", "cup"))
#('s', 'c'), ('k', 'u'), ('y', 'p')]

댓글