파이썬 기초 : 치킨 주문
조회수 812회
# 치킨 주문 연습중입니다.
# Order = int(input("몇마리를 시키시겠습니까? : ")) 에서 indetificatoin error라고 뜹니다.
# order 라는 문구를 사용하면 안되는 걸까요?
# 코드 문제 일까요? 프로그램 설정 문제일까요?
class SoldOutError(Exception):
pass
chicken = 10
waiting = 1
while(True):
try:
Order = int(input("몇마리를 시키시겠습니까? : "))
if Order <= 0:
raise ValueError
elif Order >= 10:
raise SoldoutError
else:
print("{0}마리 치킨 주문 완료했습니다. {1}번 손님"\
.format(Order, waiting))
waiting += 1
Order -= chicken
if chicken == 0:
raise SoldOutError
break
except ValueError:
print("잘못된 값을 입력했습니다. 자연수를 입력하세요.")
except SoldOutError:
print("재고가 없습니다. 감사합니다.")
break
1 답변
-
치킨이라서... 확인해보게됬네요 ㅎㅎ
- 위에서 말씀하신 것처럼 일단 들여쓰기 오류가 있고요
- 치킨수가 줄어들지 않는 오류는 order와 chicken 순서를 변경해주시면 될것 같습니다
- SoldOutError의 경우에는 13번째 줄에서 O가 대문자가 아니어서 작동이 안됬네요. exception 프린트 해보시면 확일 하실수 있어요
class SoldOutError(Exception): pass chicken = 10 waiting = 1 while(True): try: Order = int(input("몇마리를 시키시겠습니까? : ")) if Order <= 0: raise ValueError elif Order > 10: raise SoldOutError #대문자 오타 else: print("{0}마리 치킨 주문 완료했습니다. {1}번 손님"\ .format(Order, waiting)) waiting += 1 chicken -= Order #순서변경 print(f'남은치킨 :{chicken}') if chicken == 0: raise SoldOutError break except ValueError: print("잘못된 값을 입력했습니다. 자연수를 입력하세요.") except : print(f"현재 재고는{chicken}마리 입니다. 재고가 없습니다. 감사합니다.") break
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력