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ş Listeler
Haritalar, Filtre, Azalt

Amaç

Maps, Filter ve Reduce kullanarak dondurmayı karıştırmayı ve üretmeyi tamamlayın.

Bazı dondurma aromaları azalmış veya boş, ancak yeterli malzeme var; bunları telafi ederek daha fazla dondurma üretebiliriz. Bunu yapmak için, döngüleri ve dallı yapıları yoğunlaştırarak yazmanız gereken kod miktarını azaltan güçlü bir araç olan Map'i kullanmalısınız. Filter ve Reduce fonksiyonları, Map fonksiyonuna tamamlayıcıdır ve kodlamanıza çok gerekli esnekliği sağlar.

Başlamak için, programınızın başına şu kodu ekleyerek functools kütüphanesinden Reduce'u içe aktarmanız gerekir: from functools import reduce . Map ve Filter fonksiyonları Python'a gömülü olduğundan, onları içe aktarmanıza gerek yoktur.

Önce, yürüyerek erişilebilen dondurucudan bazı malzemeleri almanız, altın X işaretine doğru yürümeniz, kapıya dönmeniz ve open() fonksiyonunu kullanarak kapıyı açmanız gerekmektedir. Dondurucudaki tüm "cream" kavanozlarını alın, ardından yeşil halı üzerindeki ışıklı X işaretine yürüyün.

Alanda vanilla, strawberry ve chocolate adında üç (3) liste sabiti bulunmaktadır. Her sabit, dondurma aromasını oluşturacak malzeme kombinasyonuna sahiptir. Yeşil X işaretinde, strawberry liste sabitinin içeriğini doğrulayın. Önce daha önce aldığınız "cream"i bırakmak için place() fonksiyonunu, ardından strawberry liste sabitinin içeriğini doğrulamak için speak() fonksiyonunu kullanın.

Doğruladıktan sonra, strawberry liste sabitiyle Map fonksiyonunu kullanma zamanı gelmiştir; listenin içeriği ondalık sayılardan oluşmaktadır. map() fonksiyonunu kullanarak listedeki tüm öğeleri yuvarlayabilir, her bir öğeyi tek tek yuvarlamak için döngü kullanma gereksinimini ortadan kaldırabilirsiniz. Bunu yapmak için, map1 adında bir liste oluşturun ve strawberry listesi ile round() fonksiyonunu birlikte kullanarak map() fonksiyonunu şu şekilde uygulayın: map1 = list(map(round, strawberry)) . İşlem tamamlandıktan sonra sonucu doğrulamak için map1 ile speak() fonksiyonunu kullanın.

Bunun ardından Filter'a geçiyoruz. Bu fonksiyon da Map gibi çalışır, ancak birlikte kullanılacak bir fonksiyon gerektirir. Editörün en üstünde, bir sayının 25'ten büyük olup olmadığını belirlemek için kullanılan, main_ingredients adında önceden tanımlanmış bir fonksiyon bulunacaktır.

def main_ingredients(value): return value > 25

Bir döngü kullanmak yerine, filter() fonksiyonu ile birlikte bu fonksiyonu kullanarak, 25'ten büyük olan (yani ana malzemeler) öğelerden oluşan yeni bir liste oluşturabilirsiniz. filter1 adında yeni bir liste oluşturun ve main_ingredients ile map1 üzerinde filter() fonksiyonunu şu şekilde uygulayın: filter1 = list(filter(main_ingredients, value)) . İşlem tamamlandıktan sonra sonucu doğrulamak için filter1 ile speak() fonksiyonunu kullanın.

Şimdi Reduce'a geçiyoruz. Bu fonksiyon, Filter gibi çalışır; ancak bir listeyi tek bir birime indirgemek için kullanılır. Tıpkı Filter'da olduğu gibi, bu kez iki sayıyı dinamik olarak toplayan custom_sum adlı özel bir fonksiyon kullanır.

def custom_sum(first, second): return first + second

Tüm öğeleri tek bir birime toplamak için, custom_sum fonksiyonu ve filter1 ile birlikte reduce() fonksiyonunu kullanarak reduce1 adında bir değişken oluşturun, bunu şu şekilde yapabilirsiniz: reduce1 = reduce(custom_sum, filter1) . İşlem tamamlandıktan sonra sonucu doğrulamak için reduce1 ile speak() fonksiyonunu kullanın.

Artık Map, Filter, Reduce döngüsünü tamamladığınıza göre, aynı döngüyü kırmızı ve mavi halılardaki ışıklı X işaretlerinde de tekrarlayın. Kırmızı halıda, vanilla liste sabitini kullanarak map2, filter2 ve reduce2 oluşturun. Mavi halıda ise chocolate liste sabitini kullanarak map3, filter3 ve reduce3 oluşturun.

Mor halının üzerindeki son ışıklı X işaretine doğru yürüyün; reduce1, reduce2 ve reduce3'ü ekleyerek vanilla, strawberry ve chocolate'in ana malzemelerini birleştirin. Tüm Reduce sonuçlarını ekleyerek neapolitan adında bir değişken oluşturun, bunu şu şekilde yapabilirsiniz: neapolitan = reduce1+reduce2+reduce3 . Kombinasyonu doğrulamak için speak() fonksiyonunu kullanın ve Neapolitan dondurma oluşturup seviyeyi tamamlamak için place() fonksiyonunu kullanın.

Kod Kitabı