print("happy birthday to you!"print("happy birthdaydear andre "print("happy birthday to you!"happybirthdayemily(happybirthdayandre(againeverything is definitions except the last two lines they are the only lines executed directly the calls to the functions happen to be in the same order as their definitionsbut that is arbitrary if the last two lines were swappedthe order of operations would change do swap the last two lines so they appear as belowand see what happens when you execute the programhappybirthdayandre(happybirthdayemily(functions that you write can also call other functions you write it is good convention to have the main action of program be in function for easy reference the example program birthday py has the two happy birthday calls inside final functionmain do you see that this version accomplishes the same thing as the last versionrun it '''function definitions and invocation '' def happybirthdayemily()print("happy birthday to you!"print("happy birthday to you!"print("happy birthdaydear emily "print("happy birthday to you!" def happybirthdayandre()print("happy birthday to you!"print("happy birthday to you!"print("happy birthdaydear andre "print("happy birthday to you!" def main()happybirthdayemily(happybirthdayandre( main(if we want the program to do anything automatically when it is runswe need one line outside of definitionsthe final line is the only one directly executedand it calls the code in mainwhich in turn calls the code in the other two functions detailed order of execution lines - definitions are read and remembered line the only statement outside definitionsis executed directly this location is remembered as main is executed line start on main line this location is remembered as execution jumps to happybirthdayemily lines - are executed and emily is sung to return to the end of line back from happybirthdayemily function call line now happybirthdayandre is called as this location is remembered lines - sing to andre defining functions of your own