python-beginner - 6 - Fonksiyonlar



Fonksiyonlar

Basit klasik
def helloworld():
    print('Hello')

helloworld()

#
Hello

parametre
def helloworld(name):
    print('Hello '+name)

helloworld('Jo')

#
Hello Jo

Parametre olmayinca default kullanimi
def helloworld(name= 'user'):
    print('Hello '+name)

helloworld('jo')
helloworld()

#
Hello jo Hello user

geriye string bilgi gonderme-return
def helloworld(name= 'user'):
    return 'Hello '+name

msg =helloworld('jo')
msg2=helloworld()
print(msg)
print(msg2)

#
Hello jo Hello user

Fonksiyon`da hesaplama
- 1 -
def total(num1, num2):
    return num1 + num2
result = total(10,20)
print(result)

#
30
- 2 - 
def yashesap(dogumyili):
    return 2019-dogumyili
agecinar=yashesap(2017)
ageAda=yashesap(2010)
ageSena=yashesap(1999)

print(agecinar,ageAda, ageSena)

#
2 9 20

funksiyon icinde fonksiyon
def emekliNeKadar(dogYil, Ad):
    yas = yashesap(dogYil) # yukaridaki fonksiyonu kullaniyoruz
    emeklilik=65-yas

    if emeklilik>0:
        print(f'emek {emeklilik} yil kaldi')
    else:
        print('Zaten haleluyah')

emekliNeKadar(1983, 'Ali')
emekliNeKadar(1950, 'Ahmet')
emekliNeKadar(1974, 'Yagmur')

#
emek 29 yil kaldi
Zaten haleluyah emek 20 yil kaldi

fonksiyon icin help
def nasilfnkscalisir():
    '''
    DOCSTRING: Dogum yilina gore emek, kac yil kaldi hesaplar
    INPUT: Dogum yili
    OUTPUT: Hesapl yil bilgi
    '''
   
print(help(nasilfnkscalisir))

#
nasilfnkscalisir() DOCSTRING: Dogum yilina gore emek, kac yil kaldi hesaplar INPUT: Dogum yili OUTPUT: Hesapl yil bilgi None

built in fonksiyon


def add(a,b):
    return sum((a,b))
print(add(10,20))

Parametrelerde default value`lar

def add(a,b,c=0,d=0):
    return sum((a,b,c,d))
   
print(add(10,20))
#
30

default value otomatik eklenir:
def add(a,b,c=4,d=3):
    return sum((a,b,c,d))
   
print(add(10,20))

#
37

parametreler sınırsızmiktar ve otomatik default olması için: params
burada params type`i -> tuple -> tuple liste icin tek yildiz
def add(*params):
    return sum((params))
   
print(add(2.5,10,70,80,100,40.12,8,7))
#
317.62

parametreleri dictionnary olarak kullanmak için
burada params type`i-> dict yani dictionnary -> dict liste icin iki yildiz
not: `params` yerine `args` da kullanilabiliyor
def displayUser(**params): # veya args - burada onemli olan **
    for key, value in params.items():
        print("{} is {}".format(key,value))

displayUser(name= 'Cinar', age=2, city='Istanbul')
displayUser(name= 'Ada', age=2, city='Kocaeli',phone='138296')
displayUser(name= 'Yigit', age=2, city='Ankara',phone='138296',email='sonki@dodo.fos')

#
Not: duzensiz veri girislerine ragmen yukaridaki gibi oto default ile veriler hatasiz geliyor

#
name is Cinar age is 2 city is Istanbul name is Ada age is 2 city is Kocaeli phone is 138296 name is Yigit age is 2 city is Ankara phone is 138296 email is sonki@dodo.fos

Parametreler, tuple ve dico argumanlar ile de beraber kullanilabilir
def myfunc(a,b,c,d,*args,**kkwargs):
    print(a)
    print(b)
    print(c)
    print(d)
    print(args)
    print(kkwargs)
myfunc(10,20,30,40,50,60,70,80,90,key1="val1",key2="val2")

#
10 20 30 40 (50, 60, 70, 80, 90) {'key1': 'val1', 'key2': 'val2'}

Fonksiyon`u kullanmadan fonksiyon: Lambda

karesini al:
numbers=[1,3,5,9]
result=list(map(lambda num: num**2, numbers))
print (result)

#
[1, 9, 25, 81]

veya daha basit sekilde:
square = lambda num:num**2
numbers=[1,3,5,9]
print (result)

#
[1, 9, 25, 81]



Comments

Popular posts from this blog

python - pro - 20 - SQLite

python - pro - 21 - NoSQL

python-beginner - 1 - strings splits