점프 투 파이썬 - 내장 함수
Language/Python

점프 투 파이썬 - 내장 함수

뉴비뉴 2019. 7. 15.

abs(절대값)

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

>>> abs(-1.2)
1.2
>>> print("-1의 절대값은 %d" % abs(-1))
-1의 절대값은 1

all(모두 참)

all(x)는 반복 가능한 자료형(반복 가능한 자료형이란 for 문으로 그 값을 출력할 수 있는 것을 의미한다.

리스트, 튜플, 문자열 딕셔너리, 집합 등이 있다.) x를 입력 인수로 받으며 이 x가 모두 참이면 True, 거짓이

하나라도 있으면 False를 돌려준다.

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

any(하나만 참)

any(x)는 x 중 하나라도 참이 있으면 True를 돌려주고, x가 모두 거짓일 때만 False를 돌려준다. all(x)의 반대이다.

>>> any([0,0,1])
True
>>> any([0,0,0])
False
>>> any({1,1,1})
True

chr(아스키코드->문자)

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

>>> chr(66)
'B'
>>> chr(65)
'A'

dir

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

dir() 어떤 객체를 인자로 넣어주면 해당 객체가 어떤 변수와 메소드(method)를 가지고 있는지 나열해줍니다.

divmod(몫과 나머지)

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

>>> divmod(7,3)
(2, 1)

>>> 7 // 3
2 # 몫
>>> 7 % 3
1 # 나머지

enumerate

enumerate는 "열거하다"라는 뜻이다. 이 함수는 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스 값을 포함하는 enumberate 객체를 돌려준다.

>>> t = [1,5,7,33,39,52]
>>> for p in enumerate(t):
...     print(p)
...
(0, 1)
(1, 5)
(2, 7)
(3, 33)
(4, 39)
(5, 52)


>>> for i, name in enumerate(['body', 'foo', 'bar']): # i는 생략해도 위 처럼 index 가 출력!
...     print(i, name)
...
0 body
1 foo
2 bar

위와 같이 for문과 함께 사용하면 자료형의 현재 순서(index)와 그 값을 쉽게 알 수 있다.

for문처럼 반복되는 구간에서 객체가 현재 어느 위치에 있는지 알려 주는 인덱스 값이 필요할때 enumerate 함수를 사용하면 매우 유용하다.

eval

eval(expression)은 실행 가능한 문자열(1+2,'hi'+'a'같은 것)을 입력으로 받아 문자열을 실핸한 결과값을 돌려주는 함수

>>> eval('1+2')
3
>>> eval("'hi' + 'a'")
'hia'
>>> eval('divmod(4, 3)')
(1, 1)

보통 eval함수는 문자열로 파이썬 함수나 클래스를 동적으로 실행하고 싶을 때 사용한다.

filter(함수이름,반복 가능한 자료형)

filter란 걸러낸다는 뜻으로 첫 번재 인수로 함수 이름을, 두 번째 인수로 그 함수에 차례로 들어갈 반복 가능한 자료형을 받는다. 그리고 두 번째 인수인 반복 가능한 자료형 요소가 첫 번째 인수인 함수에 입력되었을 때 반환 값이 참인 것만 묶어서(걸러 내서) 돌려준다.

#filter1.py
def positive(x):
    return x > 0

print(list(filter(positive, [1, -3, 2, 0, -5, 6]))) # positive함수를 걸러낸다.

결과값: [1, 2, 6]

# 두 번째 인수인 리스트의 요소들이 첫 번째 인수인 positive 함수에 입력되었을때 반환 값이 참인 것만 묶어서 돌려준다.

filter 함수는 lambda를 사용하면 더욱 간편하게 코드를 작성할 수 있다.

>>> list(filter(lambda x: x > 0, [1, -3, 2, 0, -5, 6]))
[1, 2, 6]

lambda 인자 : 표현식

두 수를 더하는 함수입니다.

>>> def hap(x, y):
...   return x + y
...
>>> hap(10, 20)
30

이것을 람다 형식으로는 어떻게 표현할까요?

>>> (lambda x,y: x + y)(10, 20)
30

hex

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

>>> hex(16)
'0x10'
>>> hex(17)
'0x11'

id

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

>>> a = 3
>>> id(3)
1510433920
>>> id(a)
1510433920
>>> b = a
>>> id(b)
1510433920

위 예의 3, a, b는 고유 주소 값이 모두 135072304이다. 즉 3, a, b가 모두 같은 객체를 가리키고 있다.

만약 id(4)라고 입력하면 4는 3, a, b와 다른 객체이므로 당연히 다른 고유 주소 값이 출력된다.

input

input([prompt])은 사용자 입력을 받는 함수이다. 매개변수로 문자열을 주면 다음 세 번째 예에서 볼 수 있듯이 그 문자열은 프롬프트가 된다.

※ [ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법임을 기억하자.

>>> a = input()
hi
>>> a
'hi'
>>> b = input("Enter: ")
Enter: hi

위에서 입력받은 문자열을 확인해 보면 다음과 같다.

>>> b
'hi'

int

int(x)는 문자열 형태의 숫자나 소수점이 있는 숫자 등을 정수 형태로 돌려주는 함수로, 정수를 입력으로 받으면 그대로 돌려준다.

>>> int('3') # 문자열을 숫자로 변경
3
>>> int(3.4)
3

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

2진수로 표현된 11의 10진수 값은 다음과 같이 구한다.

>>> int('1A', 16)
26

isinstance(인스턴스,클래스이름)

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

>>> class Person: pass
...
>>> a = Person()
>>> isinstance(a, Person) # a 가 Person 클래스가 만든 인스턴스임을 확인시켜 준다.
True

>>> b = 3
>>> isinstance(b, Person)
False

len

len(s)은 입력값 s의 길이(요소의 전체 개수)를 돌려주는 함수이다.

>>> len('12345')
5
>>> len([1,2,3])
3
>>> 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]

