728x90
반응형
# 메뉴정보를 딕션너리로 만듬. 메뉴명은 딕셔너리의 key. 값은 리스트의 [단가, 수량] 정보가 됨
menu_dic = {'coffee':[500, 5], 'cookie':[600, 4], 'milk':[700, 6], 'bread':[800, 8]}
# 메뉴 출력을 위한 번호와 메뉴명 문자열이 붙은 리스트 만듬
no_menu_str = [f"{i+1}.{key}" for i, key in enumerate(list(menu_dic.keys()))]
menu_str = ' '.join(no_menu_str) # 번호와 메뉴명의 리스트를 문자열로 만듬
change = 0 # 거스름돈 변수 선언
while True: # 무한 반복. 계속 돈,구입메뉴,수량등을 입력 받음
money = int(input('money:')) # 구입비 입력 받음
menu = int(input(menu_str + ' : ')) # 선택할 메뉴명을 보이고 번호 입력 받음
menu_cnt = int(input('구입 수량:')) # 구입수량 입력 받음
menu_name = list(menu_dic.keys())[menu - 1] # 메뉴명을 Key의 리스트에서 입력 받음 메뉴번호로 메뉴명 찾음
unit_price = menu_dic[menu_name][0] # 메뉴명을 key로 해서 단가정보(리스트의 인덱스 0의 값) 찾음
price = unit_price * menu_cnt # 단가와 구입수량으로 구입비용 계산
if money >= price: # 입력 받은 돈이 계산된 구입비용보다 크면
change = money - price # 거스름돈 계산
print(f"{menu_name} ({menu_cnt} 개), 거스름돈:{change}") # 구입한 메뉴와 수량, 거스름돈 출력
menu_dic[menu_name][1] -= menu_cnt # 해당 메뉴의 수량에서 구입수량을 뺌
else:
print('부족')
if menu_dic[menu_name][1] <= 0: # 수량이 붖족하면 무한 반복 종료
break
con = input('계속(y/n):') # 계속할 것인지 입력 받음
if con.upper() == 'N': # 계속하지 않으면 종료. con변수에 대/소문자로 입력되도 같은 처리
break
print('판매중지')
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : turtle ㄱ,ㄴ,ㄷ,ㄹ 그리기 (0) | 2023.11.24 |
---|---|
[파이썬] 문제 : text 파일을 읽어서 성적 출력 하기 (2) | 2023.11.24 |
[파이썬] 문제 : 1부터 100 사이 홀수의 합 구하기 (1) | 2023.11.22 |
[파이썬] 문제 : turtle 임의의 색 지정해서 원 그리기 (1) | 2023.11.22 |
[파이썬] 문제 : pandas DataFrame의 날짜 문자열로 요일 찾아 수정하기 (1) | 2023.11.21 |
댓글