[점프투파이썬] 5장 파이썬 날기(2) - 내장함수, 외장함수 정리

해롱그·2023년 6월 12일
0

파이썬

목록 보기
6/12
post-thumbnail

🔅 내장함수 vs 외장함수
함수인데 그냥 파이썬 내부에 이미 정의되어 있느냐, 아님 다른 곳에서 가져다 쓰느냐의 차이!

5. 내장함수

파이썬에서 기본적으로 포함하고 있는 함수, 그냥 쓸 수 있음!
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사이의 숫자를 각 문자에 대응해 놓은 것

6. 외장함수

라이브러리 함수, 라이브러리에서 가져다 쓰는 함수(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
참고한 영상

profile
사랑아 컴퓨터해 ~

0개의 댓글