본문 바로가기
Programming/Python

파이썬 코딩 따라하기(기본) - 내장함수 모음

by Deongeun 2021. 1. 25.

 

내장함수

파이썬 라이브러리 안에 이미 내장되어 있는 내장함수들은 별도의 import 필요없이 사용가능하다.

 

abs

: 어떤 숫자를 입력으로 받았을때, 그 숫자의 절대값을 돌려주는 함수

>>>abs(3)
3
>>>abs(-2)
2
>>>abs(-1.2)
1.2

 

 

 

 

 

all

: 반복가능한 자료형(for문으로 그 값을 출력할 수 있는 것을 의미_리스트, 튜플, 문자열, 딕셔너리, 집합)을 입력인수로 받아서,

참이면 True, 거짓이 하나라도 있으면 False

>>>all([1,2,3])
True

>>>all([1,2,3,0])
False

- 리스트 자료형에서 0은 거짓이다.

 

 

 

 

any

하나라도 참이 있을 경우 True, 모두 거짓일 경우에만 False (all과 반대개념)

>>>any([1,2,3,0])
True

>>>any([0,""])
False

- 리스트 자료형에서 1,2,3이 True임으로 True

- 리스트 자료형에서 0, ""이 둘다 거짓임으로 False

 

 

 

 

 

chr

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

* 아스키 코드: 0-127 사이에 숫자들을 각각 하나의 문자 또는 기호에 대응시켜놓은것

>>>chr(97)
'a'
>>>chr(48)
'0'

 

 

 

 

dir

:객체가 자체적으로 가지고 있는 변수나 함수를 보여준다

>>>print(dir())
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']

>>>import random
print(dir())
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'random']

>>>import pickle
print(dir())
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'pickle', 'random']
>>>lst = [1,2,3]
>>>print(dir(lst))
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']


>>>dic = ({1:'a'})
>>>print(dir(dic))
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']

 

 

 

 

divmod(a,b)

: 2개의 숫자를 입력으로 받아서 a를 b로 나눈 몫과 나머지를 튜플 형태로 리턴한다

>>>print(divmod(5,4))
(1, 1)

>>>print(divmod(3.9,1.2))
(3.0, 0.30000000000000004)

 

 

 

 

enumerate

: 순서가 있는 자료형을 입력값으로 받아서 인덱스와 값을 포함하는 enumerate 객체를 리턴한다

-> 순서형 자료의 인덱스와 값을 전달하는 기능을 하는 함수

 

