끄적이는 기록일지

10. [파이썬] 예외처리 사용하기 본문

파이썬

10. [파이썬] 예외처리 사용하기

시시나브로 2021. 7. 2. 15:23
728x90
 

9. [파이썬] HTML 기본문법

8. [파이썬] 디렉토리와 파일관리(SyntaxError 오류) 7. [파이썬] 사용자정의 함수와 패키지 모듈 6. [파이썬] 조건문과 반복문 - 반복문(2) 6. [파이썬] 조건문과 반복문 - 조건문(1) 5. [파이썬] 데이터 유

kcy51156.tistory.com

1. 예외처리

try :
	예외가 발생할 문장
except 예외 종류 :
	발생하면 실행할 문장
else :
	발생하지 않을 때 실행할 문장

2. ValueError 에러

#예외처리 예제1

#정상적인 경우
print('정상적인 경우\n')
no1 = int(input('숫자를 입력하세요:'))
print("\n입력값은 %s입니다." %no1)

#예외처리를 발생한 경우
print('\n예외가 발생하는 경우')

try :
    no2  =int(input('숫자를 입력하세요:'))
except ValueError :                        #except만 사용하면 모든 에러에 대처
    print('숫자를 입력하세요~')
else : #정상적인 경우
        print("\n입력값은 %s입니다." %no2)
        
        
        
>>정상적인 경우

숫자를 입력하세요:2

입력값은 2입니다.

예외가 발생하는 경우
숫자를 입력하세요:a
숫자를 입력하세요~

3. 0으로 나눌 때 발생하는 예외

no1 = 10
no2 = 0

try :
    print(no1 / no2)
except ZeroDivisionError :
    print("0으로 나눌 수 없습니다.")
    
    
>>0으로 나눌 수 없습니다.

 

3) 여러가지 예외 메시지 지정하기

#방법 1
no1 = 10
no2 = 0

try :
    print(no1 / no2)
except (ValueError, ZeroDivisionError) :
    print("예외상황이 발생했습니다.")
    
    
>>예외상황이 발생했습니다.



#방법 2
no1 = 10
no2 = 0

try :
    print(no1 / no2)
except ValueError :
    print("잘못된 값입니다.")
except ZeroDivisionError :
    print("0으로 나눌 수 없습니다.")
    
    
>>0으로 나눌 수 없습니다.

 

연습문제 1

아래 그림과 같이 총 5건의 이름이 저장되어 있는 "예외처리연습.txt."파일이 있습니다. 이 파일을 불러온 후 사용자에게 출력할 건수를 입력 받아서 해당 건수만큼 출력을 하되 파일의 건수보다 많은 건수를 출력할 경우 아래 그림과 같이 IndexError가 발생합니다. 파일의 행수보다 많은 행수가 입력될 경우 "모든 행이 출력 완료되었습니다."라는 메시지를 출력하도록 예외처리를 활용하여 코드를 작성하시오.

 

 

num = int(input("몇 번째까지 출력할까요?:"))

try :
    for i in range(num) :        
    	#open 파일 불러와 파일을 읽는다
        file = open("C:\py_temp2\예외처리연습.txt").read().splitlines()
        #읽은 파일을 한 행씩 분리하여 출력해준다.
        print(file[i])
#기존 행보다 많이 출력될 경우 아래와 같이 메세지를 출력한다.
except IndexError :
    print("모든 행이 출력완료되었습니다.")
    
    
    
    
>>몇 번째까지 출력할까요?:3
홍길동
일지매
전우치




# 파일의 행수보다 많은 행수가 입력됐을 때
>>몇 번째까지 출력할까요?:6
홍길동
일지매
전우치
강감찬
신사임당
모든 행이 출력완료되었습니다.

 

728x90
Comments