[Python] 딕셔너리, .get() - 2

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

오늘의 코드

1. 주문 반복해서 받기

2. 주문 종료하기

3. 주문 내역 출력하기

4. 거스름돈 계산하기

menus = {"아메리카노":4000, "카페라떼":5000, "카페모카":6000}
order_list = []
total_price = 0

print("=====메뉴=====")
for name, price in menus.items():
    print(f"{name}: {price}원")

while True:
    selected_menu = input("주문할 메뉴를 입력하세요.")
    price = menus.get(selected_menu,0)

    if price != 0:
        order_list.append(selected_menu)
        total_price = total_price + menus[selected_menu]

    elif selected_menu == "q":
        print("주문종료")
        break
    else:
        print("메뉴가 없습니다.")

print(f"선택한 메뉴 : {order_list}")

money = int(input("돈을 넣으세요."))
change = money - total_price

if change >= 0:
    print(f"{len(order_list)}개 구매. 거스름돈은 {change}원 입니다.")
else:
    print("돈이 모자랍니다.")

 

오늘의 코드 결과

 

오늘의 코드 설명

for name, price in menus.items():

딕셔너리 menus의 키:값을 튜플 형태로 반환하여 name, price에 저장

    >name=아메리카노, 카페라떼, 카페모카

    >price=4000, 5000, 6000

1. 주문 반복해서 받기

while True:

무한 루프

조건이 항상 참(True)이기 때문에, 계속 반복

break문을 사용하여 반복 종료

selected_menu = input("주문할 메뉴를 입력하세요.")
price = menus.get(selected_menu,0)

 

사용자에게서 메뉴 이름을 입력받아서 selected_menu에 저장

리스트 menus의 키에 selected_menu가 있으면 해당 값을 price에 저장

없으면 price에 0 저장

2. 주문 종료하기

if price != 0:
	order_list.append(selected_menu)
	total_price = total_price + menus[selected_menu]

price가 0이 아닐경우

selected_menu를 리스트 order_list에 요소로 추가하고

사용자가 입력한 메뉴 이름이 판매하는 메뉴에 있음

기존 total_price에 menus[selected_menu]를 더하여 다시 total_price에 저장

    >selected_menu=사용자가 입력한 메뉴

    >menus[selected_menu]=사용자가 입력한 메뉴의 가격

     딕셔너리이름[키]=값

elif selected_menu == "q":
	print("주문종료")
	break
else:
 	print("메뉴가 없습니다.")

price가 0이면서 selected_menu가 q와 같을 경우 "주문종료" 출력 후 반복문 탈출

메뉴 입력 순서에서 q를 입력 (사용자가 입력한 메뉴가 판매하는 메뉴에 없고 q와 같음)

price가 0이면서 selected_menu가 q와 같지않을 경우 "메뉴가 없습니다" 출력 후 반복 진행

사용자가 입력한 메뉴가 판매하는 메뉴에 없고 q를 입력하지도 않았음

3. 주문 내역 출력하기

print(f"선택한 메뉴 : {order_list}")

    >order_list=사용자가 입력한 메뉴 리스트

4. 거스름돈 계산하기

money = int(input("돈을 넣으세요."))
change = money - total_price

    >money=사용자가 입력한 돈

    >total_price=사용자가 입력한 메뉴의 가격 합

    >change= 사용자가 입력한 돈- 사용자가 입력한 메뉴의 가격 합 =거스름돈

if change >= 0:
    print(f"{len(order_list)}개 구매. 거스름돈은 {change}원 입니다.")

change가 0보다 크거나 같을 때 리스트 order_list의 요소 개수와 change 출력

거스름돈이 있거나 0일 때 실행

else:
    print("돈이 모자랍니다.")

change가 0보다 작을 때 "돈이 모자랍니다." 출력