1170756432976625
Daniel Min Kyu Jheun
  • 2016.6.29 14:10
  • 조회수 128
  • 답변수 1
1170756432976625
Daniel Min Kyu Jheun
  • 2016.6.29 14:10
  • 조회수 128
  • 답변수 1

이해가 안 돼요

  1. MyException 클래스 정의를 어떻게 정의해야 할 지 모르겠습니다 def init(self): 이거 이후에 뭘 어떻게 입력해야 하죠?
  2. 이전부터 계속 발생한 문제인데요, indentation error가 자꾸 뜨는데요, 띄어쓰기도 다시 하고 다 지웠다가 탭으로 다시해봐도 반복돼요 해결법이 있나요?

my_exception
# 이 아래에 Exception을 상속 받는 MyException클래스를 정의하세요.
class MyException(Exception):
    def __init__(self):
        shops = {"송일문방구": {"가위": 500, "크레파스": 3000},
            "알파문구": {"풀": 800, "도화지": 300, "A4용지": 8000},
            "다이소": {"풀": 500, "목공본드": 2000, "화분": 3000}}

        try:
            for shop, products in shops.items():
                for product, price in products.items():
                    if product == '풀':
                        print("{}: {}원".format(shop, price))
                        raise MyException
        except MyException:
            print("풀을 찾았습니다.")
  • #파이썬 입문
  • #내 예외 만들기 - 실습

1 답변

  • Spgjnhnsidwygch8ddkd
    Chandler
    • 2016.6.30 01:59

    shops와 try 구문이 class 안에 포함되어 있으면 안됩니다.
    기존 작성되어 있던 코드는 단순히 프로그램 실행 코드이고, 문제에서 요구하는 것은 Exception클래스를 상속받는 MyException이라는 예외 클래스를 만들어 보라는 것 입니다.

    shops = {
        "송일문방구": {"가위": 500, "크레파스": 3000},
        "알파문구": {"": 800, "도화지": 300, "A4용지": 8000},
        "다이소": {"": 500, "목공본드": 2000, "화분": 3000}
    }
    
    try:
        for shop, products in shops.items():
            for product, price in products.items():
                if product == '':
                    print("{}: {}원".format(shop, price))
                    raise MyException
    except MyException:
        print("풀을 찾았습니다.")
    

    이 코드 맨위에 예외 클래스를 정의 하면 됩니다.
    이후, 작성되어 있던 코드를 따라가다가 raise MyException 을 만나면 만든 예외 클래스로 예외가 발생했다고 전달 되는 것입니다.

    강의 1:50 ~ 2:36 를 다시 한번 보시고 풀어보세요.
    잊지 마셔야 할 점은 클래스를 정의하고 내부를 비워둘 경우 강의처럼 주석을 적어 주셔야합니다.
    해보시고 궁금한 점 있다면 댓글 달아주세요 :)

    • 강의에서는 다른 파일에 예외클래스가 정의되어 있는데, 하나의 파일에 정의되어도 가능합니다. 이 경우import가 필요 없겠죠.-Chandler
      2016.6.30 02:01
    • 이해 됐습니다! 바로 해결되네요 감사해요!-Daniel Min Kyu Jheun
      2016.6.30 13:05

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.