본문 바로가기

python

(56)
file - open(), read(), close() 등 파일과 관련된 기본적인 메소드 os.getcwd() 파일 위치를 가져온다 open() 해당파일을 열어준다. mode, encoding 등의 설정을 수정할 수 있다. read() 파일을 읽어준다. close() 파일을 닫아준다. 파일을 열었으면 닫아주는게 정석이다. mode의 종류 문자 의미 'r' 읽기 모드 (기본값) 'w' 쓰기 모드 'a' 파일을 쓰기용으로 열되, 파일의 내용 끝에 데이터를 추가할때 사용 'b' 바이너리 모드 't' 텍스트 모드 '+' 갱신 모드 코드 전체보기 # file i/o import os print(os.getcwd()) try: print('읽기 ---') # f1 = open(r'c:\work\psou\pro1\pack3\file_test.txt',mode='r',enco..
예외처리 - try ~ except 예외처리 - try ~ except 작업 도중 발생하는 에러에 대처하기 # 예외처리 : 작업 도중 발생하는 에러에 대처하기 # try ~ except def divide(a, b): return a / b print('이런저런 작업을 하다가...') c = divide(5, 2) # c = divide(5, 0) print(c) print() try: c = divide(5, 2) # c = divide(5, 0) print(c) aa = [1, 2] print(aa[0]) # print(aa[5]) open('C:/abc.txt') except ZeroDivisionError: print('에러 : 0으로 나누면 안돼') except IndexError as err: print('에러 원인은 ', er..
class - 추상 클래스 예제 필자 작성 코드 from abc import * class Employee(metaclass = ABCMeta): @abstractclassmethod def pay(self): pass @abstractclassmethod def data_print(self): pass def irumnai_print(self): print('이름:{}, 나이:{}, '.format(self.irum,self.nai), end = '') class Temporary(Employee): def __init__(self, irum, nai, ilsu, ildang): self.irum = irum self.nai = nai self.ilsu = ilsu self.ildang = ildang def pay(self): se..
class - 추상클래스 추상클래스 자식클래스에서 부모 메소드의 이름을 강요하기 위해서 사용한다 추상 클래스의 기본적인 형태 추상 클래스는 객체 생성이 불가능하다. 오직 부모 클래스의 역할만 한다. 추상메소드가 필요하다면 @abstractclassmethod를 붙여준다. from abc import * class AbstractClass(metaclass = ABCMeta): #추상 클래스가 된다 @abstractclassmethod def myMethod(self): # 추상 메소드가 된다. pass def normalMethod(self): print('추상 클래스는 일반 메소드를 가질 수도 있다') # 추상클래스는 객체 생성이 불가능하다. # parent = AbstractClass() 추상 클래스를 참고하는 자식클래스 c..
class - 다중 상속 다중 상속 클래스를 다중 상속받는 경우 상속받는 순서 중 앞 순서를 우선으로 반영한다 # 다중 상속 : 순서가 중요 class Tiger: data = "호랑이 세상" def cry(self): print('호랑이는 어흥') def eat(self): print('맹수는 고기를 좋아함') class Lion: def cry(self): print('사자는 으르렁') def hobby(self): print('백수의 왕은 낮잠을 즐김') class Liger1(Tiger, Lion): #다중 상속 pass a1 = Liger1() a1.cry() a1.eat() a1.hobby() print(a1.data) 호랑이는 어흥 맹수는 고기를 좋아함 백수의 왕은 낮잠을 즐김 호랑이 세상 다중 상속 받는 경우 부모..
class - method override (재정의) method override(재정의) 부모 클래스의 메소드를 자식클래스에서 재정의해서 사용할 수 있다. # method override(재정의) class Parent: def printData(self): pass class child1(Parent): def printData(self): # method override print('child1에서 재정의') class child2(Parent): def printData(self): # method override print('child2에서 override') print('오버라이드는 부모의 메소드를 자식이 재정의') def abc(self): print('Child2 고유 메소드') c1 = child1() c1.printData() print(..
class - 클래스 상속 일반적으로는 별도의 모듈에서 부모 클래스를 만들고 import해서 사용하지만 예시에서는 구조를 쉽게 파악하기 위해 한 모듈에 작성했다. 클래스를 상속 받아서 부모 클래스의 메소드를 활용할 수 있다 # 클래스의 상속 : 다형성을 구사 가능 class Animal: def __init__(self): print('Animal 생성자') def move(self): print('움직이는 생물') class Dog(Animal): # 상속 def __init__(self): print('Dog 생성자') def my(self): print('난 댕댕이~') dog1 = Dog() dog1.move() dog1.my() Dog 생성자 움직이는 생물 난 댕댕이~ 자식 클래스에 지정한 생성자가 없다면 부모 클래스의 ..
파이썬 내장함수 - map, filter map() map 함수는 리스트의 요소를 지정된 함수로 처리해준다. 데이터를 다른 형태로 변화하기 위해 사용된다. map()함수의 기본적인 형태 map(적용시킬 함수, 적용할 요소) a = [1.2, 2.5, 3.7, 4.6] a = list(map(int, a)) map() 함수에 만들어둔 함수를 사용하는 형태 a = [1, 2, 3, 4] def plus100(n): return n + 100 list(map(plus100, a)) map()함수와 람다함수 a = [1, 2, 3, 4] list(map(lambda n: n + 100, a)) 입력받은 값을 공백기준으로 분리하는 기본 형태 a, b = input().split() 입력받은 값을 공백기준으로 분리하고 map() 함수를 활용해서 정수로 바..