Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
107 changes: 75 additions & 32 deletions 1.py
Original file line number Diff line number Diff line change
@@ -1,32 +1,75 @@
MENU = {
'espresso': {
'ingredients': {
'coffee': 19,
'water': 35,
},
'price': 1.99,
},
'latte': {
'ingredients': {
'coffee': 24,
'water': 50,
'milk': 150,
},
'price': 2.39,
},
'flat white': {
'ingredients':{
'coffee': 24,
'water': 60,
'milk': 50,
},
'price': 3.19,
}
}

INVENTORY = {
'coffee': 100,
'water': 300,
'milk': 300,
'money': 0,
}
import Menu


def short_resources(coffe_needed,water_needed,milk_needed):
short_resource = []
if coffe_needed>Menu.INVENTORY['coffee']:
short_resource.append('coffee')
if milk_needed>Menu.INVENTORY['milk']:
short_resource.append('milk')
if water_needed>Menu.INVENTORY['water']:
short_resource.append('water')
print(f"There is not enough {', '.join(short_resource)}")

def have_resources(coffe_needed,water_needed,milk_needed):
if coffe_needed <= Menu.INVENTORY['coffee'] and water_needed <= Menu.INVENTORY['water'] and milk_needed <= Menu.INVENTORY['milk']:
return True
else:
short_resources(coffe_needed,water_needed,milk_needed)

def money_check(taken_order,money_needed):
print(f"Price of Your drink {taken_order} is {money_needed}$")
print("Insert coins(Only quarters, dimes, nickles and pennies)")
quarters = int(input("How many quarters:"))
dimes = int(input("How many dimes:"))
nickles = int(input("How many nickles:"))
pennies = int(input("How many pennies:"))
money_inserted = quarters*0.25 + dimes*0.1 + nickles*0.05 + pennies*0.01
if money_inserted >= money_needed:
return money_inserted
else:
print( f"Sorry that's not enough money. Money refunded")
return 0


def its_order(taken_order):
money_needed = Menu.MENU[taken_order]['price']
coffe_needed = Menu.MENU[taken_order]['ingredients']['coffee']
water_needed = Menu.MENU[taken_order]['ingredients']['water']
milk_needed = 0
if taken_order != 'espresso':
milk_needed = Menu.MENU[taken_order]['ingredients']['milk']

if have_resources(coffe_needed,water_needed,milk_needed):
money_inserted = money_check(taken_order, money_needed)
if money_inserted!=0:
Menu.INVENTORY['money'] += money_needed
if money_inserted>money_needed:
print(f"Here is {round(money_inserted-money_needed, 2)}$ in change")
Menu.INVENTORY['milk'] -= milk_needed
Menu.INVENTORY['water'] -= water_needed
Menu.INVENTORY['coffee'] -= coffe_needed
print("Here is your order")

def report():
for key in Menu.INVENTORY:
post = "ml"
if key=="coffe":
post = "g"
elif key=="money":
post = "$"
print(f"{key}: {Menu.INVENTORY[key]}{post}")

