AI기본과정/파이썬 기초

파이썬 기초 | 예외 처리 | try ~ except ~ | ZeroDivisionError | IndexError

ANNASENA 2023. 5. 31. 08:00
728x90

 

 

1. 예외 처리

: 코드 실행 중 발생되는 예외적인 상황(ex. 에러 발생)을 대비해 예외를 어떻게 처리할 것인지 따로 코딩해놓는 것 (try~ except~문)

try :

except :

 

[연습문제 1]

 

* 문자열 PER(Price to Earning Ratio) 값을 실수로 변환할 때 에러가 발생함. 예외처리를 통해 에러가 발생하는 PER은 0으로 출력하기

 

▶ 에러 발생

per = ["10.31","","8.00"]  # 빈 공간인 데이터 값이 있기 때문에 float(i)는 에러남

for i in per :
    print(float(i))

 

▶ 예외 처리하기

per = ["10.31","","8.00"]  
new_per = []

for i in per :
    try :
        v = float(i)
    except :
        v = 0
    new_per.append(v)
        
print(new_per)

 

 

 

[연습문제 2]

 

* 어떤 값을 0으로 나누면 ZeroDivisionError가 발생함. 

try~ except ~로 예외처리를 하되, 모든 에러에 대해 예외처리 하지 말고,  ZeroDivisionError에 대해서만 예외처리 하기

 

try :
    b = 3 / 0
    print(b)

    
except ZeroDivisionError :
    print('0으로 나누면 안됩니다.')

 

 

[연습문제 3]

 

* 다음과 같은 코드 구조에서 발생하는 에러를 예외처리하여 적절한 에러메시지 출력하기

 

▶ for문을 이용해 출력되는 i 값이  data 리스트의 범위를 벗어남 → 에러 발생

(data 리스트의 값은 3개인데 for문으로 출력되는 i는 5개, data 리스트에 없는 i값은 인덱싱이 안됨)

data = [1,2,3]

for i in range(5) :
    print(data[i])

 

▶ 예외 처리

# 1

data = [1,2,3]

for i in range(5) :
    try :
        print(data[i])
    except :
        print("리스트의 범위를 벗어났습니다")
# 2

data = [1,2,3]

for i in range(5) :
    try :
        print(data[i])
    except IndexError as e :
        print(e)

728x90