31finally
32_Exception 클래스
33사용자 Exception 클래스
34텍스트 파일 쓰기
35텍스트 파일 읽기
36_텍스트 파일 열기
37_with ~ as문
38_writelines()
39_readlines(), readline()
예시코드)
try:
inputData = input('input data: ')
numInt = int(inputData)
except:
print('exception raise!!')
print('not number!!')
else:
if numInt % 2 == 0:
print('even number!!')
else:
print('odd number!!')
finally:
print(f'inputData: {inputData}')
결과)
input data: 10
even number!!
inputData: 10
예시코드2)
evenList = []; oddList = []; floatList = []; dataList = []
n = 1
while n < 6:
try:
data = input('input number: ')
floatNum = float(data)
except:
print('exception raise!!')
print('not number!!')
continue
else:
if floatNum - int(floatNum) != 0:
print('float number!!')
floatList.append(floatNum)
else:
if floatNum % 2 == 0:
print('even number!!')
evenList.append(floatNum)
else:
print('odd number!!')
oddList.append(floatNum)
n += 1
finally:
dataList.append(data)
print(f'evenList: {evenList}')
print(f'oddList: {oddList}')
print(f'floatList: {floatList}')
print(f'dataList: {dataList}')
실행결과)
input number: 1
odd number!!
input number: 2
even number!!
input number: 10
even number!!
input number: 15
odd number!!
input number: 3.2
float number!!
evenList: [2.0, 10.0]
oddList: [1.0, 15.0]
floatList: [3.2]
dataList: ['1', '2', '10', '15', '3.2']
예외가 발생할 경우 어떤 에러인지 문구를 출력해준다.
예시코드)
num1= int(input('input number1: '))
num2= int(input('input number2: '))
try:
print(f'num1 / num2: {num1 / num2}')
except Exception as e:
print(f'exception: {e}')
print('0으로 나눌 수 없어요')
print(f'num1 * num2 = {num1 * num2}')
print(f'num1 - num2 = {num1 - num2}')
print(f'num1 + num2 = {num1 + num2}')
실행결과)
input number1: 10
input number2: 0
exception: division by zero
0으로 나눌 수 없어요
num1 * num2 = 0
num1 - num2 = 10
num1 + num2 = 10
예시코드)
def divCalculator(n1,n2):
if n2 != 0:
print(f'{n1} / {n2} = {n1 / n2}')
else:
raise Exception('0으로 나눌 수 없습니다.')
num1 = int(input('input number1: '))
num2 = int(input('input number2: '))
try:
divCalculator(num1, num2)
except Exception as e:
print(f'Exception : {e}')
실행결과)
input number1: 10
input number2: 0
Exception : 0으로 나눌 수 없습니다.
위에 코드를 보면 if else 문에서 else 에 raise 키워드를 사용하여 우리가 에러 메세지를
직접 지정할 수 있다. 아래 함수를 실행하는 부분을 try 문에 넣고 함수에 문제가 생길 경우
except 문이 실행이 되는데 그때 위에 지정했던 Exception 문구를 불러 온다.
실습코드)
def sendSMS(msg):
if len(msg) > 10:
raise Exception('길이 초과! MMS 전환 후 발송!!', 1)
else:
print('sms발송!')
def sendMMS(msg):
if len(msg) <= 10:
raise Exception('길이 미달!! SMS전환 후 발송!!', 2)
else:
print('MMS발송!!')
msg = input('input message: ')
try:
sendMMS(msg)
except Exception as e:
print(f'e: {e.args[0]}')
print(f'e: {e.args[1]}')
if e.args[1] == 1:
sendMMS(msg)
elif e.args[1] == 2:
sendSMS(msg)
실행결과)
input message: 안녕하세요
e: 길이 미달!! SMS전환 후 발송!!
e: 2
sms발송!
finally 는 파이썬을 사용하면서 처음 써보는 코드였는데,
유용하게 사용할 수 있는 구문이라는 생각이 들었다.
파이썬 기초는 어느정도 알고 있다고 여겼었는데 이렇게 처음 알게되는 것들이 많다는 것을
느끼고 기초를 정말 탄탄하게 다시 공부해야겠다는 생각이 들었다.
특히 파이썬은 에러가 나면 코드가 그냥 죽어버리기 때문에 try-except 문이
개발자들에게 매우 유용하다는 생각이 들었다. 역시 코딩은 문법을 잘 알기는 해야겠다.
또한 함수 두개를 if 문과 try except 문을 사용해서 왔다갔다 실행할 수 있도록
하는 방법도 너무 꿀팁이라 생각했다ㅋㅋㅋㅋ 실제로 어릴 때 문자시절에는 이런 코드를 가지고
핸드폰 기능을 집어넣었겠구나 생각하니 더욱 흥미로웠다.
파이썬 (중급문풀 6~7)
파이썬 (중급문풀 8)
기초수학 (기초1~2)
기초수학 (기초1~2)
기초수학 (기초3)
파이썬 2 위클리 퀴즈
+(스터디 모임)