전체 글 102

Python(16) 일급 함수와 고차 함수, 클로저, 데코레이터

일급 함수 : 함수나 메서드를 일급 객체(값, 주소) 취급 고차 함수 : 함수를 아규먼트로 받거나 return값으로 반환하는 함수 donghu = print donghu('Hello World') # Hello World class Cat: def sound(self): print('냐옹') licat = Cat() licat_sound = licat.sound licat_sound() # licat.sound()와 같다. l = [10, 20, 30] la = l.append la(40) print(l) # [10, 20, 30, 40] def add(x, y): return x + y def sub(x, y): return x - y funcs = [add, sub] print(funcs[0](2, ..

Python 2023.09.20

Python(15) 예외 처리와 오류 관리

Error의 종류 # Syntax Error 문법 에러 for i in range(10) print(i) # Name Error 이름 에러 print(x) # Type Error 타입 에러 x = 10 y = '20' print(x + y) # Index Error 인덱스 에러 my_list = [1, 2, 3] print(my_list[3]) # Key Error 키 에러 my_dict = {'a': 1, 'b': 2} print(my_dict['c']) # Value Error 값 에러 int('a') # ZeroDivision Error 0 나누기 에러 x = 10 y = 0 print(x / y) # Attribute Error 어트리뷰트 에러 : 객체에 존재하지 않는 속성이나 메서드 호출 my_..

Python 2023.09.19

Python(14) 모듈

모듈 다른 파일에 작성된 클래스나 함수, 변수를 재사용할 수 있도록 한것 import로 불러옴 # hoo.py name = 'KimDonghu' age = 20 def hello(): return 'hello world' 보통 from은 폴더 import는 모듈 import hoo print(hoo.name) # KimDonghu hoo.hello() # hello world from hoo import name, age # 이것도 많이 사용함 print(name) # KimDonghu print(age) # 20 from hoo import name as n print(n) # KimDonghu import hoo as h print(h.name) # KimDonghu 많이 사용하는 모듈 import ..

Python 2023.09.19

Python(13) 클래스 심화

클래스 메서드 클래스에 작용하는 메서드 인자를 cls로 명명함. class MyClass: count = 0 # 이거 안붙이면 cls는 그냥 인스턴스 변수 됨 @classmethod def increment(cls): cls.count += 1 a = MyClass() b = MyClass() MyClass.increment() print(MyClass.count) # 출력 : 1 a.count, b.count # 1 1 원래 클래스 메서드를 안썼을 때 class MyClass: count = 0 def increment(self): self.count += 1 a = MyClass() b = MyClass() # MyClass.increment() # error a.increment() print(a...

Python 2023.09.19

Python(12) 클래스

클래스 설계 도면 또는 공장 같은 느낌 class Car: # 차의 설계 도면 또는 차 공장 max_speed = 300 max_people = 5 car_gear = ['P', 'D', 'R', 'N'] def start(self): print('차가 출발합니다!') def stop(self): print('차가 멈췄습니다!') # 테슬라 공장에서 나온 자동차 # model x, y, s! modelx = Car() modely = Car() models = Car() # Car.max_speed # modelx의 속도를 보고 싶으면 modelx.max_speed를 찍어야 함 print(models.car_gear[1]) # D models.start() # 차가 출발합니다! models.stop() ..

Python 2023.09.17

Python(10) 리스트 컴프리헨션, 삼항 연산자

리스트 컴프리헨션 # list 생성 l = [i for i in range(10)] print(l) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # 이런식으로도 가능 l = [f'{i}입니다!' for i in range(10)] print(l) # ['0입니다!', '1입니다!', '2입니다!', '3입니다!', '4입니다!', '5입니다!', '6입니다!', '7입니다!', '8입니다!', '9입니다!'] # 구구단 출력 l = [f'{i} X {j} = {i*j}' for i in range(2, 10) for j in range(1, 10)] print(l) # ['2 X 1 = 2', '2 X 2 = 4', '2 X 3 = 6', '2 X 4 = 8', '2 X 5 = 10', '..

Python 2023.09.13

Python(9) 튜플, 딕셔너리, Set(집합)

튜플 튜플은 안에 있는 값이 변경 불가능한 자료형이 아님 참조 불변임 리스트에 비해 처리속도가 조금 더 빠름 x = (1, 2, 3) # x[0] = 1000 Error x = [10, 20, 30] y = (1, 2, x) x[0] = 1000 print(y) # (1, 2, [1000, 20, 30]) 데이터의 변경이 민감하고, 참조의 개수가 변하면 안될 때 사용 s = {'one':1, 'two':2} print(s.items()) # dict_items([('one', 1), ('two', 2)]) 배열 안 튜플 형태로 반환 # 튜플 덧셈 tuple1 = (1, 2, 3) tuple2 = (4, 5, 6) tuple3 = tuple1 + tuple2 print(tuple3) # (1, 2, 3, ..

Python 2023.09.13

Python(8) 리스트

리스트 덧셈과 곱셈 a = [1, 2, 3, 4, 5] b = [6, 7, 8] print(a + b) # [1, 2, 3, 4, 5, 6, 7, 8] a = [1, 2, 3, 4, 5] print(a * 3) # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] 곱셈 주의 a = [1, 2, 3] a = [a * 2] * 2 # 리스트 컴프리헨션 사용해서 만드는것을 권장. print(a) # [[1, 2, 3, 1, 2, 3], [1, 2, 3, 1, 2, 3]] id(a[0]), id(a[1]) a[0][0] = 10000 print(a) # [[10000, 2, 3, 1, 2, 3], [10000, 2, 3, 1, 2, 3]] 리스트 슬라이싱 l = [1, 2, 3,..

Python 2023.09.12

Python(7) 함수

함수 함수의 종료 구분은 들여쓰기 기준 or return으로 구분 def printnum(): print('1') return # 여기서 함수 종료 print('2') print('3') printnum() print(printnum()) # 디폴트가 return None # 3 # 1 # 1 # None 파선아실 : 파라미터는 선언할 때, 아규먼트는 실행할 때 (인자 구분) def function(x, y): # x, y = 파라미터 z = x + y return z print('function(5, 7)=', function(5, 7)) # 5, 7 = 아규먼트 함수 안에 함수 def f(): def ff(): return 100 x = ff() return x f() # 100 # ff() Erro..

Python 2023.09.12