Having fun with *args and **kwargs
Level: Intermediate (score: 3)
Write a function called get_profile
that takes:
- a required name,
- a required age,
- one or more optional sports (args),
- one or more optional awards (keyword args).
Add the following validations:
- if age is not an int raise a
ValueError
, - if more than 5 sports are provided raise a
ValueError
.
Some examples how your function can be called (see also the TESTS tab):
get_profile('tim', 36) get_profile('tim', 36, 'tennis', 'basketball') get_profile('tim', 36, 'tennis', 'basketball', champ='helped out team in crisis')
The function should return a dict with all the args, like so:
get_profile('tim', 36) == {'name': 'tim', 'age': 36} # some arg types {'name': 'tim', 'age': 36, 'sports': ['basketball', 'tennis'], 'awards': {'champ': 'helped out team in crisis'}} # all arg types
(args list to be sorted alphabetically)
We hope this gives you a good handle on Python's different types of function arguments. Enjoy!