PROG0070 - Adding fruit

Preparation

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

  1. >>> d = {'apples': 15, 'bananas': 35, 'grapes': 12}
    >>> d['banana']
    
  2. >>> d['oranges'] = 20
    >>> len(d)
    
  3. >>> 'grapes' in d
    
  4. >>> d['pears']
    
  5. >>> d.get('pears', 0)
    
  6. >>> fruit = d.keys()
    >>> fruit.sort()
    >>> print(fruit)
    
  7. >>> del d['apples']
    >>> 'apples' in d
    

Make sure you understand why the different results are generated. 

Assignment

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

def add_fruit(basket, fruit, amount=0):

    """
    Add a certain amount of fruit to the basket.

    >>> new_basket = {}
    >>> add_fruit(new_basket, 'strawberries', 10)
    >>> 'strawberries' in new_basket
    True
    >>> new_basket['strawberries']
    10
    >>> add_fruit(new_basket, 'strawberries', 25)
    >>> new_basket['strawberries']
    35
    """

Voorbereiding

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

  1. >>> d = {'appels': 15, 'bananen': 35, 'druiven': 12}
    >>> d['banaan']
    
  2. >>> d['appelsienen'] = 20
    >>> len(d)
    
  3. >>> 'druiven' in d
    
  4. >>> d['peren']
    
  5. >>> d.get('peren', 0)
    
  6. >>> vruchten = d.keys()
    >>> vruchten.sort()
    >>> print(vruchten)
    
  7. >>> del d['appels']
    >>> 'appels' in d
    

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

Opgave

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

def vrucht_toevoegen(mandje, vrucht, hoeveelheid=0):

    """
    Voegt een bepaalde hoeveelheid van een vrucht toe aan een mandje.

    >>> nieuw_mandje = {}
    >>> vrucht_toevoegen(nieuw_mandje, 'aardbeien', 10)
    >>> 'aardbeien' in nieuw_mandje
    True
    >>> nieuw_mandje['aardbeien']
    10
    >>> vrucht_toevoegen(nieuw_mandje, 'aardbeien', 25)
    >>> nieuw_mandje['aardbeien']
    35
    """

Added by:Peter Dawyndt
Date:2011-07-29
Time limit:10s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:
Resource:None

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