arbitrary number of keyword arguments as welluser_profile py def build_profile(firstlast**user_info)"""build dictionary containing everything we know about user ""profile { profile['first_name'first profile['last_name'last for keyvalue in user_info items()profile[keyvalue return profile user_profile build_profile('albert''einstein'location='princeton'field='physics'print(user_profilethe definition of build_profile(expects first and last nameand then it allows the user to pass in as many name-value pairs as they want the double asterisks before the parameter **user_info cause python to create an empty dictionary called user_info and pack whatever name-value pairs it receives into this dictionary within the functionyou can access the namevalue pairs in user_info just as you would for any dictionary in the body of build_profile()we make an empty dictionary called profile to hold the user' profile at we add the first and last names to this dictionary because we'll always receive these two pieces of information from the user at we loop through the additional key-value pairs in the dictionary user_info and add each pair to the profile dictionary finallywe return the profile dictionary to the function call line we call build_profile()passing it the first name 'albert'the last name 'einstein'and the two key-value pairs location='princetonand field='physicswe store the returned profile in user_profile and print user_profile{'first_name''albert''last_name''einstein''location''princeton''field''physics'the returned dictionary contains the user' first and last names andin this casethe location and field of study as well the function would work no matter how many additional key-value pairs are provided in the function call you can mix positionalkeywordand arbitrary values in many different ways when writing your own functions it' useful to know that all these argument types exist because you'll see them often when you start reading other people' code it takes practice to learn to use the different types correctly and to know when to use each type for nowremember to use the simplest approach that gets the job done as you progress you'll learn to use the most efficient approach each time functions