Source code for AutomateTheBoringStuff.Ch05.P5_totalBrought

"""Total brought

This program totals everything being brought to a picnic
by storing the guest's names and items brought as a :obj:`dict` of :obj:`dicts <dict>`.

Attributes:
    allGuests (dict): Dictionary of dictionaries with guest names as keys and values of
        dictionaries with items as keys and number of items as values.

"""

allGuests = {'Alice': {'apples': 5, 'pretzels': 12},
             'Bob': {'ham sandwiches': 3, 'apples': 2},
             'Carol': {'cups': 3, 'apple pies': 1}}


[docs]def totalBrought(guests: dict, item: str) -> int: """Total brought Totals given item from given guest dictionary and returns result. Args: guests: Dictionary with guest's names and what they are bringing. item: Specific item in guest dictionary that is to be totaled. Returns: Integer total of given item that will be brought. """ numBrought = 0 """int: Total of given item brought.""" for k, v in guests.items(): numBrought += v.get(item, 0) return numBrought
[docs]def main(): print('Number of things being brought:') print(' - Apples ' + str(totalBrought(allGuests, 'apples'))) print(' - Cups ' + str(totalBrought(allGuests, 'cups'))) print(' - Cakes ' + str(totalBrought(allGuests, 'cakes'))) print(' - Ham Sandwiches ' + str(totalBrought(allGuests, 'ham sandwiches'))) print(' - Apple Pies ' + str(totalBrought(allGuests, 'apple pies')))
if __name__ == '__main__': main()