AboutPython
[파이썬] try ~ except ~ else, finally
scone
2022. 5. 4. 15:36
[try ~ except ~ else]
- try 구문을 실행해서 에러가 발생 했을때는 except를 출력하고, 에러가 발생하지 않으면 else 구문이 출력된다.
[실습1] 사용자로부터 숫자 5개 입력받아 짝수, 홀수, 실수로 구분해서 각각을 리스트에 저장하는 프로그램을 만들자.
- 전 게시물에서는 conitnue를 써서 except 밑에 구문들을 실행할 필요 없게 했는데,
try ~ except ~ else 는 어차피 else 구문을 실행하지 않으니 continue를 적을 필요가 없게 됐다.
evenlist=[]
oddlist=[]
floatlist=[]
n=5
while n>0:
try :
inputNum = float(input('숫자 입력 : '))
except :
print('숫자만 입력하세요.')
else :
if inputNum % 1 != 0:
floatlist.append(inputNum)
elif inputNum % 2 != 0 :
oddlist.append(int(inputNum))
elif inputNum % 2 == 0 :
evenlist.append(int(inputNum))
n-=1
print(f'홀수 리스트 : {oddlist}')
print(f'짝수 리스트 : {evenlist}')
print(f'실수 리스트 : {floatlist}')
'''
숫자 입력 : 3.14
숫자 입력 : 23
숫자 입력 : 22
숫자 입력 : abc
숫자만 입력하세요.
숫자 입력 : 문자
숫자만 입력하세요.
숫자 입력 : 3.72
숫자 입력 : 1
홀수 리스트 : [23, 1]
짝수 리스트 : [22]
실수 리스트 : [3.14, 3.72]
'''
[finally]
- 예외 발생과 상관없이 항상 실행한다.
ex) 외부 자원을 가지고 쓸 때, 예외가 발생하던 발생하지 않던 반드시 마지막에 자원 해제를 해줘야하는데 그럴 때 주로 쓴다.
try :
inputData = input('정수를 입력해주세요 : ')
inputNum = int(inputData)
except :
print('정수가 아닙니다!!')
print('정수가 더 멋있어요!')
else :
print('이것은 정수가 맞군요.')
print('정수 좋아')
finally :
print(f'당신은 {inputData}를 입력하셨습니다.')
'''
# 정수를 입력했을 때
정수를 입력해주세요 : 10 # try
이것은 정수가 맞군요. # else
정수 좋아
당신은 10를 입력하셨습니다. # finally
# 정수를 입력하지 않아 에러가 발생했을 때
정수를 입력해주세요 : 안녕 # try
정수가 아닙니다!! # except
정수가 더 멋있어요!
당신은 안녕를 입력하셨습니다. # finally
'''
[실습2] 실습 1의 프로그램에서 더 나아가, 사용자가 입력한 input을 모두 출력하는 프로그램을 만들자.
evenlist=[]
oddlist=[]
floatlist=[]
inputlist = []
n=5
while n>0:
try :
inputData = input('숫자 입력 : ')
inputNum = float(inputData)
except :
print('숫자만 입력하세요.')
else :
if inputNum % 1 != 0:
floatlist.append(inputNum)
elif inputNum % 2 != 0 :
oddlist.append(int(inputNum))
elif inputNum % 2 == 0 :
evenlist.append(int(inputNum))
n-=1
finally :
inputlist.append(inputData)
print(f'홀수 리스트 : {oddlist}')
print(f'짝수 리스트 : {evenlist}')
print(f'실수 리스트 : {floatlist}')
print(f'사용자가 입력한 리스트 : {inputlist}')
'''
숫자 입력 : 어디
숫자만 입력하세요.
숫자 입력 : 봅시다.
숫자만 입력하세요.
숫자 입력 : hi
숫자만 입력하세요.
숫자 입력 : 5
숫자 입력 : 4
숫자 입력 : 3.21
숫자 입력 : 21
숫자 입력 : 1
홀수 리스트 : [5, 21, 1]
짝수 리스트 : [4]
실수 리스트 : [3.21]
사용자가 입력한 리스트 : ['어디', '봅시다.', 'hi', '5', '4', '3.21', '21', '1']
'''