PROG0293 - Shopping cart
Preparation
Verify how Python reacts if you consecutively execute the following instructions in an interactive Python session.
-
>>> d = {'buns': 6, 'cookies': 11, 'bananas': 12} >>> d['bananas']
-
>>> d['yoghurts'] = 12 >>> len(d)
-
>>> 'bananas' in d
-
>>> d['toothbrushes']
-
>>> d.get('toothbrushes', 0)
-
>>> products = list(d.keys()) >>> products.sort() >>> print(products)
-
>>> 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:
-
>>> d = {'broodjes': 6, 'koekjes': 11, 'bananen': 12} >>> d['bananen']
-
>>> d['yoghurtjes'] = 12 >>> len(d)
-
>>> 'bananen' in d
-
>>> d['tandenborstels']
-
>>> d.get('tandenborstels', 0)
-
>>> producten = list(d.keys()) >>> producten.sort() >>> print(producten)
-
>>> 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 |