세조목

PYTHON 정리(Try-Except)(24.01.04) 본문

데이터 분석 공부/Python

PYTHON 정리(Try-Except)(24.01.04)

세조목 2024. 1. 4. 22:39

Try-Except

Try-Except문은 에러가 있어도 건너뛰게 할 수 있는 기능이다.

students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee', 'age' = 25},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}

위와 같은 딕셔너리 리스트가 있다고 가정해보자

나이가 25살 이상인 사람들의 이름만 출력하고싶다면 코드는 다음과 같을 것이다.

students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee', 'age' = 25},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}

for i in students:
	if i['age'] > 25:
    	print(i['name'])

 

그런데 만약 하나의 딕셔너리 內 age가 기재되어있지 않다면

오류값이 나올 것이다.

students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee'},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}

for i in students:
	if i['age'] > 25:
    	print(i['name'])

 

이 때 Try-Except문을 사용할 수 있다.

students = [
{'name' = 'Kim', 'age' = 22},
{'name' = 'Lee'},
{'name' = 'Song', 'age' = 28},
{'name' = 'Knag', 'age' = 23}
}

for i in students:
	try:
		if i['age'] > 25:
			print(i['name'])
	except:
		name = i['name']
		print(f'{name} - 에러입니다')
        
>>> Lee - 에러입니다
>>> Song

 

위 코드를 보면 25세를 초과한 사람의 이름인 'Song'이 출력되고

age가 없는 'Lee'의 이름과 함께 '에러입니다'라는 메시지가 반환된다.

 

유용한 기능이긴하지만 try-except 기능을 남발하면 어디에서 오류가 발생했는지 알 수가 없고

성능면에서도 좋지 않기때문에 남용하는 것은 금물이다.