Coding for KidsCoding for Kids
Level KreatifTantanganPanduan Guru
Voting untuk fitur
Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat

Generator
Mengirim data ke sebuah Generator

Tujuan

Kumpulkan wol dan putar menjadi benang menggunakan kumparan dengan mengirimkan data ke generator.

Beberapa domba menjadi agak berbulu, sebaiknya digunduli dan dikumpulkan wolnya. Anda kemudian dapat memasukkan wol ke dalam kumparan untuk menghasilkan benang. Untuk mencapai ini, kita perlu menggunakan generator karena jumlah benang dan wol yang diproses dapat bervariasi.

Pertama, definisikan sebuah generator yang mampu memutar benang, beri nama spin(), generator ini perlu diatur untuk menggunakan input eksternal agar dapat beroperasi. Ini membaca data dari yield dan menempatkannya dalam sebuah variabel, lalu memodifikasi isinya dengan meningkatkan panjangnya di setiap siklus, akhirnya menghasilkan hasil.

def spin(): cycle = 1 while True: cycle += 1 yarn = yield yarn = yarn * cycle yield player.speak("You've spun %d ft of yarn" % (yarn))

Karena ini adalah generator, pernyataan while() di dalamnya dapat dijeda dan dimodifikasi untuk menghasilkan output yang kita inginkan, tingkat kontrol ini adalah inti dari apa itu generator dan seberapa bergunanya saat memproses data. Untuk memasukkan data ke dalam generator, definisikan dan gunakan fungsi send() untuk memasukkan data apa pun yang Anda inginkan, misalnya:

spindle = spin() # Buat instance dari generator next(spindle) # Jalankan generator satu langkah spindle.send(6) # Masukkan data ke dalam generator # Dalam kasus ini Anda mengirimkan angka 6

Berjalanlah ke tanda X yang terang di karpet berwarna dan hadapilah domba. Ada konstanta kamus bernama sheep yang menyimpan nilai seberapa banyak wol yang dapat Anda gunduli pada setiap domba. Gunakan fungsi speak() dengan kamus dan warna karpet yang Anda pijak, untuk memotong wol domba dan memeriksa seberapa banyak yang telah Anda kumpulkan. Misalnya: player.speak(sheep["green"]).

Ada total empat (4) karpet berwarna: "green", "red", "blue", dan "orange". Setelah Anda menggunduli domba, berjalanlah ke tanda X gelap di dekat setiap karpet berwarna tempat kumparan berada. Gunakan send() untuk memasukkan jumlah pon wol yang digunduli dari setiap domba dalam warna masing-masing ke dalam generator.

Sebagai contoh, jika saat menggunduli domba di karpet "green", Anda menggunduli 4 pon wol, pergilah ke karpet "green" di dekat kumparan dan kirimkan data itu ke generator, seperti ini:

next(spindle) spindle.send(4)

Lakukan ini untuk semua empat (4) tanda X gelap di karpet berwarna untuk menyelesaikan level ini.

Buku Kode