더보기
알고리즘 순서
japangi = {
'coin_box': 3000,
'money_box': 0,
'product': {
'coffee': {'stock': 5, 'price': 500},
'cocoa': {'stock': 5, 'price': 300},
'milk': {'stock': 5,'price': 100}}}
1. 메뉴판 출력
print("\n=========<< 메뉴판 >>=========")
for num,menu in enumerate(list(japangi['product'].keys())):
print(num+1,menu,'/', japangi['product'][menu]['price'],'원 /','재고 :',japangi['product'][menu]['stock'],'잔')
print("============================== \n")
=========<< 메뉴판 >>=========
1 coffee / 500 원 / 재고 : 5 잔
2 cocoa / 300 원 / 재고 : 5 잔
3 milk / 100 원 / 재고 : 5 잔
==============================
2. 총 수익과 거스름돈통에 얼마 있는지 확인
print(f"\n==> 총 수익 {japangi['money_box']}원 입니다. <==")
print(f"==> 현재 거스름돈통 : {japangi['coin_box']}원 입니다. <==")
==> 총 수익 0원 입니다. <==
==> 현재 거스름돈통 : 3000원 입니다. <==
3. 전메뉴가 품절 됐을 경우 (while문)
coffee_stock = japangi['product']['coffee']['stock']
cocoa_stock = japangi['product']['cocoa']['stock']
milk_stock = japangi['product']['milk']['stock']
if coffee_stock == 0 and cocoa_stock == 0 and milk_stock == 0: # 모든 재고가 0일 때
print('\n====> 전 메뉴 품절 됐습니다. ====>>')
break
4. 전메뉴가 품절이 아닐 경우 (while문)
money = input("\n٩( ᐛ )و : 넣으실 돈을 숫자로 입력해 주세요. : ")
if money.isnumeric():
money = int(money) # str -> int
print(f'==> 돈 {money}원 넣었습니다. \n')
else:
print('\n넣으실 돈을 <<숫자로만>> 입력해 주세요.\n')
isnumeric() => 주어진 문자열이 숫자로 되어있는지 검사하는 함수
input 로 받은 값이 숫자로 입력되어있지만, type(money) 해보면 int 가 아닌 str 이다 .
money = int(money) 해서 int로 바꿔주기
5. 받은 돈의 조건문
- 100 < money < 3000 이여야 실행되는 코드
money = input("\n٩( ᐛ )و : 넣으실 돈을 숫자로 입력해 주세요. : ")
if money.isnumeric():
money = int(money) # str -> int
print(f'==> 돈 {money}원 넣었습니다. \n')
if money < 100 : # money = 100원 이하 입력시
print('100원 이상부터 돈을 넣으실 수 있습니다.')
elif money > 3000 : # money = 3000원 이상 입력시
print('3000원 이하로 돈을 넣어주세요.')
else: # money = 100~3000원 입력시
order = input('\n٩( ᐛ )و : 원하시는 메뉴를 숫자로 입력해주세요. : ')
6. money(받은 돈)에 따라 order(선택한 메뉴)의 가격에 맞춰 실행되는 코드
else: # money = 100~3000원 입력시
order = input('\n٩( ᐛ )و : 원하시는 메뉴를 숫자로 입력해주세요. : ')
if order.isnumeric(): # str -> int
order = int(order)
print(f'==> {order}번 선택하셨습니다. ')
if order == 0: # order가 0일 경우
print('\n(メ゚皿゚) : 0번은 현재 판매중인 메뉴가 아닙니다.')
elif order > len(list(japangi['product'].keys())): # 총 상품 수보다 높은 숫자 입력했을 때
print(f'\n(メ゚皿゚) : 현재 {order}번은 판매중인 메뉴가 아닙니다.')
print(f'주문에 실패했으므로 {money}원을 돌려줍니다.')
else: # 1~(총 상품 수) 입력시
order_check1 = list(japangi['product'].keys())[order-1]
print(f'\n주문하신 메뉴가 < {order_check1} >가 맞습니까?')
order_check2 = input('주문하신 메뉴가 맞다면 y, 틀린 경우 x를 입력해주세요. : ')
if order_check2 == 'y' or order_check2 == 'Y':
if order == 1:
#print('coffee를 선택했습니다.')
if japangi['product']['coffee']['stock'] > 0: # 재고가 0보다 많을 때
if money == 500:
print("==> coffee를 줍니다.")
japangi['product']['coffee']['stock'] = japangi['product']['coffee']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 500:
거스름돈 = money - 500
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"==> 거스름돈 {거스름돈}원과 coffee를 줍니다.")
japangi['product']['coffee']['stock'] = japangi['product']['coffee']['stock'] -1
japangi['money_box'] =+ money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['coffee']['stock'] == 0:
print(f"==> coffee가 다 떨어졌습니다. {money}원을 돌려줍니다.")
elif order == 2:
#print(f'\ncocoa를 선택했습니다. \n')
if japangi['product']['cocoa']['stock'] > 0: # 재고가 0보다 많을 때
if money == 300:
print("==> cocoa를 줍니다.")
japangi['product']['cocoa']['stock'] = japangi['product']['cocoa']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 300:
거스름돈 = money - 300
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"거스름돈 {거스름돈}원과 cocoa를 줍니다.")
japangi['product']['cocoa']['stock'] = japangi['product']['cocoa']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['cocoa']['stock'] == 0:
print(f"==> cocoa가 다 떨어졌습니다. {money}원을 돌려줍니다.")
elif order == 3:
#print(f'\nmilk를 선택했습니다.\n')
if japangi['product']['milk']['stock'] > 0: # 재고가 0보다 많을 때
if money == 100:
print("==> milk를 줍니다.")
japangi['product']['milk']['stock'] = japangi['product']['milk']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 100:
거스름돈 = money - 100
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"==> 거스름돈 {거스름돈}원과 milk를 줍니다.")
japangi['product']['milk']['stock'] = japangi['product']['milk']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['milk']['stock'] == 0:
print(f"==> milk가 다 떨어졌습니다. {money}원을 돌려줍니다.")
else:
print("\n메뉴판에 있는 숫자만 입력해주세요.\n")
elif order_check2 == 'x' or order_check2 == 'X':
print(f'\n==> 주문에 실패했으므로 {money}원을 돌려줍니다.')
print('==> 다시 주문해주시길 바랍니다.')
else:
print('==> x 또는 y 를 입력해주세요.')
print(f'\n==> 주문에 실패했으므로 {money}원을 돌려줍니다.')
else:
print('\n(メ゚皿゚) : 메뉴는 <<숫자로만>> 입력해 주세요.\n')
전체코드
while japangi['coin_box']:
print("\n=========<< 메뉴판 >>=========")
for num,menu in enumerate(list(japangi['product'].keys())):
print(num+1,menu,'/', japangi['product'][menu]['price'],'원 /','재고 :',japangi['product'][menu]['stock'],'잔')
print("============================== \n")
print(f"\n==> 총 수익 {japangi['money_box']}원 입니다. <==")
print(f"==> 현재 거스름돈통 : {japangi['coin_box']}원 입니다. <==")
coffee_stock = japangi['product']['coffee']['stock']
cocoa_stock = japangi['product']['cocoa']['stock']
milk_stock = japangi['product']['milk']['stock']
if coffee_stock == 0 and cocoa_stock == 0 and milk_stock == 0: # 모든 재고가 0일 때
print('\n====> 전 메뉴 품절 됐습니다. ====>>')
break
else:
money = input("\n٩( ᐛ )و : 넣으실 돈을 숫자로 입력해 주세요. : ")
if money.isnumeric():
money = int(money) # str -> int
print(f'==> 돈 {money}원 넣었습니다. \n')
if money < 100 : # money = 100원 이하 입력시
print('100원 이상부터 돈을 넣으실 수 있습니다.')
elif money > 3000 : # money = 3000원 이상 입력시
print('3000원 이하로 돈을 넣어주세요.')
else: # money = 100~3000원 입력시
order = input('\n٩( ᐛ )و : 원하시는 메뉴를 숫자로 입력해주세요. : ')
if order.isnumeric(): # str -> int
order = int(order)
print(f'==> {order}번 선택하셨습니다. ')
if order == 0: # order가 0일 경우
print('\n(メ゚皿゚) : 0번은 현재 판매중인 메뉴가 아닙니다.')
elif order > len(list(japangi['product'].keys())): # 총 상품 수보다 높은 숫자 입력했을 때
print(f'\n(メ゚皿゚) : 현재 {order}번은 판매중인 메뉴가 아닙니다.')
print(f'주문에 실패했으므로 {money}원을 돌려줍니다.')
else: # 1~(총 상품 수) 입력시
order_check1 = list(japangi['product'].keys())[order-1]
print(f'\n주문하신 메뉴가 < {order_check1} >가 맞습니까?')
order_check2 = input('주문하신 메뉴가 맞다면 y, 틀린 경우 x를 입력해주세요. : ')
if order_check2 == 'y' or order_check2 == 'Y':
if order == 1:
#print('coffee를 선택했습니다.')
if japangi['product']['coffee']['stock'] > 0: # 재고가 0보다 많을 때
if money == 500:
print("==> coffee를 줍니다.")
japangi['product']['coffee']['stock'] = japangi['product']['coffee']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 500:
거스름돈 = money - 500
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"==> 거스름돈 {거스름돈}원과 coffee를 줍니다.")
japangi['product']['coffee']['stock'] = japangi['product']['coffee']['stock'] -1
japangi['money_box'] =+ money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['coffee']['stock'] == 0:
print(f"==> coffee가 다 떨어졌습니다. {money}원을 돌려줍니다.")
elif order == 2:
#print(f'\ncocoa를 선택했습니다. \n')
if japangi['product']['cocoa']['stock'] > 0: # 재고가 0보다 많을 때
if money == 300:
print("==> cocoa를 줍니다.")
japangi['product']['cocoa']['stock'] = japangi['product']['cocoa']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 300:
거스름돈 = money - 300
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"거스름돈 {거스름돈}원과 cocoa를 줍니다.")
japangi['product']['cocoa']['stock'] = japangi['product']['cocoa']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['cocoa']['stock'] == 0:
print(f"==> cocoa가 다 떨어졌습니다. {money}원을 돌려줍니다.")
elif order == 3:
#print(f'\nmilk를 선택했습니다.\n')
if japangi['product']['milk']['stock'] > 0: # 재고가 0보다 많을 때
if money == 100:
print("==> milk를 줍니다.")
japangi['product']['milk']['stock'] = japangi['product']['milk']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
elif money > 100:
거스름돈 = money - 100
if 거스름돈 > japangi['coin_box']:
print(f'\n주문에 실패했으므로 {money}원을 돌려줍니다.')
print('죄송합니다. 거스름돈이 부족해 \n다른 메뉴를 시켜주세요.')
#break
else:
print(f"==> 거스름돈 {거스름돈}원과 milk를 줍니다.")
japangi['product']['milk']['stock'] = japangi['product']['milk']['stock'] -1
japangi['money_box'] = japangi['money_box'] + money
japangi['coin_box'] = japangi['coin_box'] - 거스름돈
else:
print(f"==> 가격과 맞지 않습니다. {money}원을 돌려줍니다.")
elif japangi['product']['milk']['stock'] == 0:
print(f"==> milk가 다 떨어졌습니다. {money}원을 돌려줍니다.")
else:
print("\n메뉴판에 있는 숫자만 입력해주세요.\n")
elif order_check2 == 'x' or order_check2 == 'X':
print(f'\n==> 주문에 실패했으므로 {money}원을 돌려줍니다.')
print('==> 다시 주문해주시길 바랍니다.')
else:
print('==> x 또는 y 를 입력해주세요.')
print(f'\n==> 주문에 실패했으므로 {money}원을 돌려줍니다.')
else:
print('\n(メ゚皿゚) : 메뉴는 <<숫자로만>> 입력해 주세요.\n')
else:
print('\n넣으실 돈을 <<숫자로만>> 입력해 주세요.\n')
'Language > Python' 카테고리의 다른 글
find_element By (0) | 2023.01.11 |
---|---|
Selenium Webdriver에서 iFrame 처리하기 (0) | 2023.01.11 |
Python Selenium Alert창 팝업창 확인 버튼/취소버튼 (0) | 2023.01.10 |
PyQt5 / Qt Designer 를 이용해 UI구성 - UI 파일 파이썬 코드로 변환, / UI 파일 파이썬 코드에서 로드 (0) | 2022.11.28 |
python 크롤링 셀레니움 비밀번호 키패드 로그인 (0) | 2022.11.10 |