🔅 내장함수 vs 외장함수
함수인데 그냥 파이썬 내부에 이미 정의되어 있느냐, 아님 다른 곳에서 가져다 쓰느냐의 차이!
파이썬에서 기본적으로 포함하고 있는 함수, 그냥 쓸 수 있음!
ex) print(), type(), abs() 등..
# abs(절대값)
print(abs(-3))
>>> 3
# all(모두 참인지 검사)
print(all([1, 2, 3]))
print(all([0, 2, 3]))
>>> True
False
# any(하나라도 참이 있는지 검사)
print(any([1, 2, 3]))
print(any([0, 1, 2]))
print(any([0])
>>> True
True
False
# chr(ASCII 코드를 입력받아 문자 출력)
```python
print(chr(97))
print(chr(48))
>>> a
0
# dir(list에서 무슨 함수를 쓸 수 있는지! 명령어 모음집)
print(dir([1, 2, 3]))
>>> ['__add__', '__class__', '__class_getitem__', '__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']
# divmod(몫과 나머지를 튜플 형태로 돌려줌)
print(divmod(7, 3))
print(divmod(9, 3))
>>> (2, 1)
(3, 0)
# enumerate(열거하다, 리스트인데 딕셔너리처럼 쓸 수 있음!)
for i, name in enumerate(['body', 'foo', 'bar']):
print(i, name)
>>> 0 body
1 foo
2 bar
# eval(실행 후 결과값을 돌려줌)
print(eval('1+2'))
print(eval("'hi'+'a'"))
print(eval('divmod(4, 3)'))
>>> 3
hia
(1, 1)
# filter(함수를 통과하여 참인 것만 돌려줌)
def positive(x):
return x > 0
a = list(filter(positive, [1, -3, 2, 0, -5, 6]))
print(a)
>>> [1, 2, 6]
# id(주소값)
a = 3
print(id(3))
print(id(a))
b = a
print(id(b))
>>> 4370262384
4370262384
4370262384
# input(사용자 입력 받는 함수)
a = input("Enter: ")
print(a)
>>> Enter: Hi! #내가 Hi! 입력하면
Hi! #그대로 출력
# int(10진수 정수 형태로 변환)
print(int('3'))
print(int(3.4))
print(int('11', 2))
print(int('1A', 16))
>>> 3
3
3
26
# len(길이)
print(len('python'))
print(len([1, 2, 3]))
print(len((1, 'a')))
>>> 6
3
2
# list(리스트로 변환)
print(list('python'))
print(list((1,2,3)))
>>> ['p', 'y', 't', 'h', 'o', 'n']
[1, 2, 3]
# map(각 요소가 수행한 결과를 돌려줌)
def two_times(x):
return x**x
a = list(map(two_times, [1,2,3,4]))
print(a)
b = list(map(lambda b: b**b, [1, 2, 3, 4]))
print(b)
>>> [1, 4, 27, 256]
[1, 4, 27, 256]
# max, min(최대값, 최소값)
print(max([1,2,3]))
print(max('python'))
print(min([1,2,3]))
print(min('python'))
>>> 3
y
1
h
# open(r,w,a,b)
# pow(제곱한 결과값 반환)
print(pow(4, 3))
print(pow(3, 2))
>>> 64
9
# range(범위)
print(list(range(3)))
print(list(range(5, 10)))
print(list(range(1, 10, 2)))
print(list(range(0, -10, -1)))
>>> [0, 1, 2]
[5, 6, 7, 8, 9]
[1, 3, 5, 7, 9]
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
# round(반올림)
# sorted(정렬)
print(sorted([3,1,2]))
print(sorted(['a', 'e', 'c']))
print(sorted('zero'))
print(sorted((3,2,1)))
>>> [1, 2, 3]
['a', 'c', 'e']
['e', 'o', 'r', 'z']
[1, 2, 3]
# str(문자열 반환)
print(str('hi'.upper()))
>>> HI
# tuple(튜플 반환)
print(tuple("abc"))
print(tuple([1, 2, 3]))
print(tuple((1, 2, 3)))
>>> ('a', 'b', 'c')
(1, 2, 3)
(1, 2, 3)
# type(타입 출력)
print(type("a"))
print(type([ ]))
print(type(open("test", 'w')))
>>> <class 'str'>
<class 'list'>
<class '_io.TextIOWrapper'>
# zip(자료형을 묶어주는 역할, 같은 자리끼리 묶어줌!)
a = list(zip([1,2,3], [4,5,6]))
b = list(zip('abc', 'def'))
print(a)
print(b)
>>> [(1, 4), (2, 5), (3, 6)]
[('a', 'd'), ('b', 'e'), ('c', 'f')]
*ASCII 코드 : 0~127사이의 숫자를 각 문자에 대응해 놓은 것
라이브러리 함수, 라이브러리에서 가져다 쓰는 함수(import 해서 사용!)
# pickle
import pickle
f = open("test.txt", 'wb')
data = {1: 'python', 2: 'you need'}
pickle.dump(data, f) #dump에 넣어주면 언제든 딕셔너리 형태로 꺼내서 사용할 수 있음!
f.close()
import pickle
f = open("test.txt", 'rb')
data = pickle.load(f)
print(data)
>>> {1: 'python', 2: 'you need'}
# time
import time
print(time.time())
>>> 1686548205.738956 #1970년 1월 1일 0시 0분 0초를 기준으로 지난 시간 초
import time
print(time.localtime())
>>> time.struct_time(tm_year=2023, tm_mon=6, tm_mday=12, tm_hour=14, tm_min=38, tm_sec=13, tm_wday=0, tm_yday=163, tm_isdst=0)
# time.sleep(실행할 때 텀을 주는 함수)
import time
for i in range(5):
print(i)
time.sleep(1) #1초 텀을 준다
>>> 0
1 #1초뒤
2 #1초뒤
3 #1초뒤
4 #1초뒤
# random
import random
print(random.random())
>>> 0.8682346497175533 #0~1사이의 난수 출력
print(random.randint(1, 10))
>>> 3 #1~9 사이의 수 출력
data = [1, 2, 3, 4, 5]
random.shuffle(data)
print(data)
>>> [3, 4, 1, 5, 2]
import random
lotto = sorted(random.sample(range(1, 46), 6))
print(lotto)
>>> [1, 4, 19, 36, 39, 43]
# webbrowser
import webbrowser
webbrowser.open("https://google.com")
>>> 구글 창 open!!!
Reference
참고한 영상