Language/Python

Py_정리. 내장함수

Sumni Life 2021. 5. 24. 13:18

내장함수

 

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',...]