Exception)
예외 처리에는 두 가지 경우가 존재한다.
1. 예상 가능한 예외(사용자의 입력 오류, 존재하지 않는 파일 호출 등)
2. 예상이 불가능한 예외(인터프리터 과정에서 발생, 개발자 실수, 인덱스 에러, ZeroDivisionError 등)
<해결법>
try ~except 문법
for i in range(10):
try:
print(10/i)
except ZeroDivisionError:
print("Not divided by 0")
try는 except 상황을 제외할 때 하위의 코드를 실행시킨다.
except는 예외 처리 상황이 발생 시 하위의 코드를 실행시킨다.
뿐만 아니라 파이썬의 Built in Exception은 IndexError, NameError, ZeroDivisionError, ValueError, FileNotFoundError 가 존재한다.
위와 같은 방식으로도 사용 가능하다.
<raise & assert>
while True:
value = input("변환할정수값을입력해주세요")
for digit in value:
if digit not in "0123456789":
raise ValueError("숫자값을입력하지않으셨습니다")
print("정수값으로변환된숫자:", int(value))
정수형의 타입에 맞지 않게 입력했을때 강제로 exception에 진입하게 하는 것이다.
이때 raise를 사용한다.
여담으로 파이썬의 문자열은 리스트(배열)의 일종이기 때문에 위와 같은 구현이 가능하다.
이와 다르게 특정 조건에 만족하지 못할 경우 예외를 발생시키는 assert도 존재한다.
File Handling)
파일 시스템이란 OS에서 파일을 저장하는 트리구조 저장체계이다.
디렉터리: 폴더 or 디렉터리, 디렉터리는 다른 파일과 디렉터리를 포함할 수 있다.
파일: 컴퓨터에서 정보를 저장하는 논리적 단위, 파일명과 확장자로 식별됨
파일은 text와 binary로 나눌 수 있다.
전자는 ASCII와 유니코드 문자열 집합으로 이루어져 있어 사람이 읽을 수 있다.(파이썬 코드 파일, html, txt 파일)
후자는 컴퓨터를 위한 이진법 형식으로 저장된 것이다.(일반적으로 메모장으로 열면 깨져 보임 엑셀, 워드 파일)
파이썬의 파일 처리를 위해선 open이라는 함수를 사용한다.
r = read 즉, 읽기 기능이다.
w = write 파일에 내용을 쓰는 것이다. 주의 점은 w로 열게 되면 기존 파일의 내용이 전부 사라지고 새롭게 작성된다.
a = append 파일에 내용을 추가시키고 싶을 때 사용한다.
#with open("abc.txt","r") as f
f = open("abc.txt","r")
while 1:
line = f.readline()
if not line:
break
print(line)
f.close()
read, readline, readlines를 활용해서 다양하게 표현이 가능하다.
with를 사용해서 위처럼 표현도 가능하다.
import random as rd와 비슷하다.
Write를 사용할 때 인코딩을 utf8으로 하는 것을 기억하자.
OS 모듈과 Pickle, Log Handling 등은 해당 책을 참고해서 필요할 때마다 본인에게 적절한 라이브러리를 참고하는 것이 좋다.
CSV : 필드를 쉼표(,)로 구분한 텍스트 파일, comma separate values, 엑셀 양식의 데이터를 프로그램에 적용시키기 위한 데이터 형식, import csv를 이용해서 csv객체로 간단히 처리 가능하다.
HTML: 웹 상의 마크업 언어의 일종이다. 정규 표현식(Regexp)를 통해서 데이터 추출 가능, re 모듈을 import 해서 사용한다.
XML: 데이터의 구조와 의미를 설명하는 마크업 언어 이다. HTML과 문법이 비슷하다. 컴퓨터 간에 정보를 주고받기 용이하다.
beautifulsoup을 이용해서 파싱 가능하다.
JSON: JavaScripy Object Notation이다. xml 대체제, 데이터의 용량이 적고 코드로 전환이 쉽다. 파이썬의 dict type과 상호호환이 가능하다. 파이썬에서 json 모듈을 제공하기에 import 해서 간단하게 사용이 가능하다.
'AI & Data Science' 카테고리의 다른 글
BoostCourse AI Pre-Course) 기초 수학(경사하강법) (0) | 2022.07.29 |
---|---|
BoostCourse AI Pre-Course) 기초 수학(numpy,벡터,행렬) (0) | 2022.07.26 |
BoostCourse AI Pre-Course) Python Module and Project (0) | 2022.07.24 |
인공지능 시험 정리 (0) | 2022.06.11 |
파이썬 딥러닝 머신러닝 입문 - 분류 (0) | 2022.01.21 |