본문 바로가기

Data_Analysis_Track_33/Python

(63)
Python_08(입출력) Path (경로) : 자원의 위치, 파일 시스템에서는 파일이나 디렉토리가 있는 위치의 경로 경로를 표시하는 방법 2가지 : 절대경로, 상대경로 절대경로 : 시작 경로부터 자원이 있는 위치까지 표현, 절대적인 경로(일정하다) 시작경로 : Root Path - windows : c:, d: - Uinx, Linux : / 항상 Root 경로부터 시작 -> 윈도우 -> c: or d: 유닉스나 리눅스 -> / ex) C:\Users\Playdata\Desktop\01_Python\calculator.py 상대경로 : 현재 작업 경로를 기준으로 해서 자원의 위치 표현 시작 경로 : 현재 작업경로 구문 - . : 현재 디렉토리 - .. : 상위 디렉토리 - / : 경로 구분자, 상위경로/하위경로 항상 ./ 부터 ..
Python_07-2(Exception 발생시키기) Call Stack Mechanism - 발생한 Exception은 처리를 하지 않으면 caller에게 전달된다. - 발생한 Exception에 대한 처리가 모든 caller에서 안되면 결국 파이썬 실행환경까지 전달되어 프로그램은 비정상적으로 종료 되게 된다. Call Stack Mechanism -> 호출한 함수들이 stack 형식으로 처리된다. 호출순서 : a(), b(), c() , 실행순서 : c(), b(), a() -> Last In First Out(LIFO) # a -> b -> c -> d -> c -> b -> a 종료 ---> call stack def a(): b() def b(): c() def c(): d() def d(): a = 10 / 0 a() # ZeroDivisionE..
Python_07(예외처리) 오류 : 함수나 메소드가 처리 도중 다음 명령문을 실행할 수 없는 상황 오류 중 처리가능한 것을 Exception(예외) 라고 한다. 그리고 그 예외를 처리하는 것을 Exception Handling 이라고 한다. 오류의 종류 1. 파이썬 문법을 어겨서 발생하는 오류 - 코드 상 100% 발생하는 오류 - 코드를 수정해야 한다. - 보통 이런 오류는 컴파일 방식 언어의 경우 컴파일 때 에러를 내서 수정하도록 한다.(Python은 해당되지 않는다.) 2. 실행 환경의 문제로 발생하는 오류 - 코드상에서는 Exception의 발생여부를 확신할 수 없다. - 만약 발생할 경우 어떻게 처리할지를 구현해야 한다. 1. 예외처리 -> 2. 예외 발생 -> 3. 사용자 정의 예외 class 생성 예외처리(Except..
Python_06-2(Package&Module, import) 여러 개의 스크립트 파일을 사용하면서 모듈들이 함수들을 사용한다면, 하나의 모듈에 재사용 가능한 함수들을 모아놓고 다른 모듈들에서 call해서 사용하자 함수, 클래스, 변수들을 모아놓은 것이 파일(모듈)이라 한다면, 파일들을 모아 놓은 것이 패키지(디렉토리)이다. 그리하여 완성된 패키지를 배포한다. 모듈 run.py, calc.py가 있다면 (run.py는 실행모듈이며, calc.py는 함수들을 모은 기능모듈이라고 가정) my_module이라는 패키지 안에 a.py와 b.py가 있다면(a.py와 b.py는 기능 모듈이라고 가정) run.py 코드 import calc # calc.py의 함수들을 사용 -> calc함수명() import my_module.a as a # my_module에 있는 a를 a라..
Python_06(Package&Module) 모듈 : 독립적인 일을 할 수 있고 재사용 가능한 프로그램 단위 - 파이썬에서의 모듈은 재사용 가능한 함수, 클래스등(변수)을 작성한 소스파일(.py 스크립트 파일)을 말한다. - 모듈의 함수나 클래스들을 다른 python 프로그램에서 호출 하여 사용할 수 있다. -> 단 사용하기 위해서는 import 를 먼저 해야 한다. - 이런 모듈들을 모아 놓으면 라이브러리가 된다. 모듈의 종류 표준 모듈 : 파이썬에 내장된 모듈 사용자 정의 모듈 : 개발자가 재사용을 위해 직접 만든 모듈 3rd Party 모듈 : 특정 개발업체나 개발자들이 만들어 배포하는 모듈 (설치가 필요함 -> pip ~) - 사용자 정의 모듈도 배포되어 다른 곳에서 사용되면 3rd party 모듈이 된다. 패키지 : 모듈들을 모아 놓은 것..
Python_05-4(특수 메소드, class 변수와 메소드, static 메소드) 특수 메소드 : 특정한 상황에서 사용될 때 자동으로 호출되도록 파이썬 실행환경에 정의된 약속된 메소드들이다. - 객체에 특정 기능들을 추가할 때 사용한다. - 언제 호출되는지 정해져 있다.(그렇기 때문에 언제 호출되는지를 아는 것이 중요) ex) __init__() => 객체 생성할 때 호출 된다. 형식 : 메소드 명이 더블 언더스코어로 시작하고 끝난다. ->__이름__() ex) __init__(), __str__() 실행환경이 실행시켜주는 메소드, 콜백 메소드(call back) 또는 매직 메소드(Magic Method), 던더(DUNDER) 메소드라고도 한다. 주요 특수 메소드 __init__(self [, …]) - Initializer - 객체 생성시 호출 된다. - 객체 생성시 Attribut..
Python_05-3(TO DO 정리) 제품 클래스 구현 속성 : 제품ID:str 제품이름: str, 제품가격:int, 제조사이름:str 정보은닉에 맞춰서 작성. 값을 대입/조회 하는 것은 변수처리 방식을 할 수 있도록 구현. 메소드: 전체 정보를 출력하는 메소드 메소드 : setter-4개, getter-4개. 전체정보 출력하는 메소드-1개 # property() 함수 이용 class Item: # attribute 초기화는 initializer에서 한다. def __init__(self, item_id, item_name, price, maker): # attribute를 외부에서 접근하지 못하게 막는다 -> self.__변수명 self.__item_id = item_id self.__item_name = item_name self.__p..
Python_05-2(정보 은닉, property, decorator, 상속, 메소드 오버라이딩, isinstance) 정보 은닉(Information Hiding) : Attribute의 값을 caller(객체 외부)가 바꾸는 것을 방지하기 위해 직접 호출을 막는다. setter/getter 메소드를 통해 값을 변경/조회 하도록 한다. - 데이터 보호가 주 목적이다. Attribute 직접 호출 막기 보호하고 싶은 Attribute의 이름을 앞에 __(double underscore)붙이기 setter : Attribute의 값을 변경하는 메소드, set으로 시작 getter : Attribute의 값을 조회하는 메소드, get으로 시작 p = Person('홍길동', 20, '서울') print(p.name, p.age, p.address) p.print_info() # 값 변경 p.age = 30 p.print_in..