728x90
Chapter 10. 예외 처리
1. 예외 처리
⦁ 프로그램을 만들 때 발생하는 오류를 처리하기 위해 사용
⦁ try, except 구문을 사용하여 예외 처리
⦁ except를 여러개 사용하여 다양한 오류에 대해 처리 가능
2. Example
a. valueError
# valueError
a = 'abc'
print(a)
print(type(a))
try:
b = int(a)
except ValueError:
b = -1
print(b)
print(type(b))
# 결과값
abc
<class 'str'>
-1
<class 'int'>
b. indexError
# indexError
x = []
try:
print(x[0])
except IndexError:
print('IndexError')
# 결과값
IndexError
c. 전국건강증진센터표준데이터
# 전국건강증진센터표준데이터
csv_data=[]
# 데이터를 가져와 쉼표로 나눔
with open('전국건강증진센터표준데이터.csv') as f:
for line in f:
csv_data.append(line.split(','))
# column 중 의사 수의 index를 대입
doctor_index = csv_data[0].index('의사수')
# 데이터 column 출력
for i,e in enumerate(csv_data[0]):
print(i,e)
# 결과값
0 건강증진센터명
1 건강증진센터구분
2 소재지도로명주소
3 소재지지번주소
4 위도
5 경도
6 건강증진업무내용
7 운영시작시각
8 운영종료시각
9 휴무일정보
10 건물면적
11 의사수
12 간호사수
13 사회복지사수
14 영양사수
15 기타인력현황
16 기타이용안내
17 운영기관전화번호
18 운영기관명
19 관리기관전화번호
20 관리기관명
21 데이터기준일자
22 제공기관코드
23 제공기관명
doctor_count=[]
# 각 센터의 의사 수를 새로운 리스트에 추가
for e in csv_data[1:]:
doctor_count.append(e[doctor_index])
print(doctor_count)
# 리스트의 길이를 통해 센터 수 확인
print('center count: ', len(doctor_count))
# 리스트 내 값이 0인 곳의 수를 구해 의사가 없는 센터 수 확인
print('center with no doctor: ', doctor_count.count('0'))
# 결과값
['0', '0', '1', '0', '0', '1', '0', '1', '1', '1', '1', '0', '1', '1', '1', '1', '1', '1', '0', '0', '1', '1', '1', '0', '1', '0', '0', '0', '0', '0', '0', '1', '1', '12', '1', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '1', '1', '2', '1', '0', '1', '0', '1', '1', '0', '1', '0', '1', '1', '1', '1', '1', '1', '0', '1', '0', '0', '2', '1', '0', '1', '1', '0', '0', '1', '0', '1', '0', '0', '0', '0', '0', '1', '0', '0', '1', '1', '1', '1', '1', '0', '0', '0', '1', '1', '1', '1', '1', '0', '1', '0', '0', '0', '1', '0', '0', '1', '0', '1', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '1', '1', '1', '0', '0', '0', '0', '0', '1', '0', '1', '0', '0', '0', '0', '0', '1', '0', '1', '1', '1', '1', '0', '1', '1', '0', '0', '7', '1', '0', '0', '0', '0', '0', '1', '0', '1', '1', '5', '1', '1', '0', '0', '0', '0', '0', '1', '1', '1', '1', '2', '0', '0', '0', '0', '0', '1', '0', '1', '0', '1', '1', '0', '0', '0', '1', '1', '1', '1', '0', '0', '0', '0', '0', '0', '1', '1', '1', '2', '0', '0', '0', '0', '1', '1', '0', '0', '0', '1', '1', '1', '0', '1', '0', '0', '0', '1', '4', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '0', '0', '1', '1', '1', '0', '0', '0', '1', '0', '0', '0', '0', '0', '0', '1', '1', '4', '1', '0', '1', '0', '0', '0', '1', '0', '1', '0', '1', '1', '0', '1']
center count: 292
center with no doctor: 167
# 오류가 발생할 경우 그 값을 0으로 변경하는 예외 처리
for i, c in enumerate(doctor_count):
try:
doctor_count[i] = int(c)
except:
doctor_count[i] = 0
print('total doctor count: ', sum(doctor_count))
# 결과값
total doctor count: 156