강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

레몬 녹차 (탈퇴)님의 프로필 이미지
레몬 녹차 (탈퇴)

작성한 질문수

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

퀴즈 #9

처음부터 치킨 11마리 시키면 재고가 부족합니다로 안 뜨는 이유...질문 있습니당

해결된 질문

작성

·

217

0

안녕하세요, 선생님

질문이 있습니다. 

작동은 잘되는데 처음부터 치킨 11마리를 시키면 바로 '재고가 부족합니다.'가 안끄는 이유를 모르겠습니다.

    if order > chicken:
      print('재료가 부족합니다.')
[코딩]
class SoldOutError (Exception):
  pass #pass

chicken=10
waiting=1
while(True):
  try#try 넣어줘야 함
    print('[남은 치킨 : {0}]'.format(chicken))
    order=int(input('치킨 몇 마리를 주문하시겠습니까? : '))
    if order > chicken:
      print('재료가 부족합니다.')
    elif order < 1#elif
      raise ValueError
    if chicken == 0:
      raise SoldOutError  
    else:
      print('[대기번호 {0}] {1}마리 주문 완료됐습니다.'.format(waiting, order))
      waiting += 1
      chicken -= order

  except ValueError: #try랑 같은 열
      print('잘못된 값을 입력하였습니다.')

  except SoldOutError: 
    print('재고가 소진돼 더 이상 주문을 받지 않습니다.')
    break #break

답변 2

1

안녕하세요... 선생님은 아니지만... 지나가면서 공부겸 해결해보았습니다..

처음에 break로 댓 달았다가 확인해보니 그게 아니어서 if문 구조를 바꾸었습니다..

class SoldOutError (Exception):

  pass #pass

chicken=10

waiting=1

while(True):

  try#try 넣어줘야 함

    print('[남은 치킨 : {0}]'.format(chicken))
    if chicken > 0# 치킨 유무로 재고 소진 여부를 먼저 확인
        order=int(input('치킨 몇 마리를 주문하시겠습니까? : '))
        if chicken < order: #주문량이 더 많을 경우 문구 출력
            print('재료가 부족합니다.')
        elif order < 1#elif # 정수가 아닌 것 입력시 문구 출력
            raise ValueError
        else:
            print('[대기번호 {0}] {1}마리 주문 완료됐습니다.'.format(waiting, order))
            waiting += 1
            chicken -= order
    else:   #치킨 전부 소진시 재고 소진 지시문 출력 후 종료
        raise SoldOutError
    
    

  except ValueError#try랑 같은 열

    print('잘못된 값을 입력하였습니다.')

  except SoldOutError: 

    print('재고가 소진돼 더 이상 주문을 받지 않습니다.')

    break #break

0

아! 먼저 재고 소진 여부를 확인해야 하는군요! 정말 감사합니다

레몬 녹차 (탈퇴)님의 프로필 이미지
레몬 녹차 (탈퇴)

작성한 질문수

질문하기