## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# Return Values

Some of the built-in functions we have used, such as the math functions, produce results. Calling the function generates a value, which we usually assign to a variable or use as part of an expression.

````e` `=` `math``.``exp``(``1.0``)`
`height` `=` `radius` `*` `math``.``sin``(``radians``)`
```

All of the functions we have written so far are void; they print something or move turtles around, but their return value is `None`.

In this chapter, we are (finally) going to write fruitful functions. The first example is `area`, which returns the area of a circle with the given radius:

````def` `area``(``radius``):`
`temp` `=` `math``.``pi` `*` `radius``**``2`
`return` `temp`
```

We have seen the `return` statement before, but in a fruitful function the `return` statement includes an expression. This statement means: “Return immediately from this function and use the following expression as a return value.” The expression can be arbitrarily complicated, so we could have written this function more concisely:

````def` `area``(``radius``):`
`return` `math``.``pi` `*` `radius``**``2`
```

On the other hand, temporary variables like `temp` often make debugging easier.

Sometimes it is useful to have multiple return statements, one in each branch of a conditional:

````def` `absolute_value``(``x``):`
`if` `x` `<` `0``:`
`return` `-``x`
`else``:`
`return` `x`
```

Since these `return` statements are in an alternative conditional, only one will be executed.

As soon as a return statement executes, the function terminates without executing any subsequent statements. Code that appears after a `return` statement, or any other place ...

## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

No credit card required