continue_buying = True
while continue_buying:
valid_order = ['espresso','latte', 'cappuccino']
order = input("What would you like? (espresso/latte/cappuccino/off/report)")
if order == "off":
continue_buying = False
elif order == "report":
report()
else:
if order in valid_order:
its_order(order)
else:
print("Invalid input")
41 changes: 41 additions & 0 deletions 2.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,48 @@ def send_email(msg, email):
"""
...


# Solution goes here
class Patient:

def __init__(self, first_name, second_name, title, birth_date, email, phone_number, mobile_number):
self.first_name = first_name
self.second_name = second_name
self.title = title
self.birth_date = birth_date
self.email = email
self.phone_number = phone_number
self.mobile_number = mobile_number

def greeting(self):
return f"Hello {self.title} {self.first_name} {self.second_name}"

def calculating_age(self,current_date):
age = current_date.year - self.birth_date.year
month = current_date.month - self.birth_date.month
days = current_date.day - self.birth_date.day
if days < 0:
month -= 1
days += 30
if month < 0:
age -= 1

return f"{age} Y {month} M {days} D"

def send_appointment_reminder(self, appointment_date):
current_date = datetime.now()
age = self.calculating_age(current_date)

msg = f"Dear {self.first_name}, your appointment is scheduled for {appointment_date.strftime('%Y-%m-%d %H:%M')}.\n"
msg += f"Your age is {age}"

send_sms(msg, self.mobile_number)
send_email(msg, self.email)

print(msg)




patient1 = Patient(
'John',
Expand Down
104 changes: 104 additions & 0 deletions 3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
import Menu

class coffee_shop:
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All user defined class names in python should be in PascalCase


def __init__(self, order, left_coffee, left_milk, left_water, left_money, coffee_needed, milk_needed, water_needed, money_needed):
self.order = order
self.left_coffee = left_coffee
self.left_milk = left_milk
self.left_water = left_water
self.left_money = left_money
self.coffee_needed = coffee_needed
self.milk_needed = milk_needed
self.water_needed = water_needed
self.money_needed = money_needed

def short_resources(self):
short_resource = []
if self.coffee_needed > self.left_coffee:
short_resource.append('coffee')
if self.milk_needed > self.left_milk['milk']:
short_resource.append('milk')
if self.water_needed > self.left_water['water']:
short_resource.append('water')
print(f"There is not enough {', '.join(short_resource)}")

def have_resources(self):
if self.coffee_needed <= self.left_coffee and self.water_needed <= self.left_water and milk_needed <= self.left_milk:
return True
else:
self.short_resources()

def money_check(self):
print(f"Price of Your drink {self.order} is {self.money_needed}$")
print("Insert coins(Only quarters, dimes, nickles and pennies)")
quarters = int(input("How many quarters:"))
dimes = int(input("How many dimes:"))
nickles = int(input("How many nickles:"))
pennies = int(input("How many pennies:"))
money_inserted = quarters * 0.25 + dimes * 0.1 + nickles * 0.05 + pennies * 0.01
if money_inserted >= self.money_needed:
return money_inserted
else:
print(f"Sorry that's not enough money. Money refunded")
return 0

def its_order(self):
if self.have_resources():
money_inserted = self.money_check()
if money_inserted != 0:
if money_inserted > money_needed:
print(f"Here is {round(money_inserted-self.money_needed, 2)}$ in change")
print("Here is your order")
return money_needed, milk_needed, water_needed, coffee_needed
return 0, 0, 0, 0


def report():
for key in Menu.INVENTORY:
post = "ml"
if key =="coffe":
post = "g"
elif key =="money":
post = "$"
print(f"{key}: {Menu.INVENTORY[key]}{post}")


continue_buying = True
while continue_buying:
valid_order = ['espresso','latte', 'cappuccino']
order = input("What would you like? (espresso/latte/cappuccino/off/report)")
if order == "off":
continue_buying = False
elif order == "report":
report()
else:
if order in valid_order:
left_coffee = Menu.INVENTORY['coffee']
left_milk = Menu.INVENTORY['milk']
left_water = Menu.INVENTORY['water']
left_money = Menu.INVENTORY['money']
money_needed = Menu.MENU[order]['price']
coffee_needed = Menu.MENU[order]['ingredients']['coffee']
water_needed = Menu.MENU[order]['ingredients']['water']
milk_needed = 0
if order != 'espresso':
milk_needed = Menu.MENU[order]['ingredients']['milk']
c_m = coffee_shop(
order,
left_coffee,
left_milk,
left_water,
left_money,
coffee_needed,
milk_needed,
water_needed,
money_needed,
)
changes = c_m.its_order()
Menu.INVENTORY['money'] += changes[0]
Menu.INVENTORY['milk'] -= changes[1]
Menu.INVENTORY['water'] -= changes[2]
Menu.INVENTORY['coffee'] -= changes[3]
else:
print("Invalid input")
32 changes: 32 additions & 0 deletions Menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
MENU = {
'espresso': {
'ingredients': {
'coffee': 19,
'water': 35,
},
'price': 1.99,
},
'latte': {
'ingredients': {
'coffee': 24,
'water': 50,
'milk': 150,
},
'price': 2.39,
},
'cappuccino': {
'ingredients':{
'coffee': 24,
'water': 60,
'milk': 50,
},
'price': 3.19,
}
}

INVENTORY = {
'coffee': 100,
'water': 300,
'milk': 300,
'money': 0,
}