Skip to content

Instantly share code, notes, and snippets.

@janaki-sasidhar
Created July 19, 2021 14:41
Show Gist options
  • Save janaki-sasidhar/95990d167dd066a8e37c68ba9275bf36 to your computer and use it in GitHub Desktop.
Save janaki-sasidhar/95990d167dd066a8e37c68ba9275bf36 to your computer and use it in GitHub Desktop.
from typing import List
class Food:
def __init__(self,name:str ,
proteins : int ,
fat : int ,
carbohydrates:int,
energy : int = 0,
status : str =None):
self.name = name
self.proteins = proteins
self.fat = fat
self.carbohydrates = carbohydrates
self.energy = energy
self.status = status
class Nutrition:
def __init__(self,energydict : dict , foodlist : list):
self.energydict = energydict
self.foodlist = foodlist
def setEnergy(self) -> None:
for food_item in self.foodlist:
food_item.energy = food_item.fat + food_item.proteins + food_item.carbohydrates
for key,value in self.energydict.items():
a , b = value
if food_item.energy >= a and food_item.energy<= b:
food_item.status = key
def getEnergyRichFood(self,energy_number):
temp = []
for food_item in self.foodlist:
if food_item.energy <= energy_number:
temp.append(food_item)
if temp:
return temp
else:
return None
if __name__ == '__main__':
number_of_items = int(input())
food_items_list = []
for food_item in range(number_of_items):
name = input()
proteins = float(input())
fat = float(input())
carbohydrates =float(input())
food_object : Food = Food(name , proteins , fat , carbohydrates)
food_items_list.append(food_object)
number_of_key_value_pairs = int(input())
temp_dict = dict()
for kv_pair in range(number_of_key_value_pairs):
name = input()
lower = float(input())
upper = float(input())
temp_dict[name] = (lower,upper)
energy_number = float(input())
nutrition_object = Nutrition(temp_dict,food_items_list)
nutrition_object.setEnergy()
print('Energy of Food:')
for food_item in food_items_list:
print(f'{food_item.name}-{food_item.energy}-{food_item.status}')
get_from_nutrition_method = nutrition_object.getEnergyRichFood(energy_number)
print('Food within given criteria')
if get_from_nutrition_method:
for item in get_from_nutrition_method:
print(f'{item.name}:{item.energy}')
else:
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment