Question: ```
def func():
    number = 1
def func2():
    print number

```

Why would this code not print "1"?(Besides the fact that I didn't call the functions?)

Answer: 
Here's what I think you're TRYING to do. My magic crystal ball is rusty.

```
def func1():
    user_input = raw_input("prompt")
    return user_input
def func2(the_input):
    print the_input

that_same_input = func1()
func2(that_same_input)

```

If you're on Python3, substitute `input("prompt")` for `raw_input("prompt")` and `print(the_input)` for `print the_input`

Functions do one of two things. They either make a calculation and return an output, or they mutate some structure into something you want. If they do anything OTHER than this you should (usually) refactor. Right now you're trying to make your `func1` set a global variable, then call it from somewhere else. Well, kind of.

What you're REALLY trying to do is to make a set of calculations with `func1`. You want it to get some user input, then report back what that user input IS. In your original example you tried to save it to a variable, but since variables inside functions don't have global scope that's not working for you. Let's return the value instead and save it to a variable OUTSIDE the function.

Once we've done that, we can make another function accept that as a PARAMETER, and pass it the variable to work with! See? Mutate, or calculate and return. Those are your options.
Why would you need to define "number = 1"? just do 

```
    number = 1
    def func2():
        print number

```