Rekursja zwana rekurencją.



def funkcja():
            funkcja()



def func(x):            # przypisujemy zmiennej funkcje, nie wartość liczbową
            return x*x
zmienna=func
print(zmienna(15))

w=1
def func2(f1,x):
            return f1(x)*x
print(' funkcj  funkcji ', func2(func,5))       # odwołanie do funkcji i wartości

#rekurencja, rekursja - obliczenie silni ze zwykłej funkcji
def silnia(x):
            w=1
            for i in range(x):
                        w=w*(i+1)
                        print('w ',w,' i',i)
            return w
print(silnia(5))

def silnia1(x):         # przykład rekursji
            if x <=1:               #przypadek domyślny
                        return 1
            else:
                        return x*silnia1(x-1)    #dążymy do przypadku domyslnego, przypadek rekurencyjny
print('silnia 1  ',silnia1(5))                        


# DRUGI PRZYKŁAD

def suma_Petla(lista):
            suma=0
            for x in lista:
                        suma +=x
            return suma

            
# każda funkcja rekurencyjna ma dwa przypadki podstawowy i rekurencyjny
def suma_Rekurencja(lista):
            if lista==[]:
                        return 0
            else:
                        return lista[0]+suma_Rekurencja(lista[1:])
lista=[3,2,4,9]
print('aaa ',suma_Petla(lista))
print('bbb ',suma_Rekurencja(lista))


            

	


:)