>>>s1 = ["eat", "sleep", "pray"]
>>>print(list(enumerate(s1))
...
[(0, 'eat'), (1, 'sleep'), (2, 'pray')]

>>>for i,name in enumerate(['eat','sleep','pray']):
...    print(i,name)
...
0 eat
1 sleep
2 pray

- 반복되는 구간에서 해당객체의 위치값까지 알 수 있기 때문에 매우 유용하다.

 

 

 

 

eval

: 실행가능한 문자열(1+2, 'hi' + 'a') 을 입력으로 받아 실행한 결과값을 리턴한다.

  입력받은 문자열 형태의 자료형을 숫자로 변형하여 연산할 수 있게 해주는 것이다. 

>>>eval('1+1')
2

>>>eval('"he" + "llo"')
hello

>>>eval('divmod(5,4)')
(1,1)
#만약에 eval이 없다면
>>>print('1+1')
1+1

 

 

 

 

filter

: 두개의 인수를 받는데, (첫번째 인수 - 함수 이름), (두번째 인수 - 그 함수에 차례로 들어갈 반복가능한 자료형)

그리고 두번째 인수가 첫번째 인수인 함수에 입력되었을때 리턴값이 참인 것만 묶어서 돌려준다.

 

<1~10까지의 리스트중에 5보다 큰 숫자만 출력하기>

>>>def filter_func(x):
...	   return x>5
...
print(list(filter(filter_func,[1,2,3,4,5,6,7,8,9,10])

[6,7,8,9,10]

 

 

 

 

 

hex

: 정수값을 받아서 16진수로 변환하여 리턴하는 함수

>>>print(hex(123))
0x7b

>>>print(hex(3))
0x3

 

 

 

 

 

id

: 객체를 입력받아 객체의 고유 주소값을 리턴하는 함수

>>>a = b = c = 1
>>>print(id(a))
>>>print(id(b))
>>>print(id(c))
>>>print(id(1))

140730407454368
140730407454368
140730407454368
140730407454368

 

 

 

 

 

input

: 사용자 입력을 받는 함수

입력인수로 문자열을 주면 해당 문자열을 실행한다

>>>First = input("안녕이라고 인사하세요")
>>>print(First)

안녕이라고 인사하세요 Hello
Hello

 

 

 

 

 

int

: 문자열 형태의 숫자나 소수점이 있는 숫자를 정수 형태로 리턴한다

>>>int('1')
1
>>>int(-1)
1
>>>int(1.2)
1

 

 

 

 

 

isinstance

: isinstance(object, class) 의 형태로 (첫번째 인수: 인스턴스), (두번째 인수:클래스) 가 오는데 입력받은 인스턴스가 그 클래스의 인스턴스인지 판단하여 True나 False를 리턴한다.

>>>class Snow:
...	  pass

>>>a = Snow()
>>>b = 4

>>>print(isinstance(a,Snow))
True
>>>print(isinstance(b,Snow))
False

 

 

 

 

 

lambda

: 함수를 생성할 때 사용하는 예약어(= def)

def를 사용해야할 정도로 복잡하지 않거나 def를 사용할 수 없는 곳에 주로 쓰인다.

<lamba 인수1, 인수2, ... : 인수를 이용한 표현식>

>>>sum = lambda a,b:a+b
>>>print(sum(1,1))
2

 

def 를 사용할 수 없는 경우, (리스트 요소로 lamda 함수를 넣을 수 있다)

>>>example = [lambda a,b:a+b, lambda a,b:a-b]
>>>print(example[0](1,2))
3
>>>print(example[1](5,4))
1

 

 

 

 

 

len

: 입력값의 길이(요소의 전체 개수)를 리턴한다

>>>print(len('Hello'))
5
>>>print(len([1,2,3,4,5]))
5
>>>print(len((1,'a')))
2

 

 

 

 

list

:  반복가능한 자료형을 입력받아서 리스트로 만들어 리턴한다

* 리스트를 입력하면 그대로 리스트를 리턴한다

>>>print(list('Hello'))
['H','e','l','l','o']

>>>print(list((1,2,3,4,5)))
[1,2,3,4,5]

>>>a = ['a','b','c']
>>>print(list(a))
['a','b','c']

 

 

 

 

 

map

: 두개의 인수를 입력받는데,

(첫번째 인수 : 함수), (두번째 인수 : 반복가능한 자료형) 을 받아서 입력받은 자료형이 함수에 의해 수행된 결과를 리턴한다.

def one_plus_one(numlist):
	result = []
	for number in numlist:
    	result.append(number+1)
    return result
    
print(one_plus_one([1,2,3,4,5]))

 

위와 같은 함수를 map을 이용해 표현하면,

def one_plus_one(x):
	return x+1
print(list(map(one_plus_one,[1,2,3,4,5])))

* map의 결과를 리스트로 보여주기 위해 list함수를 이용하여 출력한다

 

그리고 lambda를 이용해 표현하면 다음과 같다.

print(list(map(lambda x:x+1, [1,2,3,4,5])))

 

 

 

 

min/max

: 반복가능한 자료형을 입력받아 그 최솟값/ 최댓값을 리턴한다.

>>>print(min([1,2,3,4,5]))
1
>>>print(max([1,2,3,4,5]))
5
>>>print(min('hello'))
e
>>>print(max('hello'))
o

 

 

 

 

 

open

: open('filename', 'mode') 을 입력받아 파일 객체를 리턴한다.

여기서 mode -> 읽기방법이 생략되면 기본값이 r로 적용된다.

모드 설명
w 쓰기모드로 파일열기
r 읽기모드로 파일열기
a 추가모드로 파일열기
b 바이너리 모드로 파일열기

 

>>>f = open("Binary file","rb")

 * 바이너리 모드일때는 w,r,a 모드 뒤에 'b'를 붙여주면 된다.

 

>>>file = open("filename.txt" , "r")
>>>file = open("filename.txt")

* '읽기방법'이 생략되면 기본값이 r이기 때문에 위 아래 결과값은 똑같다.

 

 

 

 

 

pow

: pow(x,y) x의 y제곱한 결과값을 리턴한다.

>>>pow(2,5)
32
>>>pow(3,3)
27

 

 

 

 

 

range

: for문과 함께 자주사용되는 함수로, 입력받은 숫자 범위의 값을 반복가능한 객체로 만들어 리턴한다.

 

- 인수가 1개일 경우

시작숫자를 정하지 않으면 range함수는 0부터 시작한다.

>>>list(range(5))
[0,1,2,3,4]

 

 

- 인수가 2개일 경우

시작 숫자와 끝 숫자를 나타내는데, 끝 숫자는 해당 범위에 포함되지 않는다.

>>>list(range(5,10))
[5,6,7,8,9]

 

 

- 인수가 3개일 경우

세번째 인수는 숫자 사이 거리를 의미한다.

>>>list(range(2,10,2))
[2,4,6,8]

>>>list(range(-10,-15,-1))
[-10,-11,-12,-13,-14]

 

 

 

 

 

sorted

: 입력값을 정렬해서 리스트로 리턴한다.

>>>sorted([3,5,2,1,4])
[1,2,3,4,5]

>>>sorted(['b','d','c','e','a'])
['a','b','c','d','e']

>>>sorted("one")
['e','n','o']

* 리스트 자료형에 sort라는 함수가 있는데, 이는 리스트 자체를 정렬만 하고 결과를 리턴하지 않는다.

>>>a = [2,1,4,5,3]
>>>result = a.sort()
>>>print(result)
None #리턴값이 없어서 result 변수에 저장되는 값이 없다/ None이 출력된다

>>>print(a) 
[1,2,3,4,5]

 

 

 

 

str

:  문자열 형태로 객체를 변환하여 리턴한다

>>>str(1)
'1' # 숫자가 아닌 문자열인 상태

>>>str('HELLO')
'HELLO'

 

 

 

 

 

tuple

: 반복가능한 자료형을 입력받아 튜플형태로 바꿔서 리턴한다

>>>tuple("HELLO")
('H','E','L','L','O')

>>>tuple([1,2,3,4,5])
(1,2,3,4,5)

 

 

 

 

 

type

: 입력받은 값의 자료형이 뭔지 알려준다.

>>>type("HELLO")
<class 'str'>

>>>type(12345)
<class 'int'>

>>>type([1,2,3,4,5])
<class 'list'>

>>>type(open("file","r"))
<class '_io.TextIOWrapper'>

 

 

 

 

 

zip

: 동일한 개수로 이뤄진 자료형을 묶어주는 역할을 한다.

>>>list(zip([1,2,3],[4,5,6]))
[(1,4),(2,5),(3,6)]

>>>list(zip('abc','def'))
[('a','d'),('b','e'),('c','f')]

>>>list(zip([1,2],['a','b']))
[(1,'a'),(2,'b')]

>>>A = [1,2,3]
>>>B = ['a','b','c']
>>>for i in zip(A,B):
...	print(i)
...
(1,'a')
(2,'b')
(3,'c')