내장함수
Built-in Functions
The Python interpreter has a number of functions and types built into it that are always available. They are listed here in alphabetical order.,,,, Built-in Functions,,, A, abs(), aiter(), all(), a...
docs.python.org
# 1. all(iterable)
# iterable자료형을 전달 받아서 그 요소들의 값이 전부 True면 True를 리턴, 아니면 False를 리턴
# all?
# 1) list
print(all([1,2,3,4,5])) # True
print(all([1,2,0,4,5])) # False
print(all([])) # True
print(all(['1','0'])) # True
print(all(['1',''])) # False
print()
# 2) tuple
print(all((1,2,3,4,5))) # True
print(all((1,2,0,4,5))) # False
print(all(())) # True
print(all(('1','0'))) # True
print(all(('1',''))) # False
print()
True
False
True
True
False
True
False
True
True
False
# 2. any(iterable)
# 값중에 하나라도 True면 True, 전부 False면 False
# 1) list
print(any([1,2,3,4,5])) # True
print(any([1,2,0,4,5])) # True
print(any([])) # False
print(any(['1','0'])) # True
print(any(['1',''])) # True
print()
# 2) tuple
print(any((1,2,3,4,5))) # True
print(any((1,2,0,4,5))) # True
print(any(())) # False
print(any(('1','0'))) # True
print(any(('1',''))) # True
print()
True
True
False
True
True
True
True
False
True
True
# 3. chr(ascii), ord(문자)
# ascii코드값을 전달 받아서 그 코드에 해당하는 문자나 코드값을 리턴하는 함수
print(chr(65), ord('A'))
print(chr(97), ord('a'))
print(chr(48), ord('0'))
print(chr(44032), ord('가'))
print()
# 대문자
for i in range(26):
print(f'{chr(i+65)}={ord(chr(i+65))}', end=",")
print()
# 소문자
for i in range(26):
print(f'{chr(i+97)}={ord(chr(i+97))}', end=",")
print()
# 숫자
for i in range(10):
print(f'{chr(i+48)}={ord(chr(i+48))}', end=",")
print()
# 한글
for i in range(10):
print(f'{chr(i+44032)}={ord(chr(i+44032))}', end=",")
print()
# 특수문자
print(ord('~'))
for i in range(50):
print(f'{chr(i+126)}={ord(chr(i+126))}', end=",")
A 65
a 97
0 48
가 44032
A=65,B=66,C=67,D=68,E=69,F=70,G=71,H=72,I=73,J=74,K=75,L=76,M=77,N=78,O=79,P=80,Q=81,R=82,S=83,T=84,U=85,V=86,W=87,X=88,Y=89,Z=90,
a=97,b=98,c=99,d=100,e=101,f=102,g=103,h=104,i=105,j=106,k=107,l=108,m=109,n=110,o=111,p=112,q=113,r=114,s=115,t=116,u=117,v=118,w=119,x=120,y=121,z=122,
0=48,1=49,2=50,3=51,4=52,5=53,6=54,7=55,8=56,9=57,
가=44032,각=44033,갂=44034,갃=44035,간=44036,갅=44037,갆=44038,갇=44039,갈=44040,갉=44041,
126
~=126,=127,=128,=129,=130,=131,=132,
=133,=134,=135,=136,=137,=138,=139,=140,=141,=142,=143,=144,=145,=146,=147,=148,=149,=150,=151,=152,=153,=154,=155,=156,=157,=158,=159, =160,¡=161,¢=162,£=163,¤=164,¥=165,¦=166,§=167,¨=168,©=169,ª=170,«=171,¬=172,=173,®=174,¯=175,
# 4. dir()
print(dir({}))
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
# 5. divmod(a, b)
print(divmod(7,3)) # 몫과 나머지를 tuple로 리턴
print(divmod(1.3,0.2)) # 실수계산 정밀도 문제
(2, 1)
(6.0, 0.09999999999999998)
# 6. enumetate(iterable)
# "열거하다"라는 의미처럼 반복자를 전달받아서 인덱스값으로 포함하는 enumrate라는 객체로 리턴
# 이 함수는 보톤 for문과 같이 사용
# enumerate?
names = ['소향', '나얼', '손흥민', '김민재']
for idx, name in enumerate(names):
print(f'{idx}={name}')
print()
for idx, name in enumerate(names, 1000):
print(f'{idx}={name}')
print()
0=소향
1=나얼
2=손흥민
3=김민재
1000=소향
1001=나얼
1002=손흥민
1003=김민재
# 7. eval(expression)
# 파이썬의 표현식을 문자열로 전달받아서 해당 표현식을 실행해 주는 함수
# eval?
print('1+1')
print(eval('1+1'))
eval('print("Hello Python!!")')
print(eval('divmod(1.3,0.2)'))
# print(eval('divmodxxxx(1.3,0.2)')) # 실행명령이 없는 경우 에러
1+1
2
Hello Python!!
(6.0, 0.09999999999999998)
# 8. filter(function, iterable)
# 첫 번째인수가 실행할 함수, 두 번째인수가 반복자를 전달받아서
# 반복자값을 하나씩 꺼내서 실행함수의 조건에 맞는 값만 리턴하는 함수
# help(filter)
# list자료형이 숫자일경우, 양수만 리턴하는 함수
# 1) 사용자함수
def positive(numbers):
result = []
for number in numbers:
if number > 0:
result.append(number)
return result
print(positive([1,2,0,-1,3,-4,2,3,-10]))
# 2) filter함수
# [True,True,False,False,True,False,True,True,False] -> True
def positive1(numbers):
return numbers > 0
# 비교연산은 숫자형을 전달해야 한다. 아래와 같이 객체(list)를 전달하면 에러
# print(positive1([1,2,0,-1,3,-4,2,3,-10]))
numbers = [1,2,0,-1,3,-4,2,3,-10]
f = filter(positive1, numbers) # [True,True,False,False,True,False,True,True,False] -> True
print(type(f), f)
print(dir(f))
print()
result = list(f) # filter객체는 list로 변환
print(result)
print()
# 3) lambda함수
print(list(filter(None, numbers)))
print(list(filter(positive1, numbers)))
print(list(filter(lambda x:x>0, numbers)))
[1, 2, 3, 2, 3]
<class 'filter'> <filter object at 0x000002B5D0DBE710>
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
[1, 2, 3, 2, 3]
[1, 2, -1, 3, -4, 2, 3, -10]
[1, 2, 3, 2, 3]
[1, 2, 3, 2, 3]
# 9. isinstance(객체, class)
# 1번째객체가 2번째인수인 class로 생성된 객체인지 여부를 리턴
class Person: pass
class Child(Person): pass
class Human: pass
p = Person()
c = Child()
h = Human()
print(isinstance(p, Person))
print(isinstance(c, Child))
print()
print(isinstance(c, Person))
print(isinstance(c, Child))
print(isinstance(c, Human))
True
True
True
True
False
# 10. issubclass(cls, tuple(class,...))
# issubclass?
print(issubclass(Child, (Person)))
print(issubclass(Child, (Person, Human)))
print()
print(issubclass(Person, (Child)))
print(issubclass(Human, (Person)))
print(issubclass(Human, (Child)))
True
True
False
False
False
# 11. map(function, iterable)
# 반복자료형의 요소들에 각각 2배를 한 결과만들기
t = 1,2,3,4,5,6,7,8,9,10
# 1) 사용자함수
def two_times(numbers):
result = []
for num in numbers:
result.append(num*2)
return result
print(two_times(t))
# 2) map
def two_times1(n):
return n*2
print(list(map(two_times1, t)))
# 3) lambda
print(list(map(lambda n:n*2, t)))
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
# 12. filter
print(list(map(lambda n:n%2==0, t)))
print(list(filter(lambda n:n%2==0, t)))
# map vs filter
# map은 입력요소의 갯수 = 출력된 요소의 갯수 -> 각 요소가 변형
# filter는 입력된 요소의 갯수 > 출력된 요소의 갯수 -> 입력요소를 추출해서 출력
[False, True, False, True, False, True, False, True, False, True]
[2, 4, 6, 8, 10]
# 13. slice(stop), slice(start, stop[, step])
alphabet = 'abcdefghijklmnopqrstuvwxyz'
print(alphabet[2:5])
print(type(slice(2,5)), slice(2,5))
print(alphabet[slice(2,5)])
cde
<class 'slice'> slice(2, 5, None)
cde
# 14. sorted(iterable)
# 제약사항 : iterable의 요소의 데이터형은 동일데이터형이어야 된다.
# sorted?
print(sorted([3,2,5,1,6,9,7,8]))
print(sorted([3,2,5,1,6,9,7,8], reverse=True))
print(sorted('안녕하세요? 반갑습니다!'))
print(sorted(['x','a','y','b','z','c']))
# print(sorted(['x','a',1,'b','z','c'])) TypeError
[1, 2, 3, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 3, 2, 1]
[' ', '!', '?', '갑', '녕', '니', '다', '반', '세', '습', '안', '요', '하']
['a', 'b', 'c', 'x', 'y', 'z']
# 15. zip(iterable) - 동일한 자료형을 묶어서 tuple로 리턴
# zip?
# 1) 2개의 객체가 동수일 경우
a = [1,2,3]
b = [4,5,6]
print(type(zip(a, b)), zip(a,b), list(zip(a,b)))
# 2) 2개의 객체수가 동일하지 않을 경우
print(list(zip([1,2], [4,5,6])))
print(list(zip([1,2,3], [4,5])))
# 3) 자료형이 다를 경우
print(tuple(zip([1,2,3], (4,5,6))))
print(list(zip('abcdefg', (4,5,6))))
print()
print(list(zip('abc', 'xyz')))
print(list(zip('abc', ['xyz'])))
print(list(zip('abc', ['x','y','z'])))
print()
# 4) 객체가 3개이상일 경우
print(list(zip('abcdefg', range(3), range(10,21), range(21,41))))
<class 'zip'> <zip object at 0x000002B5D0DD3CC0> [(1, 4), (2, 5), (3, 6)]
[(1, 4), (2, 5)]
[(1, 4), (2, 5)]
((1, 4), (2, 5), (3, 6))
[('a', 4), ('b', 5), ('c', 6)]
[('a', 'x'), ('b', 'y'), ('c', 'z')]
[('a', 'xyz')]
[('a', 'x'), ('b', 'y'), ('c', 'z')]
[('a', 0, 10, 21), ('b', 1, 11, 22), ('c', 2, 12, 23)]
'Python' 카테고리의 다른 글
[Python]정규식_Regula_Expressions (0) | 2024.04.24 |
---|---|
[Python]함수_외장함수 (0) | 2024.04.24 |
[Python]17.예외처리_Exception (0) | 2024.04.24 |
[Python]클래스_class (0) | 2024.04.24 |
[Python]파이썬_Package (0) | 2024.04.12 |