Coding for KidsCoding for Kids
Yaratıcı SeviyelerZorluklarÖğretmen Kılavuzu
Özellikler için oy verin
Gelişmiş Python Geliştirme Kursu
Bölüm
>
Seviye

Gelişmiş Fonksiyonlar
Lambda Fonksiyonları

Amaç

Lambda fonksiyonlarını kullanarak bazı tüketim ürünlerini belgeleyin, böylece daha sonra sevkiyat için toplanabilirler.

Tarladaki bazı meyve ve böğürtlenler neredeyse toplanmaya hazır durumda; böylece depolanabilir, sevk edilebilir ve satılabilirler. Neredeyse hazır olan ürünlerin listesini çıkarmak, bu tarladan kaç ürünün paketlenip sevk edildiğine dair bir tahmin elde etmenize yardımcı olacaktır.

Kodunuzu optimize etmek için lambda fonksiyonları kullanabilirsiniz; bu, özel fonksiyonlar oluşturmanın başka bir yolu olup, oluşturduğunuz fonksiyonlar daha basit olduğunda kullanımı daha hızlıdır.

# Normal Custom Function def calculate(x , y , z) : return( (x+y+z) *2 ) # Lambda Function calculate = lambda x,y,z : (x + y + z) * 2

Yukarıdaki örnekte, özel bir fonksiyon ve bir lambda fonksiyonu bulunmaktadır. Yazım şekilleri farklı olsa da işlevsel olarak aynıdırlar; lambda fonksiyonu sadece kullanımı daha kolaydır ve kodun ortasında anında kurulabilir. Bununla birlikte, karmaşık kod dizileri için normal fonksiyon tanımlama yöntemi hâlâ oldukça yararlıdır.

Tarla içerisinde kategorize edilebilecek iki (2) tip ürün vardır: "fruits" ve "berries". Bu iki (2) tipten, üç (3) meyve bulunmaktadır: apples, pears ve oranges; ayrıca üç (3) berry bulunmaktadır: red, blue ve purple.

Öncelikle, yukarıda gösterilen calculate adlı lambda fonksiyonu nu kurun; bu, üç öğeyi toplayıp iki (2) ile çarparak mevsim için tahmin edilen ürün sayısını elde etmemizi sağlayacaktır. Toplanacak ürünleri tahmin etmek amacıyla başka bir lambda fonksiyonu olan estimate i oluşturun, bu da özel bir konuşma fonksiyonu olarak kullanılacaktır. Son olarak, iki değeri toplayıp üçüncü bir değeri, yani kaybı çıkaran total adlı bir lambda fonksiyonu oluşturun.

# Calculate items calculate = lambda x,y,z : (x + y + z) * 2 # Estimate items estimate = lambda number , name : player.speak( "I estimate %d %s this season" % (number,name) ) # Total all items total = lambda num1, num2, loss : ( (num1 + num2) - loss)

Üç (3) meyve için değişkenler oluşturun ve tarlada bulunan her birinin sayısını ekleyin. Karanlık X işaretine gidin ve tüm üç meyve değişkenini kullanarak lambda fonksiyonu calculate() ı çalıştırın; sonucu fruit_number adlı özel bir değişkende saklayın, örneğin: fruit_number = calculate(orange,pear,apple). Ardından, estimate() lambda fonksiyonu nu fruit_number sayısını ve "fruits" ismini kullanarak çalıştırın, örneğin: estimate(fruit_number, "fruits" ).

Meyvelerle işiniz bittikten sonra, aydınlık X işaretine gidin ve aynı işlemi berryler için yapın. Tarlada saydığınız çalı sayısını temsil eden üç (3) berry için değişkenler oluşturun, ardından meyveyle yaptığınız gibi lambda fonksiyonu nu ayarlayın, örneğin: berry_number = calculate(red,blue,purple). estimate lambda fonksiyonu nu berry_number ve "berries" argümanları ile kullanın.

Kayıp ürün için geçen ayın tahminlerini içeren doc adlı bir sabit bulunmaktadır. Depoya gidin, altın X işaretine doğru ilerleyin ve masadaki belgeyi okumak için speak() fonksiyonunu bu sabit ile kullanarak geçen ayın sayılarını belirleyin.

Geçen ayın sayıları belirlendikten sonra, mor halı üzerindeki karanlık X işaretine gidin, masaya bakarak bu ayın toplamlarını belirleyin. Mevsimin toplamlarını hesaplamak için season adlı bir değişken oluşturun; fruit_number ve berry_number değerlerini kullanın ve kayıp argümanı olarak doc sabitinden belirlediğiniz sayıyı kullanın, örneğin: season = total(berry_number,fruit_number, number found in doc constant)

Seviyeyi tamamlamak için, estimate() lambda fonksiyonu nu season değişkenini sayı argümanı, "products" ifadesini ise isim argümanı olarak kullanacak şekilde çalıştırın.

Kod Kitabı