Python
에서 내장 함수는 외부 Module
과 달리 import
없이 바로 사용할 수 있다.
abs(x)
는 어떤 숫자를 입력받았을 때, 그 숫자의 절댓값을 돌려주는 함수이다.
all(x)
는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x의 요소가 모두 참이면 True, 거짓이 하나라도 있으면 False를 돌려준다.
반복 가능한 자료형 : for문으로 그 값을 출력할 수 있는 것을 의미
리스트, 튜플, 문자열, 딕셔너리, 집합 등
all([1, 2, 3])
# True
# 리스트 자료형 [1, 2, 3]은 모든 요소가 참이므로 True를 돌려준다.
all([1, 2, 3, 0])
# False
# 리스트 자료형 [1, 2, 3, 0] 중에서 요소 0은 거짓이므로 False를 돌려준다.
all([])
# True
# 만약 all의 입력 인수가 빈 값인 경우에는 True를 리턴한다.
any(x)
는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며 이 x의 요소 중 하나라도 참이 있으면 True를 돌려주고, x가 모두 거짓일 때에만 False를 돌려준다.
all(x)의 반대
any([1, 2, 3, 0])
# True
# 리스트 자료형 [1, 2, 3, 0] 중에서 1, 2, 3이 참이므로 True를 돌려준다.
any([0, ""])
# False
# 리스트 자료형 [0, ""]의 요소 0과 ""은 모두 거짓이므로 False를 돌려준다.
any([])
# False
# 만약 any의 입력 인수가 빈 값인 경우에는 False를 리턴한다.
chr(i)
는 아스키(ASCII) 코드 값을 입력받아 그 코드에 해당하는 문자를 출력하는 함수이다.
dir은 객체가 자체적으로 가지고 있는 변수나 함수를 보여 준다.
# 리스트와 딕셔너리 객체 관련 함수(메서드)를 보여 주는 예
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)
# 7 // 3 = 2, 7 % 3 = 1
enumerate
는 "열거하다"라는 뜻으로, 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다.
for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)
'''
0 body
1 foo
2 bar
'''
eval(expression)
은 실행 가능한 문자열(1+2, 'hi' + 'a' 같은 것)을 입력으로 받아 문자열을 실행한 결괏값을 돌려주는 함수이다.
print(eval("'gil'+'log'"))
# gillog
filter
함수는 첫 번째 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다.
그리고 두 번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서(걸러 내서) 돌려준다.
#positive.py
def positive(l):
result = []
for i in l:
if i > 0:
result.append(i)
return result
print(positive([1,-3,2,0,-5,6]))
# 결과값: [1, 2, 6]
위 예제의 positive 함수는 리스트를 입력값으로 받아 각각의 요소를 판별해서 양수 값만 돌려주는 함수이다.
filter
함수를 사용하면 위 내용을 아래와 같이 간단하게 작성할 수 있다.
#filter1.py
def positive(x):
return x > 0
print(list(filter(positive, [1, -3, 2, 0, -5, 6])))
# 결과값: [1, 2, 6]
여기에서는 두 번째 인수인 리스트의 요소들이 첫 번째 인수인 positive 함수에 입력되었을때 반환 값이 참인 것만 묶어서 돌려준다.
앞의 예에서는 1, 2, 6만 양수여서 x > 0 문장이 참이되므로 [1, 2, 6]이라는 결괏값을 돌려주게 된 것이다.
앞의 함수는 lambda를 사용하면 더욱 간편하게 코드를 작성할 수 있다.
list(filter(lambda x: x > 0, [1, -3, 2, 0, -5, 6]))
# [1, 2, 6]
hex(x)
는 정수 값을 입력받아 16진수(hexadecimal)로 변환하여 돌려주는 함수이다.
print(hex(234))
# '0xea'
id(object)
는 객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수이다.
a = 3
b = a
print(id(a))
print(id(3))
print(id(b))
print(id(5))
'''
140723623176032
140723623176032
140723623176032
140723623176096
'''
input([prompt])
은 사용자 입력을 받는 함수이다.
매개변수로 문자열을 주면 그 문자열은 프롬프트가 된다.
[ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법
b = input("Enter: ")
Enter: hi
int(x)
는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수로, 정수를 입력으로 받으면 그대로 돌려준다.
isinstance(object, class )
는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다. 입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여 참이면 True, 거짓이면 False를 돌려준다
len(s)
은 입력값 s의 길이(요소의 전체 개수)를 돌려주는 함수이다.
list(s)
는 반복 가능한 자료형 s를 입력받아 리스트로 만들어 돌려주는 함수이다.
map(f, iterable)
은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다.
map()
은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.
max(iterable)
는 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수이다.
min(iterable)
은 max 함수와 반대로, 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 돌려주는 함수이다.
oct(x)
는 정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려주는 함수이다.
print(oct(32))
# 0o40
open(filename, [mode])
은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수이다.
읽기 방법(mode)을 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 돌려준다.
mode | 설명 |
---|---|
w | 쓰기 모드로 파일 열기 |
r | 읽기 모드로 파일 열기 |
a | 추가 모드로 파일 열기 |
b | 바이너리 모드로 파일 열기 |
b는 w, r, a와 함께 사용한다.
f = open("binary_file", "rb")
# rb는 "바이너리 읽기 모드"를 의미한다.
ord(c)
는 문자의 아스키 코드 값을 돌려주는 함수이다.
print(ord('a'))
# 97
pow(x, y)
는 x의 y 제곱한 결괏값을 돌려주는 함수이다.
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]
round(number[, ndigits])
함수는 숫자를 입력받아 반올림해 주는 함수이다.
두 번째 매개변수는 반올림하여 표시하고 싶은 소수점의 자릿수(ndigits)
print(round(5.678, 2))
# 5.68
sorted(iterable)
함수는 입력값을 정렬한 후 그 결과를 리스트로 돌려주는 함수이다.
sorted([3, 1, 2])
# [1, 2, 3]
sorted((3, 2, 1))
# [1, 2, 3]
sorted(['a', 'c', 'b'])
# ['a', 'b', 'c']
sorted("zero")
# ['e', 'o', 'r', 'z']
리스트 자료형에도 sort
함수가 있다.
하지만 리스트 자료형의 sort
함수는 리스트 객체 그 자체를 정렬만 할 뿐 정렬된 결과를 돌려주지는 않는다.
str(object)
은 문자열 형태로 객체를 변환하여 돌려주는 함수이다.
sum(iterable)
은 입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 함수이다.
tuple(iterable)
은 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려주는 함수이다.
tuple("abc")
# ('a', 'b', 'c')
tuple([1, 2, 3])
# (1, 2, 3)
tuple((1, 2, 3))
#(1, 2, 3)
type(object)
은 입력값의 자료형이 무엇인지 알려 주는 함수이다.
type("abc")
# <class 'str'>
type([ ])
# <class 'list'>
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')]