Search code examples
pythonvariablesscopereturn

Why does my function not return value to global variable?


Why does print(squared) return 0 instead of 100?

I thought that after being returned from the function - the value of the variable squared would be assigned to the the global variable with the same name?

squared = 0
def square(n):
    """Returns the square of a number."""
    squared = n**2
    print "%d squared is %d." % (n, squared)
    return squared


square(10)
print(squared)

returns:

enter image description here


Solution

  • Assign the result of the function to the variable:

    squared = square(10)
    

    This is the whole point of using return squared in the function, isn't it?