>>> a = [1, 2, 3]
>>> b = list(a)
>>> b
[1, 2, 3]

map

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

map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.

# two_times.py
def two_times(numberList):
    result = [ ]
    for number in numberList: # [1,2,3,4] 를 number 안에 넣는다.
        result.append(number*2) # 1*2 , 2*2, 3*2, 4*2
    return result # 결과를 result에 반환한다.

result = two_times([1, 2, 3, 4]) 
print(result)

>>> 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(map(lambda a: a*2, [1,2,3,4])) # a 인자에다가 a*2를 저장한다. a의 값은 [1,2,3,4]
[2, 4, 6, 8]

max

max(iterable)는 인수로 반복 가능한 자료형을 입력받아 그 최댓값을 돌려주는 함수이다.

>>> max([1, 2, 3])
3
>>> max("python")
'y'

min

min(iterable)은 max 함수와 반대로, 인수로 반복 가능한 자료형을 입력받아 그 최솟값을 돌려주는 함수이다.

>>> min([1, 2, 3])
1
>>> min("python")
'h'

oct

oct(x)는 정수 형태의 숫자를 8진수 문자열로 바꾸어 돌려주는 함수이다.

>>> oct(34)
'0o42'
>>> oct(12345)
'0o30071'

open

open(filename, [mode])은 "파일 이름"과 "읽기 방법"을 입력받아 파일 객체를 돌려주는 함수이다.

모드는 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 이 default라고 생각함녀 된다.

>>> fappend = open("append_mode.txt", 'a') 추가 모드로 파일을 여는 예 이다.

orc(문자-->아스키코드 값)

orc(c)는 문자의 아스키 코드 값을 돌려주는 함수이다.

>>> ord('a') # 문자-->아스키코드
97
>>> chr(97) # 아스키코드-->문자
'a'

pow(제곱)

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

>>> pow(2, 4)
16
>>> pow(3, 3)
27
>>> pow(2, 2) # 2에 2승
4

range

range([start,] stop [,step])는 for 문과 함께 자주 사용하는 함수이다. 이 함수는 입력받은 숫자에 해당하는 범위 값을 반복 가능한 객체로 만들어 돌려준다.

 

인수가 하나일 경우

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

>>> list(range(10))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

인수가 2개일 경우

입력으로 주어지는 2개의 인수는 시작 숫자와 끝 숫자를 나타낸다. 단 끝 숫자는 해당 범위에 포함되지 않는다.

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

인수가 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(number[, ndigits]) 함수는 숫자를 입력받아 반올림해 주는 함수이다.

>>> round(5.66666)
6
>>> round(5.33333)
5


소수점 2자리 까지만 출력
>>> round(5.33333,2)
5.33

sorted(정렬)

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

>>> sorted([3,1,2])
[1, 2, 3]
>>> a = [8,4,5,7,8,2,1]
>>> sorted(a)
[1, 2, 4, 5, 7, 8, 8]
>>> sorted(['a', 'c', 'b'])
['a', 'b', 'c']
>>> sorted("zero")
['e', 'o', 'r', 'z']

리스트 자료형에도 sort 함수가 있다. 하지만 리스트 자료형의 sort 함수는 리스트 객체 그 자체를 정렬만 할 뿐 정렬된 결과를 돌려주지는 않는다.

str

str(object)은 문자열 형태로 객체를 변환하여 돌려주는 함수이다.

>>> str(3)
'3'
>>> str('hi')
'hi'
>>> str('hi'.upper())
'HI'

sum

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

>>> sum([1,2,3])
6
>>> sum((4,5,6))
15


>>> a = 1
>>> b = 2
>>> sum(a,b) # 입력받은 리스트나 튜플의 모든 요소의 합을 돌려주는 것이라 오류 발생
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> sum([a,b]) # 리스트 안에 넣어주니 잘 출력되는 걸 확인할 수 있다.
3

tuple

tuple(iterable)은 반복 가능한 자료형을 입력받아 튜플 형태로 바꾸어 돌려주는 함수이다. 만약 튜플이 입력으로 들어오면 그대로 돌려준다. 자료형 --> 튜플

>>> tuple("abc")
('a', 'b', 'c')
>>> tuple([1, 2, 3])
(1, 2, 3)
>>> tuple((1, 2, 3))
(1, 2, 3) # 튜플이 입력으로 들어와서 그대로 돌려줬다.

type 입력값의 자료형이 무엇인지 알려주는 함수

zip

zip(*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')]

'Language > Python' 카테고리의 다른 글

점프 투 파이썬 - 프로그래밍  (0) 2019.07.17
점프 투 파이썬 - 외장 함수  (0) 2019.07.16
점프 투 파이썬 - 예외처리  (0) 2019.07.15
점프 투 파이썬 - 패키지  (0) 2019.07.15
점프 투 파이썬 - 모듈  (0) 2019.07.12

댓글

💲 추천 글