python - advanced - 11 - functions



 Beginner Intermediate - Advanced Functions - Iterators -

Nested functions

def outer(num1):
    print('outer')
    def inner_increment(num1):
        print('inner')
        return num1+1
    num2=inner_increment(num1)
    print(num1,num2)

outer(10)
#
0uter inner 10 11

Fonksiyondan fonksiyona dondurme

def usalma(number):
    def inner(power):
        return number**power
    return inner
two=usalma(2) # burada hangi sayinin ussu alinacagi soyleniyor
three=usalma(3) # ayni: hangi sayinin

print (two(3)) #burada power veriliyor # 2 - 3 = 8
print (three(4)) # power veriliyor # 3 - 4 = 81

- ornek 2 - 
def islem(islem_adi):
    def toplam(*args):
        toplam=0
        for i in args:
            toplam+=i
        return toplam
    def carpma(*args):
        carpma=1
        for i in args:
            carpma*=i
        return carpma
    def cikarma(*args):
        cikarma=0
        for i in args:
            cikarma-=i
        return cikarma
    def bolme(*args):
        bolme=1
        for i in args:
            bolme/=i
        bolme=bolme
        return bolme
    if islem_adi == "toplam":
        return toplam
    elif islem_adi == "carpma":
        return carpma
    elif islem_adi == "cikarma":
        return cikarma
    else:
        return bolme
   
result=islem("bolme")
print(result(1,3,5,6,7))

#
toplama: 22 -> 1+3+5+6+7
cikarma: 630 -> 1*1*3*5*6*7
carpma: -22 -> 0-1-3-5-6-7
bolme: 0.0015873015873015873 -> (((1/3)/5)/6)/7

Functions as parameter = fonksiyon`un parametresi baska fonksiyon

def toplama(a,b):
    return a+b
def cikarma(a,b):
    return a-b
def carpma(a,b):
    return a*b
def bolme(a,b):
    return a/b

def islem(f1,f2,f3,f4,islem_adi):
    if islem_adi=="toplama":
        print(f1(2,3))
    if islem_adi=="cikarma":
        print(f2(2,3))
    if islem_adi=="carpma":
        print(f3(2,3))
    if islem_adi=="bolme":
        print(f4(2,3))

islem(toplama,cikarma,carpma,bolme,"bolme")
# Not her iki ornek de ayni mantik. Obur fonksiyon`dan bilgi alisi indrect sekilde
toplama: 5
cikarma: -1
carpma: 6
bolme: 0.6666666666666666

decorator fonksiyonu --- baska ressource`lara bak
import math
import time

def calculate_time(func): # bu fonksiyon sadece zamani hesapliyor
    def inner(*args,**kwargs): # args ve kwargs, ek fonksiyon icindir,
                                # parametre sinirsiz olmasini saglar
                                # kwargs<=>ikinci arguman olmayabilir demek filan gibi
                                # args ve kwargs icin onceki derslere bak
        start = time.time()
        time.sleep(1) # 1 saniye bekletiyoruz
        func(*args,**kwargs)
        finish=time.time()
        print("fonksiyon "+func.__name__+" "+str(finish-start)+" zaman aldi")
    return inner

@calculate_time # burada asagidaki fonksiyonu bununla beraber al diyoruz
def usalma(a,b): # yani, bu fonksiyonu yurut + zamani da hesapla
    print(math.pow(a,b))
usalma(2,3)

#
8.0 fonksiyon usalma 1.0044910907745361 zaman aldi # yani 0.0044... biz buna +1 sn ekledik






Comments

Popular posts from this blog

python - pro - 20 - SQLite

python - pro - 21 - NoSQL

python-beginner - 1 - strings splits