Python Fonksiyonları
İşlev, yalnızca çağrıldığında çalışan bir kod bloğudur.
Parametre olarak bilinen verileri bir fonksiyona geçirebilirsiniz.
Bir işlev, sonuç olarak veri döndürebilir.
İşlev Oluşturma
Python'da def anahtar sözcüğü kullanılarak bir işlev tanımlanır :
Örnek
def my_function():
print("Hello from a function")
Fonksiyon Çağırma
Bir işlevi çağırmak için, işlev adını ve ardından parantez kullanın:
Örnek
def my_function():
print("Hello from a function")
my_function()
Argümanlar
Bilgiler, argümanlar olarak işlevlere aktarılabilir.
Bağımsız değişkenler, işlev adından sonra parantez içinde belirtilir. İstediğiniz kadar argüman ekleyebilirsiniz, sadece virgülle ayırın.
Aşağıdaki örnekte tek bağımsız değişkenli (fname) bir işlev vardır. İşlev çağrıldığında, işlevin içinde tam adı yazdırmak için kullanılan bir ad iletiyoruz:
Örnek
def my_function(fname):
print(fname + " Refsnes")
my_function("Emil")
my_function("Tobias")
my_function("Linus")
Python belgelerinde argümanlar genellikle argümanlar olarak kısaltılır .
Parametreler veya Argümanlar?
Parametre ve argüman terimleri aynı şey için kullanılabilir: bir fonksiyona aktarılan bilgiler.
Bir fonksiyonun bakış açısından:
Parametre, işlev tanımında parantez içinde listelenen değişkendir.
Argüman, çağrıldığında işleve gönderilen değerdir.
Argüman Sayısı
Varsayılan olarak, bir işlev doğru sayıda bağımsız değişkenle çağrılmalıdır. Yani, işleviniz 2 bağımsız değişken bekliyorsa, işlevi daha fazla veya daha az değil, 2 bağımsız değişkenle çağırmanız gerekir.
Örnek
Bu işlev 2 bağımsız değişken bekler ve 2 bağımsız değişken alır:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil", "Refsnes")
Örnek
Bu işlev 2 bağımsız değişken bekler, ancak yalnızca 1'i alır:
def my_function(fname, lname):
print(fname + " " + lname)
my_function("Emil")
Keyfi Argümanlar, *args
Fonksiyonunuza kaç tane argüman iletileceğini bilmiyorsanız *
, fonksiyon tanımında parametre adından önce bir tane ekleyin.
Bu şekilde işlev bir dizi argüman alacak ve buna göre öğelere erişebilecek:
Örnek
Argüman sayısı bilinmiyorsa, *
parametre adından önce bir a ekleyin:
def my_function(*kids):
print("The youngest child
is " + kids[2])
my_function("Emil", "Tobias", "Linus")
Keyfi Argümanlar Python belgelerinde genellikle *args şeklinde kısaltılır.
Anahtar Kelime Bağımsız Değişkenleri
Ayrıca anahtar = değer sözdizimi ile bağımsız değişkenler gönderebilirsiniz.
Bu şekilde argümanların sırası önemli değildir.
Örnek
def my_function(child3, child2, child1):
print("The youngest child
is " + child3)
my_function(child1 = "Emil", child2 = "Tobias", child3 = "Linus")
Anahtar Kelime Argümanları ifadesi , Python belgelerinde genellikle kwarg olarak kısaltılır.
Keyfi Anahtar Kelime Bağımsız Değişkenleri, **kwargs
Fonksiyonunuza kaç tane anahtar kelime argümanının iletileceğini bilmiyorsanız **
, fonksiyon tanımındaki parametre adından önce iki yıldız işareti ekleyin.
Bu şekilde işlev bir argüman sözlüğü alacak ve buna göre öğelere erişebilecek:
Örnek
Anahtar kelime bağımsız değişkenlerinin sayısı bilinmiyorsa,
**
parametre adından önce bir çift ekleyin:
def my_function(**kid):
print("His last name is " + kid["lname"])
my_function(fname = "Tobias", lname = "Refsnes")
Keyfi Kword Argümanları , Python belgelerinde genellikle **kwargs olarak kısaltılır.
Varsayılan Parametre Değeri
Aşağıdaki örnek, varsayılan bir parametre değerinin nasıl kullanılacağını gösterir.
Fonksiyonu argümansız çağırırsak, varsayılan değeri kullanır:
Örnek
def my_function(country = "Norway"):
print("I am from " +
country)
my_function("Sweden")
my_function("India")
my_function()
my_function("Brazil")
Bir Listeyi Argüman Olarak Geçmek
Bir fonksiyona herhangi bir veri tipi argüman gönderebilirsiniz (dize, sayı, liste, sözlük vb.) ve fonksiyon içinde aynı veri tipi olarak ele alınacaktır.
Örneğin, bir Listeyi argüman olarak gönderirseniz, işleve ulaştığında hala bir Liste olacaktır:
Örnek
def my_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_function(fruits)
Dönüş Değerleri
Bir işlevin bir değer döndürmesine izin vermek için şu return
ifadeyi kullanın:
Örnek
def my_function(x):
return 5 * x
print(my_function(3))
print(my_function(5))
print(my_function(9))
Geçiş Bildirimi
function
tanımlar boş olamaz, ancak herhangi bir nedenle function
içeriği olmayan bir tanımınız varsa, pass
hata almamak için ifadeyi girin.
Örnek
def myfunction():
pass
özyineleme
Python ayrıca işlev özyinelemesini de kabul eder; bu, tanımlanmış bir işlevin kendisini çağırabileceği anlamına gelir.
Özyineleme, ortak bir matematik ve programlama kavramıdır. Bu, bir işlevin kendisini çağırdığı anlamına gelir. Bu, bir sonuca ulaşmak için veriler arasında dolaşabileceğiniz anlamına gelir.
Geliştirici, özyineleme konusunda çok dikkatli olmalıdır, çünkü hiçbir zaman sona ermeyen veya aşırı miktarda bellek veya işlemci gücü kullanan bir işlevi yazmak oldukça kolay olabilir. Bununla birlikte, doğru yazıldığında özyineleme, programlama için çok verimli ve matematiksel olarak zarif bir yaklaşım olabilir.
Bu örnekte, tri_recursion() , kendisini ("recurse") çağırmak için tanımladığımız bir fonksiyondur. Veri olarak k değişkenini kullanırız ve bu, her tekrarladığımızda ( -1 ) azalır. Özyineleme, koşul 0'dan büyük olmadığında (yani 0 olduğunda) sona erer.
Yeni bir geliştirici için bunun tam olarak nasıl çalıştığını anlaması biraz zaman alabilir, öğrenmenin en iyi yolu onu test etmek ve değiştirmektir.
Örnek
Özyineleme Örneği
def tri_recursion(k):
if(k > 0):
result = k + tri_recursion(k - 1)
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)