and last nameand it works for people who have middle name as welljimi hendrix john lee hooker optional values allow functions to handle wide range of use cases while letting function calls remain as simple as possible returning dictionary function can return any kind of value you need it toincluding more complicated data structures like lists and dictionaries for examplethe following function takes in parts of name and returns dictionary representing personperson py def build_person(first_namelast_name)"""return dictionary of information about person "" person {'first'first_name'last'last_namev return person musician build_person('jimi''hendrix' print(musicianthe function build_person(takes in first and last nameand packs these values into dictionary at the value of first_name is stored with the key 'first'and the value of last_name is stored with the key 'lastthe entire dictionary representing the person is returned at the return value is printed at with the original two pieces of textual information now stored in dictionary{'first''jimi''last''hendrix'this function takes in simple textual information and puts it into more meaningful data structure that lets you work with the information beyond just printing it the strings 'jimiand 'hendrixare now labeled as first name and last name you can easily extend this function to accept optional values like middle namean agean occupationor any other information you want to store about person for examplethe following change allows you to store person' age as welldef build_person(first_namelast_nameage='')"""return dictionary of information about person ""person {'first'first_name'last'last_nameif ageperson['age'age return person musician build_person('jimi''hendrix'age= print(musician