예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 방법입니다. 이를 통해 프로그램이 갑작스럽게 멈추는 것을 방지할 수 있어요.
1. try-except 기본 구조
# 예외 처리 기본 구조
try:
num = int(input("숫자를 입력하세요: "))
print(f"입력한 숫자는 {num}입니다.")
except ValueError:
print("오류: 숫자가 아닌 값을 입력했습니다!")
설명: try
블록에서 오류가 발생하면 except
블록이 실행됩니다.
2. 여러 종류의 예외 처리
try:
num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))
result = num1 / num2
print(f"결과: {result}")
except ValueError:
print("오류: 숫자가 아닌 값을 입력했습니다!")
except ZeroDivisionError:
print("오류: 0으로 나눌 수 없습니다!")
설명: 여러 종류의 오류를 각각 다른 except
블록으로 처리할 수 있습니다.
3. else와 finally 사용
try:
num = int(input("숫자를 입력하세요: "))
except ValueError:
print("오류: 숫자가 아닙니다!")
else:
print(f"입력한 숫자는 {num}입니다.") # 오류가 없을 때 실행
finally:
print("프로그램 종료!") # 항상 실행
설명:
else
: 예외가 발생하지 않았을 때 실행.finally
: 예외 발생 여부와 상관없이 항상 실행.
4. 사용자 정의 예외
class NegativeNumberError(Exception):
pass
try:
num = int(input("양수를 입력하세요: "))
if num < 0:
raise NegativeNumberError("음수는 입력할 수 없습니다!")
except NegativeNumberError as e:
print(f"오류: {e}")
설명: raise
키워드로 사용자 정의 예외를 발생시킬 수 있습니다.
5. 예외 처리와 반복문
while True:
try:
num = int(input("숫자를 입력하세요 (종료하려면 -1): "))
if num == -1:
print("프로그램을 종료합니다.")
break
print(f"입력한 숫자는 {num}입니다.")
except ValueError:
print("오류: 숫자가 아닌 값을 입력했습니다!")
설명: 반복문 안에서 예외 처리를 사용해 잘못된 입력을 처리하고, 특정 조건에서 반복문을 종료합니다.
도전 과제! 🏆
- 두 숫자를 입력받아 나누기를 수행하는 프로그램을 작성하세요.
- 다음 조건을 만족하도록 작성하세요:
- 숫자가 아닌 값이 입력되면 "숫자만 입력 가능합니다!" 출력.
- 두 번째 숫자가 0이면 "0으로 나눌 수 없습니다!" 출력.
- 정상적으로 계산되면 결과를 출력하고 프로그램 종료.
도전 과제 정답 코드:
더보기
while True:
try:
# 두 숫자 입력받기
num1 = float(input("첫 번째 숫자를 입력하세요: "))
num2 = float(input("두 번째 숫자를 입력하세요: "))
# 나누기 연산 수행
result = num1 / num2
print(f"나누기 결과: {result}")
break # 정상적으로 계산되면 반복 종료
except ValueError:
print("숫자만 입력 가능합니다!") # 잘못된 값 처리
except ZeroDivisionError:
print("0으로 나눌 수 없습니다!") # 0으로 나누기 방지
실행 예시:
첫 번째 숫자를 입력하세요: 열
숫자만 입력 가능합니다!
첫 번째 숫자를 입력하세요: 10
두 번째 숫자를 입력하세요: 0
0으로 나눌 수 없습니다!
첫 번째 숫자를 입력하세요: 10
두 번째 숫자를 입력하세요: 2
나누기 결과: 5.0
꿀팁 🐍✨
- 예외 처리는 프로그램이 멈추지 않고 계속 작동하도록 도와줍니다.
try-except
블록은 필수적인 안전 장치!- 반복문과 함께 사용하면 잘못된 입력에 유연하게 대처 가능합니다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 공부 레벨 1의 8단계: 함수 🧙♂️✨ (2) | 2024.11.20 |
---|---|
파이썬 공부 레벨 1의 7단계: 반복문🧙♂️✨ (0) | 2024.11.19 |
파이썬 공부 레벨 1의 6단계: 리스트 🧙♂️✨ (1) | 2024.11.18 |
파이썬 공부 레벨 1의 5단계: 문자열 🧙♂️✨ (5) | 2024.11.15 |
파이썬 공부 레벨 1의 4단계: 연산자와 형 변환 🌈🔢 (3) | 2024.11.14 |