### Function can return something in python

You have been using the = character to name variables and set them to numbers or strings. We’re now going to blow your mind again by showing you how to use = and a new Python word return to set variables to be a value from a function. There will be one thing to pay close attention to, but first type this in:

```
1 def add(a, b):
2 print "ADDING %d + %d" % (a, b)
3 return a + b
4
5 def subtract(a, b):
6 print "SUBTRACTING %d - %d" % (a, b)
7 return a -b
8
9 def multiply(a, b):
10 print "MULTIPLYING %d * %d" % (a, b)
11 return a * b
12
13 def divide(a, b):
14 print "DIVIDING %d / %d" % (a, b)
15 return a / b
16
17
18 print "Let's do some math with just functions!"
19
20 age = add(30, 5)
21 height = subtract(78, 4)
22 weight = multiply(90, 2)
23 iq = divide(100, 2)
24
25 print "Age: %d, Height: %d, Weight: %d, IQ: %d" % (age, height, weight, iq)
26
27
28 # A puzzle for the extra credit, type it in anyway.
29 print "Here is a puzzle."
30
31 what = add(age, subtract(height, multiply(weight, divide(iq, 2))))
32
33 print "That becomes: ", what, "Can you do it by hand?"
```

#### Output

```
Let's do some math with just functions!
ADDING 30 + 5
SUBTRACTING 78 - 4
MULTIPLYING 90 * 2
DIVIDING 100 / 2
Age: 35, Height: 74, Weight: 180, IQ: 50
Here is a puzzle.
DIVIDING 50 / 2
MULTIPLYING 180 * 25
SUBTRACTING 74 - 4500
ADDING 35 + - 4426
That becomes: - 4391 Can you do it by hand?
```

We are now doing our own math functions for add, subtract, multiply, and divide. The important thing to notice is the last line where we say return a + b (in add).

### Study Drills

- If you aren’t really sure what return does, try writing a few of your own functions and have them return some values. You can return anything that you can put to the right of an =.
- At the end of the script is a puzzle. I’m taking the return value of one function and using it as the argument of another function. I’m doing this in a chain so that I’m kind of creating a formula using the functions. It looks really weird, but if you run the script, you can see the results. What you should do is try to figure out the normal formula that would recreate this same set of operations.

#### Why does Python print the formula or the functions “backward”?

It’s not really backward; it’s “inside out.” When you start breaking down the function into separate formulas and function calls, you’ll see how it works. Try to understand what I mean by “inside out” rather than “backward.”

#### How can I use raw_input() to enter my own values?

Remember int(raw_input())? The problem with that is then you can’t enter floating point, so also try using float(raw_input()) instead.