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
Post a Comment