#cashier.py
prices = {'milk': 1.00, 'wine': 2.50, 'apples': 0.6}
def sum_bill(purchase):
"""Calculate the total amount to pay"""
total = 0
for item, quantity in purchase:
total += prices[item]*quantity
return total
#Testing the code
if __name__=='__main__':
my_purchase = [('milk', 2), ('wine', 1),
('apples', 1.2)]
bill = sum_bill(my_purchase)
print 'I owe %.2f Euros' % bill
#ecosystem.py
"""Module containing classes to simulate a simple ecosystem"""
class Organism(object):
def __init__(self, position=(0, 0)):
self.position = position
def __str__(self):
"""string representation (family name)"""
return "Living Organism"
def update(self):
"""update the state of the organism"""
pass
def classification(self):
"""return the systematic classification of the organism"""
return self.__str__()
class Animal(Organism):
def __init__(self, position=(0, 0)):
Organism.__init__(self, position)
def move(self):
"""change the postition"""
pass
def where(self):
"""get the current position"""
return self.position
def __str__(self):
return "Animal"
def classification(self):
# Hint: use __str__ method and print_classification of the
# parent class
pass
class Plant(Organism):
max_size = 10
def __init__(self, size=1, position=(0, 0), growth_factor=1.2):
Organism.__init__(self, position)
self.size = size
self.growth_factor = growth_factor
def update(self):
self.grow()
if self.size > self.max_size:
self.reproduce(self.size/2.)
def reproduce(self, child_size):
"""produce a sibling with size child_size"""
pass
def __str__(self):
pass
def grow(self):
"""grow the plant.
the size is increased by a constant factor"""
self.size *= self.growth_factor
if __name__ == "__main__":
preanimal = Animal()
print preanimal.classification()