Study Python with Spyder http://datasciencesource.com/python-with-spyder-tutorial/
Python With Spyder 3: Functions and Scoping
variable|arguments pass in
x=10 def myfun1(x): y=x**2 x=27 return y
print('f=',myfun1(5)) f= 25
print ('x=',x) x= 10
z=10 def myfun2(x): global z y=x**2+z z=27 return y
print('f=',myfun2(5)) f= 35
print ('z=',z) z= 27
global variable
z=10 def myfun2(x): global z y=x**2+z z=27 return y
print('f=',myfun2(5)) f= 35
print ('z=',z) z= 27
multiple arguments
x=1 y=2 z=3
def myfun3(x,y,z): out=x2+y2+z**2 return out
print('f=',myfun3(x,y,z)) f= 14
optional arguments
x=1 y=2 z=3
def myfun4(x=0,y=0,z=0): out=x2+y2+z**2 return out
print('f=',myfun4(x,y)) f= 5
print('f=',myfun4(x,y,z)) f= 14
print('f=',myfun4(y=y,z=z))
f= 13
print('f=',myfun4(y=x,z=y),myfun4(0,1,2),myfun4(y=1,z=2)) f= 5 5 5