# This program prints # # 3 squared is n # # Even though n is assigned a n value in square(), and is returned, # the call to square() in main() does not assign the value to # anything, so the return value is lost. When main() prints n a # second time (on its fourth line), it is the same value of n, because # main()'s n is a different n than square()'s n. def square(n): n = n * n return n def main(): n = 3 print n, "squared is", square(n) print n main()