본문 바로가기

Python

Python - 예외 처리 (except)

# 예외처리 : 예외가 발생한 경우 정상화 시켜주기 위한 기능 
#            try except 예약어 사용함 
idx = "파이썬".index('일') #예외 발생됨 비정상 종료됨 파이썬 문장 출력안됨
print("파이썬")

mystr = "파이썬 공부 중입니다. 파이썬을 열심히 공부합시다."
strpos=[] # 파이썬의 위치 값을 저장 
index = 0 
while True :
    index = mystr.find("파이썬",index) #0
    if index == -1:
        break
    strpos.append(index)
    index += 1
print("파이썬 문자의 위치",strpos,"문자의 갯수",len(strpos))


# 예외처리
mystr = "파이썬 공부 중입니다. 파이썬을 열심히 공부합시다."
strpos=[]
index = 0 
while True :
    try : 
        index = mystr.index("파이썬",index)
        strpos.append(index)
        index += 1
    except :
        break
print("파이썬 문자의 위치",strpos,"문자의 갯수",len(strpos))

'''
012    34  56789    13
파이썬 공부 중입니다. 파이썬
'''

# 숫자만 입력하세요 출력하기
try : 
    int("홍길동") #예외 발생 
except : #예외 발생시만 실행되는 구문 
    print("숫자만 입력하세요.")

try : 
    print(int(123)) #예외 발생 
except : #예외 발생시만 실행되는 구문 
    print("숫자만 입력하세요.")

# 다중 예외처리 
# 하나의 try 구문에 except 구문이 여러개인 문장
# 발생되는 예외 별로 다른 처리가 가능 
num1 = input("숫자형 문자 1 입력 :") 
num2 = input("숫자형 문자 2 입력 :") 

num1 = int(num1)
num2 = int(num2)

# 문자 입력시 ValueError 예외 발생 => 예외 처리하기 
num1 = input("숫자형 문자 1 입력 :") 
num2 = input("숫자형 문자 2 입력 :") 
try :
    num1 = int(num1)
    num2 = int(num2)
except ValueError as e :
    print("숫자만 입력하세요. 숫자로 변환 할 수 없습니다.")
    print(e)

# 예외 발생
num1 = input("숫자형 문자 1 입력 :") 
num2 = input("숫자형 문자 2 입력 :") 
try :
    num1 = int(num1)
    num2 = int(num2)
    res = num1/num2
    print(res)
except ValueError as e :
    print("숫자만 입력하세요. 숫자로 변환 할 수 없습니다.")
    print(e)
except ZeroDivisionError as e :
    print("0으로 나눌 수 없습니다.")
    print(e)

finally : 
    print("프로그램 종료")

숫자 입력
문자 입력

 

0 입력

# 무한 반복 while문 추가와 KeyboardInterrupt 추가
num1 = input("숫자형 문자 1 입력 :") 
num2 = input("숫자형 문자 2 입력 :") 
try :
    num1 = int(num1)
    num2 = int(num2)
    while True :
        res = num1/num2
        print(res)
except ValueError as e :
    print("숫자만 입력하세요. 숫자로 변환 할 수 없습니다.")
    print(e)
except ZeroDivisionError as e :
    print("0으로 나눌 수 없습니다.")
    print(e)
except KeyboardInterrupt as e :
    print("프로그램 강제 종료 시켰습니다. 프로그램 코딩을 확인하세요.")
finally : 
    print("프로그램 종료")

 

최종

num1 = input("숫자형 문자 1 입력 :") 
num2 = input("숫자형 문자 2 입력 :") 
try :
    list1 = [0]
    print(list1[0]) #IndexError 예외 발생 
    num1 = int(num1)
    num2 = int(num2)
    while True :
        res = num1/num2
        print(res)
except ValueError as e :
    print("숫자만 입력하세요. 숫자로 변환 할 수 없습니다.")
    print(e)
except ZeroDivisionError as e :
    print("0으로 나눌 수 없습니다.")
    print(e)
except KeyboardInterrupt :
    print("프로그램 강제 종료 시켰습니다. 프로그램 코딩을 확인하세요.")
except :
    print("프로그램 코딩확인하세요.")
finally : 
    print("프로그램 종료")

'Python' 카테고리의 다른 글

Python - Class  (0) 2021.06.16
Python - 예외처리 연습문제  (0) 2021.06.16
Python - 함수/입력 연습 문제(피보나치 수열, 홀수 짝수 문제)  (0) 2021.06.15
Python - 반환값 return  (0) 2021.06.14
Python - 함수와 람다  (0) 2021.06.14