본문 바로가기
IT관련/Python

[확고의 쓱~ 훑어보는 기록] Python - 예외 처리

by 확고 2022. 8. 3.
728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#-*- coding:utf-8
'''
Created on 2022. 4. 7.
 
@author: hwakgo
'''
= 3
= 0
 
= [1,2,3]
 
try:
    print(x/y)#★ 어떤 숫자를 0으로 나눌 수 없음. 여기서 발생한 에러를 마치 에러가 안 난 것처럼 예외 처리할 수 있음
    print(L[4])#★ 예외 처리 형태 : try / except, except2... / [else 생략 가능] / finally
               #★ 예외가 발생하면 여러 예외 중 해당하는 except로 이동/실행 -> [예외가 발생 안 하면 else로 이동] -> 마지막으로 finally를 실행
               #★ java에서 예외 처리 형태 : try / catch, catch2... / finally
#except ZeroDivisionError as err : #여기서 as err은 err로 별칭 지정
#    print('ZeroDivisionError 발생',err)
 
#except IndexError :
#    print('IndexError')
 
except : #★ 모든 예외 다 잡고 싶으면 아무것도 안 쓰면 된다
    print('except')#▶except
 
else : #예외가 발생 안 하면 else로 이동
    print('else')
 
finally :
    print('finally')#▶finally
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#-*- coding:utf-8
'''
Created on 2022. 4. 7.
 
@author: hwakgo
'''
#(문제 1) 숫자 입력받아서 두 수의 덧셈 출력하기(숫자가 아닌 것을 입력하면 값이 적절하지 않습니다 출력)
#     a = int(input('숫자1 입력'))
#     b = int(input('숫자2 입력'))
 
#(정답 1)
try :
    a = int(input('숫자1 입력:'))
    b = int(input('숫자2 입력:'))
    #print('a+b:',a+b) 여기에 넣어도 되고 else에 넣어도 된다
 
except ValueError :
    print('값이 적절하지 않습니다')
 
else :
    print('a+b : ',a+b) 
    
print('********************')    
 
#(문제 2)
#파일이 없으면 하나 생성하고 있으면 그 파일의 내용을 읽어서 콘솔 창에 출력해라
 
#(정답 2)
try:
    f = open('a.txt','r')#1. 파일을 읽어라
    #print(f.read())
except FileNotFoundError :#2. 파일 없어서 오류 뜨면
    f = open('a.txt','w')#3. 하나 생성해라(생성하면 반드시 프로젝트 새로고침)
else :
    print(f.read())#4. 오류 안 뜨면 콘솔 창에 출력해라
f.close()
 
print('********************')   
 
#★ 숫자를 입력받을 때 음수를 입력받으면 실제로 에러는 아니지만 에러라고 설정하고 싶을 경우 raise 사용
 
try :
    a = int(input('숫자1 입력:'))
    b = int(input('숫자2 입력:'))
    
    if a<0 or b<0 :
        raise ArithmeticError('음수 입력함'#★ 강제로 error 발생시키고 싶을 때 raise사용
    
except ArithmeticError as err:
    print('예외 발생',err)
 
else :
    print(a+b)
 
# 하나라도 음수를 입력하면 아래와 같이 콘솔 창에 출력됨
#▶ 예외 발생 음수 입력함   
 
# 음수 입력 안 해서 예외 발생 안 하면 else로 이동해서 print(a+b)를 실행함    
cs

 

1
2
3
Spring,5000
으헤헤,5000
 
cs
file.txt
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#-*- coding:utf-8
'''
Created on 2022. 4. 7.
 
@author: hwakgo
'''
 
while True :
    print('----- Menu Select -----')
    print('1. 전체 조회')
    print('2. 추가')
    print('3. 수정')
    print('4. 삭제')
    print('0. 종료')
    try:
        menu = int(input("번호 선택: ")) #실수로 문자를 입력하면 숫자로 입력하세요 띄우기
    except ValueError:
        print('숫자로 입력하세요')
        continue
    
    if menu == 1:
        print('1. 전체 조회')
        try:
            f = open('file.txt','r')
            #print(f.read())
        except FileNotFoundError :
            f = open('file.txt','w')
            f.close()
            
        for line in f.readlines() : #2줄이 반복대상인데 한줄만 line에 넣어라
            print(line,end='')
                
            
            
    elif menu == 2#선택한 메뉴가 2와 같다면..
        print('2. 추가')
        title = input('제목입력:')
        while True:
            try:
                price = int(input('가격입력:'))
            except ValueError:
                print('가격은 숫자로 입력하세요')
            else :
                break
        f = open('file.txt','a')
        f.write(title+','+str(price)+'\n')
        f.close()
        
    elif menu == 3:
        print('3. 수정')
    elif menu == 4:
        print('4. 삭제')
    elif menu == 0:
        print('0. 종료')
        break
print('프로그램을 종료합니다.')
 
#수정과 삭제는 직접해보기..
#Split(',') 쉼표를 구분자로 분리시키고..(미완성)
cs

 

▼ (이전 게시물) [확고의 쓱~ 훑어보는 기록] Python - 연산자 오버로딩(__add__ / __radd__ / __sub__)

 

[확고의 쓱~ 훑어보는 기록] Python - 연산자 오버로딩(__add__ / __radd__ / __sub__)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #-*- coding:utf-8 ''' Created on 2022. 4. 7. @author: hwakgo ''' class NumBox..

j-growthdiary.tistory.com

 

▼ (첫 번째 게시물) [확고의 쓱~ 훑어보는 기록] Python - 출력 예제 (print / str, int 함수 / 서식 문자 사용)

 

[확고의 쓱~ 훑어보는 기록] Python - 출력 예제 (print / str, int 함수 / 서식 문자 사용)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 #-*- coding:utf-8 ''' Created on ..

j-growthdiary.tistory.com

728x90
반응형

댓글