# Kako definiramo funkcije

def f(x, y):
    """f je ime funkcije, x in y sta argumenta."""
    a = x + y * x - 2
    b = a * x
    return b

def g(x, y=5):
    """g je ime funkcije, x in y sta argumenta. Privzeta vrednost za y je 5."""
    return 100 * x + y

def h(x, y=5, z=8):
    """h je ime funkcije, x in y sta argumenta.
       Privzeta vrednost za y je 5.
       Privzeta vrednost za yzje 8."""
    return 10000 * z + 100 * x + y + w

def vsota(*args):
    """Izracunaj vsoto vseh argumentov."""
    v = 0
    for x in args:
        v += x
    return v
    
def foo(x, y, *opice):
    """Prvi argument je x, drugi je y, vsi preostali so v seznamu opice."""
    return (x + y, len(opice))

    
def bar(x, y, z):
    print ("x je", x, "in y je ", y, "in z je ", z)


def baz(*args, **kwargs):
    """args je nabor vseh pozicijskih (neimenovanih) argumentov.
       kwargs je slovar vseh imenovanih argumentov."""
    return (args, kwargs)


def kekec(x): # 8
    a = x * x + 1 # 65
    return a # 65

def mojca(x): # 3
    a = x * x - 1  # 8
    b = kekec(a) # 65
    return a + b + x # 8 + 65 + 3
    
def rozle(x):
    
    def bedanc(y):
        print ("Kekec, kekec, odpri vrata al te bom!")
        return x + y
    
    print ("Joj me je strah!")
    return bedanc(10)







    