let' look at function that takes first and last nameand returns neatly formatted full nameformatted_ def get_formatted_name(first_namelast_name)name py """return full nameneatly formatted "" full_name first_name last_name return full_name title( musician get_formatted_name('jimi''hendrix'print(musicianthe definition of get_formatted_name(takes as parameters first and last name the function combines these two namesadds space between themand stores the result in full_name the value of full_name is converted to title caseand then returned to the calling line at when you call function that returns valueyou need to provide variable where the return value can be stored in this casethe returned value is stored in the variable musician at the output shows neatly formatted name made up of the parts of person' namejimi hendrix this might seem like lot of work to get neatly formatted name when we could have just writtenprint("jimi hendrix"but when you consider working with large program that needs to store many first and last names separatelyfunctions like get_formatted_name(become very useful you store first and last names separately and then call this function whenever you want to display full name making an argument optional sometimes it makes sense to make an argument optional so that people using the function can choose to provide extra information only if they want to you can use default values to make an argument optional for examplesay we want to expand get_formatted_name(to handle middle names as well first attempt to include middle names might look like thisdef get_formatted_name(first_namemiddle_namelast_name)"""return full nameneatly formatted ""full_name first_name middle_name last_name return full_name title(musician get_formatted_name('john''lee''hooker'print(musician