2021-10-12 02:45:38 +02:00
|
|
|
# shop.py
|
|
|
|
# -------
|
|
|
|
# Licensing Information: You are free to use or extend these projects for
|
|
|
|
# educational purposes provided that (1) you do not distribute or publish
|
|
|
|
# solutions, (2) you retain this notice, and (3) you provide clear
|
|
|
|
# attribution to UC Berkeley, including a link to http://ai.berkeley.edu.
|
|
|
|
#
|
|
|
|
# Attribution Information: The Pacman AI projects were developed at UC Berkeley.
|
|
|
|
# The core projects and autograders were primarily created by John DeNero
|
|
|
|
# (denero@cs.berkeley.edu) and Dan Klein (klein@cs.berkeley.edu).
|
|
|
|
# Student side autograding was added by Brad Miller, Nick Hay, and
|
|
|
|
# Pieter Abbeel (pabbeel@cs.berkeley.edu).
|
|
|
|
|
|
|
|
|
|
|
|
class FruitShop:
|
|
|
|
|
|
|
|
def __init__(self, name, fruitPrices):
|
|
|
|
"""
|
|
|
|
name: Name of the fruit shop
|
|
|
|
|
|
|
|
fruitPrices: Dictionary with keys as fruit
|
|
|
|
strings and prices for values e.g.
|
|
|
|
{'apples':2.00, 'oranges': 1.50, 'pears': 1.75}
|
|
|
|
"""
|
|
|
|
self.fruitPrices = fruitPrices
|
|
|
|
self.name = name
|
2021-10-12 03:01:31 +02:00
|
|
|
print('Welcome to %s fruit shop' % (name))
|
2021-10-12 02:45:38 +02:00
|
|
|
|
|
|
|
def getCostPerPound(self, fruit):
|
|
|
|
"""
|
|
|
|
fruit: Fruit string
|
|
|
|
Returns cost of 'fruit', assuming 'fruit'
|
|
|
|
is in our inventory or None otherwise
|
|
|
|
"""
|
|
|
|
if fruit not in self.fruitPrices:
|
|
|
|
return None
|
|
|
|
return self.fruitPrices[fruit]
|
|
|
|
|
|
|
|
def getPriceOfOrder(self, orderList):
|
|
|
|
"""
|
|
|
|
orderList: List of (fruit, numPounds) tuples
|
|
|
|
|
|
|
|
Returns cost of orderList. If any of the fruit are
|
|
|
|
"""
|
|
|
|
totalCost = 0.0
|
|
|
|
for fruit, numPounds in orderList:
|
|
|
|
costPerPound = self.getCostPerPound(fruit)
|
|
|
|
if costPerPound != None:
|
|
|
|
totalCost += numPounds * costPerPound
|
|
|
|
return totalCost
|
|
|
|
|
|
|
|
def getName(self):
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
def __str__(self):
|
|
|
|
return "<FruitShop: %s>" % self.getName()
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return str(self)
|