티스토리 뷰

파이썬에는 내장 함수 (built-in function) 가 있습니다. 내장 함수란 별도로 import 를 하지 않고도 사용할 수 있도록 내장되어 있는 함수를 의미하는데요. 사용자의 입력을 받기 위한 input() 함수도 내장 함수 중 하나입니다. 사용자로부터 좋아하는 언어를 입력 받고 문장을 출력하는 간단한 코드를 작성하겠습니다.

language = input("무슨 언어를 좋아하세요? ")
print("{0}은 아주 좋은 언어입니다!".format(language))

 

프로그램을 실행시키고 "파이썬" 이라는 값을 입력하면 language 라는 변수에 저장을 했다가 print() 문을 통해서 출력을 합니다. 이 때 내장함수인 input() 을 쓰기 위해 별도로 해줘야 하는 것은 아무것도 없었습니다.

무슨 언어를 좋아하세요? 파이썬
파이썬은 아주 좋은 언어입니다!

 

내장 함수는 종류가 굉장히 많은데 그 중 하나인 dir() 함수에 대해 실습해보겠습니다.

 

dir() 은 어떤 객체를 넘겼을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 알려주는 목적으로 사용할 수 있습니다. 만약 전달값으로 아무것도 넘기지 않는다면 현재 소스코드 범위 내에서 사용 가능한 모듈 또는 객체가 출력됩니다.

비교를 위해서 아무것도 import 하지 않았을 때의 dir() 함수 출력결과와 random, pickle 모듈을 import 했을 때의 출력결과를 확인하는 코드를 작성합니다.

print(dir())
import random # random 모듈 가져다 쓰기
print(dir())
import pickle # pickle 모듈 가져다 쓰기
print(dir())

 

실행시켜보니 처음에는 기본 값들만 출력되고 import random 다음에는 random 모듈이, import pickle 다음에는 pickle 모듈이 포함되어 코드 내에서 사용할 수 있음을 확인할 수 있습니다.

['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'random']
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'pickle', 'random']

 

이번에는 random 모듈을 직접 전달값으로 설정하도록 하겠습니다.

import random
print(dir(random))

 

실행 결과 random 모듈 내에서 사용 가능한 모든 것들이 출력되는 것을 확인할 수 있습니다. 이미 우리가 사용해봤던 randint, randrange, sample, shuffle 등 익숙한 이름들도 보이네요.

['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 
'_accumulate', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_log', '_os', '_pi', '_random', '_repeat', '_sha512', '_sin', '_sqrt', '_test', '_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']

 

모듈이 아닌 리스트 자료구조를 하나 만들어서 확인해보겠습니다. lst 란 이름의 리스트에 숫자 몇 개를 추가하는 코드를 작성합니다.

lst = [1, 2, 3]
print(dir(lst))

 

실행시켜보면 리스트에서 사용 가능한 변수와 함수 목록들이 보여집니다. 리스트 자료구조를 공부할 때 봤던 append, clear, count, extend, index, reverse, sort 등의 함수 이름도 확인할 수 있습니다.

['__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']

 

이번에는 더 기본적인 문자열 변수를 하나 만들어서 확인해보겠습니다. name 이란 변수에 "Jim" 이라는 값을 집어 넣고 dir() 을 통해 사용 가능한 변수와 함수를 확인하는 코드를 작성합니다.

name = "Jim"
print(dir(name))

 

실행 결과 굉장히 많은 내용이 출력되는데요. name 이라는 문자열 변수에 대해서 대문자로 변경하는 upper, 소문자로 변경하는 lower, 특정 문자를 찾는 find 등 다양한 기능을 사용할 수 있다는 것을 확인할 수 있습니다.

['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

 

 

파이썬에서 제공되는 내장 함수에 대한 더 자세한 내용은 구글에서 "list of python builtins" 로 검색을 하면 나오는 파이썬 공식 홈페이지의 Built-in Functions 페이지에 방문하여 확인할 수 있습니다.

(링크 : https://docs.python.org/3/library/functions.html )

 

 

각 내장 함수는 알파벳 순으로 정렬되어 있으며 우리에게 친숙한 input(), print(), str() 등을 포함한 다양한 함수를 확인할 수 있습니다. 참고로 좌측 상단의 언어 설정 (기본값 : English) 부분을 클릭하면 한국어 (Korean) 로 번역된 페이지를 확인할 수 있습니다.

 

각 내장 함수를 클릭해보면 설명을 확인할 수 있으며 예제 코드가 함께 제공되는 경우도 있습니다. 예를 들어 input() 을 클릭하면 다음과 같은 내용을 확인할 수 있습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함