예상하지 못한 예외가 프로그램 전체 실행에 영향이 없도록 처리함
예외 발생 예상 구문을 try ~ except로 감싼다
evenList = []; oddList = []; floatList = []; dataList = []
n = 1
while n < 6:
try:
data = input('input number: ')
floatNum = float(data)
except:
print('exception raise!!')
print('requesting new input!!')
continue
else:
if floatNum - int(floatNum) != 0:
print('float number!')
floatList.append(floatNum)
else:
if floatNum % 2 == 0:
print('even number!')
evenList.append(int(floatNum))
else:
print('odd number!')
oddList.append(int(floatNum))
n += 1
finally:
dataList.append(data)
print(f'evenList: {evenList}')
print(f'oddList: {oddList}')
print(f'floatList: {floatList}')
print(f'dataList: {dataList}')
num1 = int(input('input number: '))
num2 = int(input('input number: '))
try:
print(f'num1 / num2: {num1 / num2}')
except Exception as e:
# == except Exception as error
print(f'exception: {e}')
print(f'num1 + num2: {num1 + num2}')
print(f'num1 - num2: {num1 - num2}')
print(f'num1 * num2: {num1 * num2}')
# 사용자 Exception 클래스는 무조건 Exception을 상속 받아야 함
class NotUseZeroException(Exception):
def __init__(self, n):
super().__init__(f'{n}은 사용할 수 없습니다.')
def divCal(n1, n2):
if n2 == 0:
raise NotUseZeroException(n2)
else:
print(f'{n1} / {n2} = {n1 / n2}')
num1 = int(input('input number: '))
num2 = int(input('input number: '))
try:
divCal(num1, num2)
except NotUseZeroException as e:
print(e)
readlines() 함수는 파일의 모든 데이터를 읽어서 리스트 형태로 반환한다.
readline() 함수는 한 행을 읽어서 문자열로 반환한다.
이상 데이터 취업 스쿨 Chp3 파이썬 중급의 저번 진도 이후의 스터디노트이다.
저번과 똑같이 진도를 따라잡는 중이며, 어려움은 사라지지 않는다.
빨리 진도를 따라잡아야 한다는 조급함이 남는다.
이미지 출처: @waterglasstoon, 제로베이스 강의 일부