본문 바로가기

프로그래머/Python

[윤성우의 열혈 파이썬 중급편] 25. isintance 함수와 object 클래스 25. isintance 함수와 object 클래스 isinstance 함수 class Simple: pass s = Simple() isinstance(s, Simple) # True isinstance([1, 2], list) # True class Fruit: pass class Apple(Fruit): pass class SuperApple(Apple): pass sa = SuperApple() isinstance(sa, SuperApple) # True isinstance(sa, Apple) # True isinstance(sa, Fruit) # True 이 객체는 저 클래스의 객체인가? object 클래스 class Simple: pass isinstance(Simple(), object) #.. 더보기
[윤성우의 열혈 파이썬 중급편] 24. 상속 24. 상속 부모 클래스가 갖는 모든 메소드가 자식 클래스에도 담긴다 자식 클래스에는 별도의 메소드를 추가할 수 있다 class Father: def run(self): print("so fast!!!") class Son(Father): def jump(self): print("so high!!!") def main(): s = Son() s.run() s.jump() main() 다중 상속 class Father: def run(self): print("so fast!!!") class Mother: def dive(self): print("so deep!!!") class Son(Father, Mother): def jump(self): print("so high!!!") def main(): s .. 더보기
[윤성우의 열혈 파이썬 중급편] 23. 클래스와 객체의 본질 출처 : 윤성우의 열혈 파이썬 : 중급 23. 클래스와 객체의 본질 객체 안에 변수가 만들어지는 시점 class Simple: def seti(self, i): self.i = i def geti(self): return self.i s1 = Simple() s1.seti(200) # 이 때 객체 내에 변수 i 생성 s1.geti() # 200 s2 = Simple() s2.geti() # error 클래스의 기본 정의 : 클래스 내에 들어갈 변수와(데이터와) 메소드를(기능을) 결정하는 것 위의 클래스에는 메소드의 정의만 존재. 즉, 변수의 선언은 존재하지 않는다 파이썬은 객체에 필요한 변수를 알아서 생성해준다 객체 내에 변수가 생성되는 정확한 시점은 객체 내에서 새당 변수를 대상으로 대입 연산을 처음 .. 더보기
[윤성우의 열혈 파이썬 중급편] 22. 메소드 기반 문자열 조합 22. 메소드 기반 문자열 조합 기본적 사용 방법 fs = '{0}...{1}...{2}' ms = fs.format('Robot', 125, 'Box') '{2}...{1}...{0}'.format('Robot', 125, 'Box') '{}...{}...{}'.format('Robot', 125, 'Box') '{toy}...{num}...{item}'.format(toy = 'Robot', num = 125, item = 'Box') 인덱싱 연산을 추가하여 my = ['Robot', 125, 'Box'.. 더보기
[윤성우의 열혈 파이썬 중급편] 21. 표현식 기반 문자열 조합 21. 표현식 기반 문자열 조합 문자열 조합 s = 'I am ' + str(7) + ' years old' print(s) # 'I am 7 years old' String formatting expressions : '표현식'을 기반으로 문자열 조합 '_ %s%s __' % (value, value) 스타일 문자열 조합 String formatting method calls : '메소드 호출'을 통해 문자열 좋밯 '_ {}{} __'.format(value, value) 스타일 문자열 조합 표현식 기반 문자열 조합 s = 'My name is %s' % 'Yoon' s = .. 더보기
[윤성우의 열혈 파이썬 중급편] 20. enumerate와 문자열 비교 출처 : 윤성우의 열혈 파이썬 : 중급 20. enumerate와 문자열 비교 enumerate names = ['윤나은', '김현주', '장현지', '이진선', '박선주'] names.sort() dnames = {} i = 1 for n in names: dnames[i] = n i += 1 print(dnames) # {1: '김현주', 2: '박선주', 3: '윤나은' ...} eo = enumerate(names) for n in eo: print(n) # (0, '윤나은') \n (1, '김현주') \n ... for n in enumerate(name.. 더보기
[윤성우의 열혈 파이썬 중급편] 19. 정렬 기술 출처 : 윤성우의 열혈 파이썬 : 중급 19. 정렬 기술 리스트의 sort 메소드 ns = [3, 1, 4, 2] ns.sort() # 오름차순 ns.sort(reverse = True) # 내림차순 ns = [('Yoon', 33), ('Lee', 12), ('Park', 29)] def age(t): return t[1] # 나이 반환 # 매개변수 key에 함수 age를 전달 ns.sort(key = age) # 이름의 알파벳 역순으로 정렬 ns.sort(key = lambda t : t[1], reverse = True) # 문자열의 길이를 기준으로 names = ['Julia', 'Yoon', 'Steven'] .. 더보기
[윤성우의 열혈 파이썬 중급편] 18. 자료형 분류와 set & frozenset 출처 : 윤성우의 열혈 파이썬 : 중급 18. 자료형 분류와 set & frozenset 시퀀스 타입(sequence type) list, tuple, range, string 저장된 값의 순서 정보가(위치 정보가) 존재 인덱싱 연산 : s[0], s[1] ... 슬라이싱 연산 : s[0:3], s[5:9] 매핑 타입(mapping type) set, frozenset 저장된 값의 순서 또는 위치 정보를 기록하지 않는 자료형 수학의 '집합'을 표현한 자료형 '수학의 집합은 저장 순서를 유지하지 않는다' '수학의 집합은 중복된 값의 저장을 허용하지 않는다' set, frozenset A = {'a', 'c', 'd', &.. 더보기
[윤성우의 열혈 파이썬 중급편] 17. dict & OrderedDict 출처 : 윤성우의 열혈 파이썬 : 중급 17. dict & OrderedDict dict은 저장 순서를 유지하기 시작했다 from colletions import OrderedDict od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 for kv in od.items(): print(kv) python 3.7부터 dict가 저장순서를 유지하기 때문에 OrderedDict을 이러한 목적으로 사용할 필요는 없다 그래도 OrderedDict을 써야할 이유가 있다면? d1 = dict(a = 1, b = 2, c = 3) d2 = dict(c = 3, a = 1, b = 2) print(d1 == d2) # True, d.. 더보기
[윤성우의 열혈 파이썬 중급편] 16. dict & defaultdict 출처 : 윤성우의 열혈 파이썬 : 중급 16. dict & defaultdict 키가 존재할 때와 존재하지 않을 때 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] = 1 # 키 'red'의 값을 1로 변경 d = {'red': 3, 'white': 2} d['red'] = 1 # 'red' : 1 추가 저장되어 있는 값 참조 d = {'red': 3, 'white': 2, 'blue': 4} d['red'] += 1 # 키 'red'의 값을 1 증가 d = {'r.. 더보기