본문 바로가기
프로그래밍/파이썬

파이썬 공부 레벨 1의 9단계: 기본 예외 처리🧙‍♂️✨

by 용GPT 2024. 11. 21.

파이썬 공부 레벨 1의 9단계 기본 예외 처리
파이썬 공부 레벨 1의 9단계 기본 예외 처리

 

예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하는 방법입니다. 이를 통해 프로그램이 갑작스럽게 멈추는 것을 방지할 수 있어요.


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("오류: 숫자가 아닌 값을 입력했습니다!")

설명: 반복문 안에서 예외 처리를 사용해 잘못된 입력을 처리하고, 특정 조건에서 반복문을 종료합니다.


도전 과제! 🏆

  1. 두 숫자를 입력받아 나누기를 수행하는 프로그램을 작성하세요.
  2. 다음 조건을 만족하도록 작성하세요:
    • 숫자가 아닌 값이 입력되면 "숫자만 입력 가능합니다!" 출력.
    • 두 번째 숫자가 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 블록은 필수적인 안전 장치!
  • 반복문과 함께 사용하면 잘못된 입력에 유연하게 대처 가능합니다.