[Tutor] Will the following code ever exit?

John Fouhy john at fouhy.net
Sat Sep 17 03:20:37 CEST 2005

On 17/09/05, Nathan Pinno <falcon3166 at hotmail.com> wrote:
> def add(a,b): 
>     answer = a+b 
>     guess = float(raw_input(a," + ",b," = ")) 

Hi Nathan,

When you define a function, any variables you create in the function
are _local_ variables.  This means that they only exist within the
function, and when the function exits, python will forget about them.

As an example, consider the following code:

total = 13

def add(a, b):
    total = a + b

add(2, 4)
print total

The print statement at the end will print out 13, not 6.  The best way
to get output from a function is to use a return statement.  So, we
could change your add function to look something like this:

def add(a, b):
    answer = a+b
    guess = float(raw_input(a," + ",b," = "))
    return answer, guess

Then, you can use the function in your program like this:

answer, guess = add(num1, num2)

This will get the return values of the function and put it into
variables which you can access from the rest of your program.

Hope this helps!


More information about the Tutor mailing list