Py_정리. 내장함수
내장함수
abs
abs(x)는 어떤 숫자를 입력받았을 때, 그 숫자의 ( 절대값 )을 돌려주는 함수이다.
abs(3)
=> 3
abs(-3)
=> 3
abs(-1.2)
=> 1.2
all
all(x)는 반복 가능한(iterable)자료형 x를 입력 인수로 받으며,
이 x의 요소가 모두 참이면 True, \
거짓이 하나라도 있으면 False를 돌려준다
※ 반복 가능한 자료형? for 문으로 그 값을 출력할 수 있는 것을 의미. ex) 리스트, 튜플, 문자열, 딕셔너리, 집합 등이 있다.
all([1, 2, 3])
=> True
all([1, 2, 3, 0])
=> False
# 요소 0은 거짓
all([])
=> True
※ 자료형의 참과 거짓 참고
any
any(x)는 반복 가능한(iterable) 자료형 x를 입력 인수로 받으며,
이 x의 요소 중 하나라도 참이 있으면 True \
x가 모두 거짓일 때에만 False => all(x)의 반대이다
any([1, 2, 3, 0])
=> True
any([0, ""])
=> False
# [0, ""]의 요소 0과 ""은 모두 거짓
any([])
=> False
# 입력 인수가 빈 값인 경우에는 False를 리턴
input
input([prompt])은 사용자 입력을 받는 함수
매개변수로 문자열을 주면, 그 문자열은 프롬프트가 된다.
※ [ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법임을 기억하자.
a = input()
=> hi
# a ='hi'
b = input("Enter: ")
=> Enter : hi
# b = 'hi'
int
int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수
정수를 입력으로 받으면 그대로 돌려준다.
int('3')
=> 3
int('1A', 16)
=> 26
isinstance
isinstance(object, class )는 첫 번째 인수로 인스턴스, 두 번째 인수로 클래스 이름을 받는다.
입력으로 받은 인스턴스가 그 클래스의 인스턴스인지를 판단하여
참이면 True, 거짓이면 False를 돌려준다.
class Person:pass
...
a = person()
isinstance(a, Person)
=> True
# a 가 Person클래스가 만든 인스턴스임을 확인시켜준다.
b = 3
isinstance(b,Person)
=> False
# b는 Person 클래스가 만든 인스턴스가 아니므로 False를 돌려준다.
len
len(s)은 입력값 s의 길이(요소의 전체 개수)를 돌려주는 함수
len("python")
=> 6
len([1,2,3])
=> 3
len((1, 'a'))
=> 2
list
list(s)는 반복 가능한 자료형 s를 입력받아, 리스트로 만들어 돌려주는 함수
list("python")
=> ['p', 'y', 't', 'h', 'o', 'n']
list((1,2,3))
=> [1, 2, 3]
# ist 함수에 리스트를 입력으로 주면, 똑같은 리스트를 복사하여 돌려준다.
a = [1, 2, 3]
b = list(a)
b
=> [1, 2, 3]
max
max(iterable)는 인수로 반복 가능한 자료형을 입력받아,
그 최댓값을 돌려주는 함수
max([1, 2, 3])
=> 3
max("python")
=> 'y'
min
min(iterable)은 max 함수와 반대로, 인수로 반복 가능한 자료형을 입력받아 ,
그 최솟값을 돌려주는 함수
min([1, 2, 3])
=> 1
min("python")
=> 'h'
open
open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수
읽기 방법(mode)을 생략하면 기본값인 읽기 전용 모드(r)로 파일 객체를 만들어 돌려준다.
w => 쓰기 모드로 파일 열기
r => 읽기 모드로 파일 열기
a => 추가 모드로 파일 열기
b => 바이너리 모드로 파일 열기
f = open("binary_file", "rb")
# b는 w,r,a와 함께 사용한다.
# rb는 "바이너리 읽기 모드"를 의미
fread = open("read_mode.txt", 'r')
fread2 = open("read_mode.txt")
# 모드 부분을 생략하면 기본값으로 읽기 모드 r를 갖게 된다.
fappend = open("append_mode.txt", 'a')
# 추가 모드(a)로 파일을 여는 예이다.
pow
pow(x, y)는 x의 y 제곱한 결괏값을 돌려주는 함수
pow(2, 4)
=> 16
pow(3, 3)
=> 27
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]
round
숫자를 입력받아 반올림해 주는 함수.
round(4.6)
=> 5
rount(4.2)
=> 4
# rount(실수, 소수점 자리)
round(5.678, 2)
=> 5.68
sorted
입력값을 정렬한 후 그 결과를 리스트로 돌려주는 함수
리스트 자료형에도 sort 함수가 존재하지만,
리스트 자료형의 sort함수는 리스트 객체 그 자체를 정렬만 할뿐 값은 돌려주지 않는다.
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]
str
문자열 형태로 객체를 반환하여 돌려주는 함수
str(3)
=> '3'
str('hi')
'hi'
str('hi'.upper())
=> 'HI'
sum
입력받은 리스트나 튜플이 모든 요소의 합을 돌려주는 함수
sum([1, 2, 3])
=> 6
sum((4,5,6))
=> 15
tuple
반복 가능한 자료형을 입력받아, 튜플 형태로 바꾸어 돌려주는 함수
만약, 튜플이 입력으로 들어오면 그대로 돌려준다.
tuple("abc")
=> ('a', 'b', 'c')
tuple([1, 2, 3])
=> (1, 2, 3)
tuple((1, 2, 3))
=> (1, 2, 3)
divmod
2개의 숫자를 입력으로 받고, 나눈 몫과 나머지를 튜플 형태로 돌려주는 함수
divmod(7, 3)
=> (2, 1)
zip
동일한 개수로 이루어진 자료형을 묶어 주는 역할을 하는 함수
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')]
enumerate ( 열거하다)
순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아,
인덱스 값을 포함하는 enumerate 객체를 돌려준다.
※ 보통 for문과 함께 자주 사용한다.
for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)
=> 0 body
1 foo
2 bar
# 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.
# for문 처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려주는 인덱스 값이 필요할 때 사용하면 유용하다.
eval
실행 가능한 문자열(1+2, 'hi' + 'a' 같은 것)을 입력으로 받아,
문자열을 실행한 결괏값을 돌려주는 함수
※ 보통 eval은 입력받은 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용한다.
eval('1+2')
=> 3
eval("'hi' + 'a'")
=> 'hia'
eval('divmod(4, 3)')
=> (1, 1)
map
함수와 반복가능한 자료형을 입력으로 받고,
입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수
def two_times(numberList):
result = []
for number in numberList:
result.append(number * 2)
return result
result = two_ times([1, 2, 3, 4])
print(result)
=> [2, 4, 6, 8]
# two_times 함수는 리스트 요소를 입력받아 각 요소에 2를 곱한 결괏값을 돌려준다.
여기에 map 함수를 사용하자
def two_times(x):
return x*2
list (map(two_times, [1, 2, 3, 4]))
=> [2, 4, 6, 8]
# 먼저 리스트의 첫 번째 요소인 1이 two_times 함수의 입력값으로 들어가고 1 * 2의 과정을 거쳐서 2가 된다
# 리스트의 두 번째 요소인 2가 2 * 2 의 과정을 거쳐 4가 된다.
# 따라서, 결괏값 리스트는 이제 [2,4]가 된다.
# 총 4개의 요솟값이 모두 수행되면 마지막으로 [2, 4, 6, 8]을 돌려준다.
※ map의 결과를 리스트로 보여 주기위해 list함수를 사용하여 출력하였다.
이것을 lambda 를 이용하면 더욱 간편하게 코드를 작성할 수있다.
list(map(lambda a: a*2, [1, 2, 3, 4]))
=> [2, 4, 6, 8]
filter
무엇인가를 걸러낸다는 뜻
첫 번째 인수로 함수 이름을,
두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다,
그리고
자료형 요소가 첫 번째 인수인 함수에 입력되었을 때,
반환 값이 참인 것만 묶어서(걸러 내서) 돌려준다.
def positive(1):
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함수를 사용해서 간단하게 줄여보자.
def positive(x):
return v > 0
print(list(filter(positive, [1, -3, 2, 0, -5, 6])))
=> [ 1, 2, 6]
이것을 lambda 를 이용하면 더욱 간편하게 코드를 작성할 수있다.
list(filter(lambda x:x>0, [1, -3, 2, 0, -5, 6]))
=> [ 1, 2, 6]
chr
chr(i)는 유니코드(Unicode) 값을 입력받아, 그 코드에 해당하는 문자를 출력하는 함수
※ 유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다.
chr(97)
=> 'a'
chr(44032)
=> '가'
ord
문장의 유니코드 값을 돌려주는 함수
※ ord함수는 chr 함수와 반대이다.
ord('a')
=> 97
ord('가')
=> 44032
oct
정수 형태의 숫자를 8진수 문자열로 바꿔 돌려주는 함수
oct(34)
=> '0042'
oct(12345)
=> '0o30071'
hex
정수 값을 입력받아 16진수(hexadecimal)로 변환
hex(234)
=>'0xea'
hex(3)
=>'0x3'
id
객체를 입력받아 객체의 고유 주소 값(레퍼런스)을 돌려주는 함수
a = 3
id(3)
=> 135072304
id(a)
=> 135072304
b= a
id(b)
=> 135072304
dir
객체가 자체적으로 가지고 있는 변수나 함수를 보여준다
※ 리스트와 딕셔너리 객체 관련 함수(메서드)를 보여 주는 예시
dir([1, 2, 3])
=> ['append', 'count', 'extend', 'index', 'insert', 'pop',...]
dir({'1':'a'})
=> ['clear', 'copy', 'get', 'has_key', 'items', 'keys',...]