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: 
you return it

```
def func(n):
    number = n+1
    return number

something = func(n)

```
As stated in comments, you can use `global` keyword, here is a short example:

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

```

Now if `func2` is called after `func` call, it will print 1 just as you would expect.

However, global variables are **not** exactly the best practice, you should probably avouid using them unless you absolutely have to, in which case the code above should help.

You can also check out python docs section on the subject: <https://docs.python.org/2/faq/programming.html#why-am-i-getting-an-unboundlocalerror-when-the-variable-has-a-value> , might be helpful.