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
'''
x = 3
y = 0
L = [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 |
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 - 출력 예제 (print / str, int 함수 / 서식 문자 사용)
728x90
반응형
'IT & 일상기록 > Python' 카테고리의 다른 글
[확고의 쓱~ 훑어보는 기록] Python - DB (2) (select / insert / update / delete / 시퀀스 생성,삭제 / 테이블 생성,삭제) (0) | 2022.08.04 |
---|---|
[확고의 쓱~ 훑어보는 기록] Python - DB (1) (데이터베이스 연결 방법) (0) | 2022.08.03 |
[확고의 쓱~ 훑어보는 기록] Python - 연산자 오버로딩(__add__ / __radd__ / __sub__) (0) | 2022.08.03 |
[확고의 쓱~ 훑어보는 기록] Python - 상속 예제(2) (0) | 2022.08.03 |
[확고의 쓱~ 훑어보는 기록] Python - 상속 예제(1) ( __init__(self) 생성자 만들기 / 상속받는 클래스 생성 방법) (0) | 2022.08.03 |
댓글