3
Day 4 Homework Karen
Karenzz edited this page 2023-04-05 01:11:00 +02:00
class Toaster:
def __init__(self):
self.ticks_left = 10
self.is_on = False
def get_uses(self):
return {
'toast': "Put bread in the toaster to make toast."
}
def start(self):
print("Toaster started.")
def use(self, *args, **kwargs):
if 'toast' in args:
if not self.is_on:
print("Turn the toaster on first!🔌")
return True
print("Toasting...")
self.ticks_left -= 1
if self.ticks_left == 0:
print("Toasting complete! 🍞")
return False
return True
def tick(self):
return True
def stop(self):
print("Toaster stopped. ⏸")
class AdvancedToaster:
def __init__(self):
self.ticks_left = 10
self.is_on = False
self.toastiness = 0
self.bread_count = 0
self.crumb_tray = []
self.temperature = None
self.weight = 1.5 # kg
self.voltage = 120 # V
self.power = 750 # W
self.materials = ['stainless steel', 'plastic', 'copper']
self.dimensions = {'length': 30, 'width': 20, 'height': 25} # cm
self.color = 'silver'
self.price = 50 # USD
def get_uses(self):
return {
# use of the toaster
'turn_on': "Turn on the toaster.",
'turn_off': "Turn off the toaster.",
'insert_bread': "Insert bread into the toaster.",
'eject_bread': "Eject bread from the toaster.",
'increase_toastiness': "Increase the level of toastiness.",
'decrease_toastiness': "Decrease the level of toastiness.",
'add_bread': "Add a slice of bread to the toaster.",
'remove_bread': "Remove a slice of bread from the toaster.",
'toast': "Toast the bread in the toaster.",
'empty_crumb_tray': "Empty the crumb tray.",
# characteristics of the toaster
'weigh': "Weigh the toaster.",
'measure_voltage': "Measure the voltage of the toaster.",
'measure_power': "Measure the power of the toaster.",
'get_materials': "Get the materials the toaster is made of.",
'get_dimensions': "Get the dimensions of the toaster.",
'get_color': "Get the color of the toaster.",
'get_price_tag': "Get the estimated value of the toaster."
}
def start(self):
print("Toaster started.")
# temperature check
def set_temperature(self, temperature):
self.temperature = temperature
print(f"Toaster temperature set to {temperature} degrees Celsius.")
def get_temperature(self):
if self.temperature is not None:
print(f"Toaster temperature is {self.temperature} degrees Celsius.")
else:
print("Toaster temperature has not been set yet.")
def use(self, *args, **kwargs):
if 'turn_on' in args:
self.is_on = True
print("Toaster turned on.")
elif 'turn_off' in args:
self.is_on = False
print("Toaster turned off.")
elif 'insert_bread' in args:
if not self.is_on:
print("Turn the toaster on first!")
return True
if self.bread_count > 2:
print("Too many bread slices! Maximum is 2.")
return True
self.bread_count += 1
print(f"{self.bread_count} bread slice{'s' if self.bread_count > 1 else ''} inserted.")
elif 'eject_bread' in args:
if self.bread_count == 0:
print("No bread slices to eject.")
return True
self.bread_count -= 1
print("Bread slice ejected.")
elif 'decrease_toastiness' in args:
if self.toastiness > 0:
self.toastiness -= 1
print(f"Toastiness decreased to {self.toastiness}.")
elif 'add_bread' in args:
if self.bread_count < 2:
self.bread_count += 1
print(f"{self.bread_count} slice(s) of bread added to the toaster.")
elif 'remove_bread' in args:
if self.bread_count > 0:
self.bread_count -= 1
print(f"{self.bread_count} slice(s) of bread removed from the toaster.")
elif 'toast' in args:
if self.is_on and self.bread_count > 0:
print("Toasting bread...")
for i in range(self.toastiness):
print("Tick...")
print("Bread toasted!")
self.bread_count -= 1
elif not self.is_on:
print("Toaster is not turned on.")
elif self.bread_count == 0:
print("Toaster does not contain any bread.")
else:
print(f"DEBUG:Invalid use of the toaster.")
return False
elif 'empty_crumb_tray' in args:
self.crumb_tray = []
print("Crumb tray emptied.")
def weigh(self):
print(f"The weight of the toaster is {self.weight} kg.")
def measure_voltage(self):
# Method to measure the voltage of the toaster
print(f"The voltage of the toaster is {self.voltage} V.")
def measure_power(self):
# Method to measure the power of the toaster
print(f"The power of the toaster is {self.power} W.")
def get_materials(self):
print(f"The toaster is made of: {', '.join(self.materials)}.")
def get_dimensions(self):
print(f"The dimensions of the toaster are: {self.dimensions['length']} cm x {self.dimensions['width']} cm x {self.dimensions['height']} cm.")
def get_color(self):
print(f"The color of the toaster is {self.color}.")
def get_price_tag(self):
print(f"The estimated value of the toaster is {self.price_tag}.")