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