Coding for KidsCoding for Kids
Tahap KreatifCabaranPanduan Guru
Undi untuk ciri
Kursus Pembangunan Python Lanjutan
Bab
>
Tahap

Fungsi Lanjutan
Fungsi Lambda

Objektif

Gunakan fungsi lambda untuk mendokumentasikan beberapa barang guna dikumpulkan untuk penghantaran kemudian.

Beberapa buah dan beri di ladang hampir sedia untuk dituai supaya boleh disimpan, dihantar dan dijual. Adalah idea yang baik untuk menyenaraikan item yang hampir siap tersebut supaya anda mempunyai anggaran berapa banyak produk dari ladang ini sedang dibungkus dan dihantar.

Untuk mengoptimumkan kod anda, anda boleh menggunakan fungsi lambda, ini adalah cara lain untuk membuat fungsi tersuai, tetapi lebih cepat apabila fungsi yang anda cipta adalah lebih ringkas.

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

Dalam contoh di atas, anda mempunyai dua fungsi, satu fungsi tersuai dan satu fungsi lambda. Walaupun ditulis dengan cara yang berbeza, kedua-duanya adalah sama dari segi fungsi, fungsi lambda hanya lebih mudah digunakan dan boleh disediakan dengan cepat di tengah-tengah kod. Walau bagaimanapun, kaedah biasa untuk mendefinisikan fungsi masih sangat berguna untuk urutan kod yang kompleks.

Terdapat dua (2) jenis item yang boleh dikategorikan di ladang: "fruits" dan "berries". Daripada kedua-dua jenis ini, terdapat tiga (3) buah: apples, pears dan oranges; dan terdapat tiga (3) beri: red, blue dan purple.

Pertama, sediakan fungsi lambda yang digambarkan di atas bernama calculate, ini akan membolehkan kita mendapatkan bilangan item yang dijangka untuk musim tersebut dengan menambah tiga item, dan mendarabnya dengan dua (2). Cipta satu lagi fungsi lambda bernama estimate untuk menganggarkan item yang akan dikumpulkan, sebagai fungsi ucapan tersuai. Akhir sekali, sediakan fungsi lambda bernama total yang menambah dua nilai bersama-sama dan menolak nilai ketiga yang dinamakan loss.

# 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)

Cipta pembolehubah untuk setiap tiga (3) buah, dan tambahkan nombor berapa banyak setiap satu terdapat di ladang. Jalan ke tanda X gelap dan gunakan fungsi lambda calculate() dengan ketiga-tiga pembolehubah buah, dan simpan nilainya dalam satu pembolehubah tersuai bernama fruit_number, seperti ini: fruit_number = calculate(orange,pear,apple). Ikuti dengan menggunakan fungsi lambda estimate() dengan menggunakan fruit_number sebagai nombor dan "fruits" sebagai nama, seperti ini: estimate(fruit_number, "fruits" ).

Setelah selesai dengan buah, berjalan ke tanda X cerah dan lakukan perkara yang sama dengan beri. Sediakan pembolehubah untuk tiga (3) beri dengan jumlah rumpun yang anda kira di ladang, kemudian sediakan fungsi lambda dengan cara yang sama seperti yang anda lakukan dengan buah, seperti ini: berry_number = calculate(red,blue,purple). Gunakan fungsi lambda estimate dengan berry_number dan "berries" sebagai argumen.

Terdapat satu pemalar bernama doc yang memegang anggaran bulan lepas untuk produk yang hilang. Bergerak ke rumah stor, berjalan ke arah tanda X emas dan gunakan fungsi speak() dengan pemalar tersebut untuk membaca dokumen di atas meja supaya anda dapat menentukan angka bulan lepas.

Setelah angka bulan lepas diketahui, berjalan ke tanda X gelap di atas permaidani ungu, hadap meja supaya anda dapat menentukan jumlah untuk bulan ini. Cipta satu pembolehubah bernama season untuk mengira jumlah musim, gunakan fruit_number dan berry_number sebagai nombor, dan gunakan nombor yang anda peroleh dari pemalar doc sebagai argumen loss, seperti ini: season = total(berry_number,fruit_number, number found in doc constant)

Ikuti dengan menggunakan fungsi lambda estimate() dengan menggunakan pembolehubah season sebagai argumen nombor dan "products" sebagai argumen nama untuk menyiapkan tahap ini.

Buku Kod