일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 최저가
- SMTP
- ndarray
- 파이썬
- 프로그램
- 웹크롤링
- HTML
- 유데미
- 게임
- 오류
- class
- Game
- phython
- 웹페이지
- Python
- 상태코드
- 프로젝트
- twilio
- udemy
- API
- HTTP
- Sheety
- 계산기
- 쉬티
- API플랫폼
- Pygame
- Endpoint
- Tequila
- 파싱
- 부트스트랩
- Today
- Total
데이터 분석가
파이썬(Python) 커피 자판기 프로그램 본문
안녕하세요
이번 시간에는 파이썬을 통한 커피 자판기 알고리즘을 짜보도록 하겠습니다
MENU = {
"espresso": {"ingredients": {"water": 50,"coffee": 18,},"cost": 1500},
"latte": {"ingredients": {"water": 200,"milk": 150,"coffee": 24},"cost": 2500},
"cappuccino": {"ingredients": {"water": 250,"milk": 100,"coffee": 24},"cost": 4000}}
profit = 0 #받은 돈
resources = {
"water": 300,
"milk": 200,
"coffee": 100,
} #재료
메뉴는 에소프레소, 라떼, 카푸치노가 있고, 그에 대한 재료는 물, 우유, 커피(원두)가 필요합니다.
def is_resource_sufficient(order_ingredients): #충분한 재료가 있는가?
"""주문 가능하면 True, 충분한 재료가 없을 떄 Flase"""
for item in order_ingredients:
if order_ingredients[item] > resources[item]:
print(f" 죄송하지만 충분한 {item}이 없습니다.")
return False #취소
return True #주문접수
def process_coins(): #자판기 커피이기에 동전만 취급합니다
print("동전을 넣어주세요")
total = int(input("10원짜리 몇개 있습니까?")) * 10
total += int(input("100원짜리 몇개 있습니까?")) * 100
total += int(input("500원짜리 몇개 있습니까?")) * 500
return total
1. def is_resource_sufficeint(order_ingredients):
고객이 자판기에서 주문을 하면 그에 대한 재료가 있는지 먼저 확인합니다.
확인 하는 방법은 자판기 내에 있는 resources를 확인하여 True(주문접수) or False(취소) 반환
2. def process_Coins():
() 공백을 하고 input 함수로 받은 동전의 합을 total로 받아
return으로 total값을 받습니다.
def is_transaction_successful(money_received, drink_cost):
"""결제 성공시 True, 잔돈이 없을 경우 Fasle"""
if money_received >= drink_cost:
change = round(money_received - drink_cost, 2)
print(f"잔돈 {change}원 여기 있습니다.")
global profit
profit += drink_cost
return True
else:
print("잔돈이 여유가 없습니다. 돈을 받으십시오.")
return False
def make_coffee(drink_name, order_ingredients):
"""주문된 메뉴에 대한 재료 소진 양을 갱신합니다."""
for item in order_ingredients:
resources[item] -= order_ingredients[item]
print(f"주문한 커피 여기 있습니다 {drink_name} ☕️. 즐거운 하루 보내세요 ! ")
3. def is_transaction_successful(money_received, drink_cost):
2번 def 식으로 받은 돈이 충분하다면 주문을 진행, 투입한 돈을 부족하다면 반환합니다
4. def make_coffee(drink_name, order_ingredients):
주문으로 인한 resource의 물, 우유, 커피 보유양에서 소진양을 갱신하고
주문한 커피를 제공합니다.
is_on = True
while is_on:
choice = input(" 주문해주세요 (espresso/latte/cappuccino): ").lower()
if choice == "off":
is_on = False
elif choice == "report":
print(f"Water : {resources['water']}ml")
print(f"Milk : {resources['milk']}ml")
print(f"Coffee : {resources['coffee']}g")
print(f"Money : {profit}")
else:
drink = MENU[choice]
if is_resource_sufficient((drink["ingredients"])):
payment = process_coins()
if is_transaction_successful(payment, drink["cost"]):
make_coffee(choice, drink["ingredients"])
5. while is_on: 문은
추가로 주문할 지를 물어보는 반복문입니다.
그리고 'report' 보고일 경우 현재 자판기에 남은 재료와 수익을 반환합니다.
이번 시간에는 자판기 커피 프로그램을 만들어 보았는데요
다음 시간에는 여기서 조금 더 발전된 키오스크 자판기 프로그램 코드를 짜보도록 하겠습니다 !
'파이썬(python) 프로젝트 모음' 카테고리의 다른 글
파이썬(Python) 스피로 그래프 & Spot painting (0) | 2023.03.28 |
---|---|
파이썬(Python) 퀴즈 프로그램(quizprogram) 프로젝트 (0) | 2023.03.27 |
파이썬(Python) HigerLower 게임 프로젝트 (0) | 2023.03.24 |
파이썬(Python) Up-Down(숫자추측) 게임 프로젝트 (0) | 2023.03.23 |
파이썬(Python) 블랙잭(Blackjack) 프로젝트 (0) | 2023.03.22 |