functions and branching callpositionvelocity yfunc( as abovethe return arguments are separated by commaand we assign the values to the two global variables position and velocityalso separated by comma when function returns multiple values like thisit actually returns tuplethe immutable list type defined in the previous we could therefore replace the call above with something like the followingpos_vel yfunc( , print(pos_velprint(type(pos_vel)( - we see that the function returns tuple with two elements in the previous callwhen we included comma-separated list of variable names on the lefthand side ( positionvelocity)python would unpack the elements in the tuple into the corresponding variables for this unpacking to workthe number of variables must match the length of the tupleotherwisewe obtain an error message stating that there are too many or not enough values to unpack function can return any number of argumentsseparated by commas exactly as above here we have threedef ( )return xx** ** ( print(type( )sxx notice the last linewhere tuple of length is unpacked into three individual variables examplea function to compute sum for more relevant function exampleof kind that will arise frequently in this bookconsider the sum (xnn xi = which is an approximation to ln( xfor finite and | the corresponding python function for (xnlooks like def ( , ) for in range( , + ) + ** / return