We use Python 3.6

go back Level: Intermediate (img: IM / score: 3) level Bite 36. Having fun with *args and **kwargs

30 out of 30 users completed this Bite ...
Will you be Pythonista #31 to crack this Bite?
Average Bite difficulty 1-10 rating: 1.5
» You can do it! 😌

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!

Github login button