Functions


In [1]:
def function_name(param_a: int, param_b: int) -> int:
        return_value = param_a + param_b
        return return_value

In [2]:
function_name(2, 3)


Out[2]:
5

In [3]:
def sumAndSquares(a: int, b: int) -> tuple:
    return (a + b, a ** 2, b **  2)

In [4]:
a, b, c = sumAndSquares(3, 4)

print("Sum: {}\na^2: {}\nb^2: {}".format(a, b, c))


Sum: 7
a^2: 9
b^2: 16

In [5]:
def bad_swap(a: int, b:int ) ->None:
    a, b = b, a

In [6]:
a, b = 1, 2
print("a: {}\nb: {}\n".format(a, b))

bad_swap(a, b)

print("a: {}\nb: {}".format(a, b))


a: 1
b: 2

a: 1
b: 2

In [7]:
def hello():
    print("Hello World!")

In [8]:
hello()


Hello World!

In [9]:
def hello(name):
    print("Hello {}".format(name))

In [10]:
hello('Bruce')


Hello Bruce

In [11]:
#hello()

#---------------------------------------------------------------------------
#TypeError                                 Traceback (most recent call last)
#<ipython-input-15-a803225a2f97> in <module>()
#----> 1 hello()
#
#TypeError: hello() missing 1 required positional argument: 'name'

In [12]:
def hello(name='World'):
    print("Hello {}".format(name))

In [13]:
hello('Bruce')


Hello Bruce

In [14]:
hello()


Hello World

In [15]:
rval = hello()


Hello World

In [16]:
print(rval)


None

In [17]:
type(None)


Out[17]:
NoneType

In [18]:
def sumAandB(a, b):
    return a + b

In [19]:
sumAandB(10, 11)


Out[19]:
21

In [20]:
func = hello

type(func)


Out[20]:
function

In [21]:
func()


Hello World

In [22]:
def sum_function(a, b):
    return a + b

def sub_function(a, b):
    return a - b

def div_function(a, b):
    return a / b

def mult_function(a, b):
    return a * b

functions = [sum_function, sub_function, div_function, mult_function]

for f in functions:
    print(f(42, 23))


65
19
1.826086956521739
966

In [23]:
verbose = True

def function_example():
    if verbose:
        print("Running procedure blablabla")
        
function_example()        

verbose = False
function_example()


Running procedure blablabla

In [24]:
global_var = 42

print(global_var)

def try_change_my_global_var():
    global_var = 23
    print('Inside {}: {}: {}'.
          format('try_change_my_global_var', 'global_var', 23))
    
try_change_my_global_var()
print(global_var) # ups


42
Inside try_change_my_global_var: global_var: 23
42

In [25]:
global_var = 42

print(global_var)

def really_change_my_global_var():
    global global_var 
    global_var = 23
    print('Inside {}: {}: {}'.
          format('really_change_my_global_var', 'global_var', 23))
    
really_change_my_global_var()
print(global_var) # it's alive


42
Inside really_change_my_global_var: global_var: 23
23