Fonksiyonlar
Fonksiyon tanımı, parametreler, yerel değişkenler, return ve docstring.
Tüm dersler · Python dersleri: sıfırdan öğren
Fonksiyon tanımlamak
Fonksiyon, adı olan bir kod parçasıdır; bir kez yazar, defalarca çağırırsın. def ile tanımlanır, parametreler parantez içine yazılır, sonuç return ile döner. return yoksa fonksiyon None döndürür.
def area(width, height):
return width * height
print(area(4, 5)) # 20
room = area(3.5, 2)
print(room) # 7.0Fonksiyonun ilk satırına metin yazarsan bu docstring olur ve help(area) ile okunur. İyi bir fonksiyon tek iş yapar ve adı bu işi söyler.
def is_adult(age):
"""Return True if age is 18 or more."""
return age >= 18Parametreler
Bir parametreye varsayılan değer verilebilir; o zaman çağrıda yazmak zorunlu değildir. Argümanları sırayla veya adıyla iletebilirsin.
def greet(name, greeting="Hello", mark="!"):
return f"{greeting}, {name}{mark}"
print(greet("Leyla"))
print(greet("Leyla", mark="?"))
print(greet(greeting="Salam", name="Kamran"))Sayısı belirsiz argümanlar için *args (konumsal) ve **kwargs (adlı) vardır. Dikkat: varsayılan değer olarak boş liste [] yazma; çağrılar arasında paylaşılır. Bunun yerine None yaz ve fonksiyon içinde yeni liste oluştur.
def total(*numbers):
return sum(numbers)
def add_tag(tag, bucket=None):
if bucket is None:
bucket = []
bucket.append(tag)
return bucket
print(total(1, 2, 3, 4)) # 10
print(add_tag("a"), add_tag("b")) # ['a'] ['b']Değişkenin görünürlük alanı
Fonksiyon içinde oluşturulan değişken yereldir ve dışarıdan görünmez. Dıştaki (global) değişken okunabilir, ama değiştirmek için global sözcüğü gerekir. Pratikte global değişkenden kaçınıp gerekeni parametreyle iletmek daha iyidir.
rate = 0.18
def with_tax(price):
tax = price * rate # reads the global
return price + tax
print(with_tax(100))
# print(tax) -> NameError: tax exists only inside the function