Hi Cindy, the return statement is the normal way to get a result from a function. If there is no return statement executed by your call of the cube function then it returns the default - None.
Your original print would have printed None, yes?
There are some languages with functions that return the result of executing their last statement if no explicit return is executed. Python is not one of those languages.
Functions can perform operations, and they can also return values.
In your first example the cube function multiplied num by itself and
then by itself again, but it wasn’t instructed to do anything with
the result. In your second example, the cube returns the result of
multiplying num by itself and by itself again, so that the value can
be used by the caller.
Technically, function calls always return something: if no explicit
return statement is reached then the function implicitly returns the
special None object on completion, so your first example was
actually printing None.