문제) 카페에서 음료 주문 받기
- A카페는 아메리카노, 카페라떼, 밀크티 메뉴가 있고 가격은 각각 1500, 2000, 3000 원임
- 사용자가 "종료"라는 말을 입력하기 전까지 계속 주문을 받음
- 3개의 종류 외의 음료를 입력 시 "해당 음료는 판매하지 않습니다." 안내 제공 후 계속 주문 받음
- 음료명을 제대로 입력한 경우, 해당 음료 주문한 수가 1개 증가함
- output은 사용자의 입력에 따라, 각 음료별 주문한 개수와 총 가격 출력
Output 예시)
주문 내역
아메리카노: 3잔
카페라떼: 0잔
밀크티: 1잔
총 가격: 7500원
아이디어 1)
menu_list와 price_list, cnt_list를 생성하여 해당 주문의 인덱스 값으로 cnt를 증가시킨 후 zip 함수를 사용해 3개의 리스트를 합쳐 주문 내역을 출력한다.
def order_coffee():
menu_list = ['아메리카노', '카페라떼', '밀크티']
price_list = [1500, 2000, 3000]
cnt_list = [0, 0, 0]
while True:
order = input('주문하실 음료를 입력하세요 (아메리카노, 카페라떼, 밀크티): ')
if order == '종료':
break
elif order in menu_list:
menu_index = menu_list.index(order)
cnt_list[menu_index] += 1
order_list = list(zip(menu_list, price_list, cnt_list))
print('주문 내역')
total_price = 0
for menu, price, cnt in order_list:
print(f'{menu}: {cnt}잔')
total_price += price * cnt
print(f'총 가격: {total_price}원')
else:
print('해당 음료는 판매하지 않습니다.')
Develop 1)
{'order': [price, cnt]} 형식으로 된 딕셔너리를 생성하여 해당 주문의 값은 total_price에 더해가고 cnt는 딕셔너리안에 저장한다. 또한, 주문 내역 출력문을 함수로 만들어 깔끔한 코드를 생성한다.
def order_output(order_history, total_price):
print('주문 내역')
for order in order_history:
print(f'{order}: {order_history[order][1]}잔')
print(f'총 가격: {total_price}원')
def order_coffee():
order_history = {'아메리카노': [1500, 0], '카페라떼': [2000, 0], '밀크티': [3000, 0]} #{'order' : [price, cnt]}
total_price = 0
while True:
order = input('주문하실 음료를 입력하세요 (아메리카노, 카페라떼, 밀크티): ')
if order == '종료':
break
elif order in order_history:
order_history[order][1] += 1
total_price += order_history[order][0]
else:
print('해당 음료는 판매하지 않습니다.')
return order_output(order_history, total_price)
다른 사람의 풀이)
americano = 1500
latte = 2000
milktea = 3000
order_list = [0, 0, 0]
while True:
c = input()
if c == '종료':
break
elif c == '아메리카노':
order_list[0] += 1
elif c == '카페라떼':
order_list[1] += 1
elif c == '밀크티':
order_list[2] += 1
else:
print('해당 음료는 판매하지 않습니다.')
total_price = order_list[0] * americano + order_list[1] * latte + order_list[2] * milktea
print("\n주문 내역\n아메리카노: ", order_list[0], "잔\n카페라떼: ", order_list[1], "잔\n밀크티: ", order_list[2], "잔\n총 가격: ", total_price, "원")
=> by. 성재님
각각 변수에 가격을 할당하고, order_list를 생성하여 cnt 값을 저장하여, cnt값과 가격을 곱해 총 금액을 계산한다.
'Python' 카테고리의 다른 글
(파이썬 다시 보기)파이썬, python: 5. 자료구조 (0) | 2023.05.08 |
---|---|
(도전)파이썬, python: 서울 자전거 데이터 분석을 판다스 없이 해보기 (0) | 2023.05.05 |
(도전)파이썬, python: 랜덤 숫자 맞추기 (0) | 2023.05.04 |
(파이썬 다시 보기)파이썬, python: 4. 클래스, 제너레이터와 이너레이터, 예외처리 (0) | 2023.05.04 |
(문제 풀이)파이썬, python: 반복문과 제어문 (0) | 2023.05.03 |
댓글