PROG0293 - Shopping cart

Preparation

Verify how Python reacts if you consecutively execute the following instructions in an interactive Python session.

  1. >>> d = {'buns': 6, 'cookies': 11, 'bananas': 12}
    >>> d['bananas']
    
  2. >>> d['yoghurts'] = 12
    >>> len(d)
    
  3. >>> 'bananas' in d
    
  4. >>> d['toothbrushes']
    
  5. >>> d.get('toothbrushes', 0)
    
  6. >>> products = list(d.keys())
    >>> products.sort()
    >>> print(products)
    
  7. >>> del d['buns']
    >>> 'buns' in d
    

Make sure you understand why the different results are generated.

Assignment

Apply what you have just learned to complete the bodies of the functions below. Your implementation must endure the doctest given.

def addProduct(shoppingcart, product, amount=0):

    """
    Adds a certain amount of a product to a shopping cart. 
    >>> shoppingcart = {}
    >>> addProduct(shoppingcart, 'cookies', 10)
    10
    >>> 'cookies' in shoppingcart
    True
    >>> shoppingcart['koekjes']
    10
    >>> amountCookies = addProduct(shoppingcart, 'cookies', 5)
    >>> amountCookies
    15
    >>> shoppingcart['cookies']
    15
    >>> addProduct(shoppingcart, 'yoghurts', -4)
    0
    >>> 'yoghurts' in shoppingcart
    False
    """
def removeProduct(shoppingcart, product, amount=1):

    """
    Deletes a certain amount of a product from a shopping cart.

    >>> shoppingcart = {}
    >>> addProduct(shoppingcart, 'cookies', 10)
    10
    >>> removeProduct(shoppingcart, 'cookies', 4)
    6
    >>> shoppingcart['cookies']
    6
    >>> removeProduct(shoppingcart, 'cookies', 8)
    0
    >>> 'cookies' in shoppingcart
    False
    """

Voorbereiding

Ga na hoe Python reageert als je achtereenvolgens de volgende instructies uitvoert binnen een interactieve Python sessie:

  1. >>> d = {'broodjes': 6, 'koekjes': 11, 'bananen': 12}
    >>> d['bananen']
    
  2. >>> d['yoghurtjes'] = 12
    >>> len(d)
    
  3. >>> 'bananen' in d
    
  4. >>> d['tandenborstels']
    
  5. >>> d.get('tandenborstels', 0)
    
  6. >>> producten = list(d.keys())
    >>> producten.sort()
    >>> print(producten)
    
  7. >>> del d['broodjes']
    >>> 'broodjes' in d
    

Zorg er zeker voor dat je begrijpt waarom de verschillende resultaten gegenereerd worden.

Opgave

Pas hetgeen je net geleerd hebt toe om de bodies van de onderstaande twee functies aan te vullen. Je implementatie moet de gegeven doctest doorstaan.

def productToevoegen(winkelwagen, product, hoeveelheid=0):

    """
    Voegt een bepaalde hoeveelheid van een product toe aan een winkelwagentje.

    >>> winkelwagen = {}
    >>> productToevoegen(winkelwagen, 'koekjes', 10)
    10
    >>> 'koekjes' in winkelwagen
    True
    >>> winkelwagen['koekjes']
    10
    >>> aantalKoekjes = productToevoegen(winkelwagen, 'koekjes', 5)
    >>> aantalKoekjes
    15
    >>> winkelwagen['koekjes']
    15
    >>> productToevoegen(winkelwagen, 'yoghurtjes', -4)
    0
    >>> 'yoghurtjes' in winkelwagen
    False
    """
def productVerwijderen(winkelwagen, product, hoeveelheid=1):

    """
    Verwijdert een bepaalde hoeveelheid van een product uit een winkelwagentje.

    >>> winkelwagen = {}
    >>> productToevoegen(winkelwagen, 'koekjes', 10)
    10
    >>> productVerwijderen(winkelwagen, 'koekjes', 4)
    6
    >>> winkelwagen['koekjes']
    6
    >>> productVerwijderen(winkelwagen, 'koekjes', 8)
    0
    >>> 'koekjes' in winkelwagen
    False
    """

Added by:Peter Dawyndt
Date:2012-11-12
Time limit:5s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.