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
Değişken Argüman Fonksiyonları

Amaç

Depodaki tüm tüketilebilir malzemeleri alın ve varyant argüman fonksiyonlarını kullanarak depolama kaplarına paketleyin.

Depoda yer alan ve satılmak üzere sevk edilecek çeşitli yiyecek öğeleri bulunmaktadır. Bunu verimli bir şekilde yapmak için, değişken sayıda argümana sahip özel fonksiyonlar oluşturabilirsiniz. Bunlar, sabit bir argüman sayısı olmayan ve fonksiyonun işlemlerini gerçekleştirmek için ihtiyacınız kadar argüman ayarlamanıza izin veren fonksiyonlardır.

Bir fonksiyona değişken sayıda argüman eklemenin neyi başarmak istediğinize bağlı olarak iki (2) farklı yolu vardır. Birinci yöntem, çeşitli argüman isimleri yerine, bir argümanın önüne bir yıldız (*) koyarak bir argüman listesi oluşturmadır. Bu otomatik olarak bir liste oluşturur.

def custom_function(message,*arguments): player.speak(message) return(arguments) value = custom_function("lalala","one","two","three") # The message "lalala" is printed on screen # Value now returns the list ("one","two","three")

İkinci yöntem ise, argümanları liste yerine bir sözlük içerisine yerleştirmektir; bu, önceki yöntemle aynı şekilde yapılır ancak bir yıldız yerine iki yıldız (**) kullanılır. Bu otomatik olarak bir liste yerine bir sözlük oluşturur.

def custom_function(message,**arguments): player.speak(message) return(arguments) value = custom_function("lalala", one = 1, two = 2, three = 3) # The message "lalala" is printed on screen # Value now returns the dictionary: # {'one': 1, 'three': 3, 'two': 2}

Sevkiyat için tüm öğeleri paketlemek üzere, tekli öğeleri paketlemek için bir set özel fonksiyon ve birlikte birden fazla öğeyi paketlemek için başka bir set özel fonksiyon oluşturun. Çok fazla fonksiyon yazmanıza gerek kalmadan, değişken argümanları kullanarak çeşitli öğeleri beraber paketleyin.

def pack_singles(name,*items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items) def pack_multi(name,**items): length = len(items) player.speak("There are %d types of %s, those being:" % (length, name) ) player.speak(items) player.place(items)

Alanda dört (4) farklı tür öğe bulunmaktadır: "jars" , "eggs" , "berries" ve "fruit". Depodaki tüm öğeleri toplayın ve sevkiyat yolundaki X işaretlerine doğru yürüyün. Koyu X işaretlerine yürüyün ve pack_singles fonksiyonlarını kullanarak "jars" ve "eggs" öğelerini paketleyin.

"jars" için toplayacağınız dört (4) tür bulunmaktadır ve argüman olarak girilir, bunlar: "white", "purple", "red" ve "brown". Bunlar, yeşil halı yanındaki konteynırda saklanacaktır. Kod şu şekilde yazılır: pack_singles("jars", "white", "purple", "red", "brown")

"eggs" için toplayacağınız üç (3) tür bulunmaktadır ve argüman olarak girilir, bunlar: "white", "green" ve "blue". Bunlar, turuncu halı yanındaki konteynırda saklanacaktır. Önceki yapı ile aynı format kullanılır.

Daha sonra açık X işaretlerine yürüyün ve pack_multi fonksiyonunu kullanarak "berries" ve "fruit" öğelerini paketleyin. "berries" için toplayacağınız üç (3) tür bulunmaktadır ve argüman olarak girilir, bunlar: "red", "blue" ve "purple". Bunlar, mavi halı yanındaki konteynırda saklanacaktır. Her birinin topladığınız miktarını eklemeniz gerekir, örneğin: pack_multi("berries", red = 3 , blue = 2 , purple = 4 )

"fruit" için toplayacağınız dört (4) tür bulunmaktadır ve argüman olarak girilir, bunlar: "apple", "pear", "orange" ve "peach". Bunlar, kırmızı halı yanındaki konteynırda saklanacaktır. Seviyeyi tamamlamak için tüm öğelerin toplandığından ve saklandığından emin olun.

Kod Kitabı