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

Kelas Lanjutan
Pengoperasian Semula Perbandingan

Objektif

Semak dan label penghantaran dengan betul menggunakan Overloading Perbandingan.

Dok pelabuhan penghantaran mempunyai beberapa tong wain yang sedia untuk dibawa keluar ke kedai-kedai, namun ia perlu diberi label dan disediakan supaya pekerja boleh mengenal pasti dan menghantarnya tanpa sebarang masalah. Untuk melakukan ini, anda mesti menggunakan Overloading Perbandingan, serupa dengan Overloading Operator yang dipelajari dalam bab sebelumnya, anda mesti melakukan overload kepada satu kelas, kali ini dengan operator perbandingan.

Terdapat tiga (3) pesanan di dok, setiap satu dengan dua (2) tong. Setiap pesanan mempunyai papan tanda yang bertujuan untuk menggambarkan nisbah berat tong dalam pesanan itu. Terdapat sebuah kelas yang digariskan dalam editor bernama barrel yang membolehkan anda menggunakan Overloading Perbandingan. Terdapat juga tiga (3) fungsi yang telah disediakan dalam editor: less_than(), greater_than(), equal_to(), fungsi-fungsi ini digunakan untuk mendokumentasikan nisbah berat pada papan tanda.

Mulakan dengan berjalan ke tanda X gelap dan terang pada permaidani merah dan hadapi tong-tong tersebut, gunakan fungsi read() untuk menentukan nama wain dalam tong serta berat tong, seperti berikut: await player.read().

Ciptakan objek untuk tong gelap dan tong terang, menggunakan kelas barrel, dan masukkan maklumat yang anda kenalpasti daripada fungsi read(). Setelah objek-objek tersebut diwujudkan, cipta satu lagi objek yang membandingkan kedua-dua objek itu. Sebagai contoh:

red_barrel_dark = barrel("Wine name", 000) red_barrel_light = barrel("Wine name", 000) red_barrel_compare = red_barrel_dark < red_barrel_light

Pastikan anda menulis nama wain dalam objek kelas barrel tepat seperti yang dipaparkan dalam mesej apabila anda menggunakan read().

Ciptakan objek menggunakan konvensyen penamaan mengikut permaidani dan tanda X mengikut warna. Untuk permaidani merah, apabila membandingkan tong, gunakan operator < untuk memeriksa jika tong gelap mempunyai berat yang lebih rendah berbanding tong terang. Untuk menyelesaikan segmen ini, berjalanlah ke tanda X emas di atas permaidani merah dan hadapi papan tanda. Gunakan fungsi less_than() dengan objek perbandingan untuk memplotkan nisbah berat tong, seperti berikut: less_than(red_barrel_compare).

Seterusnya, berjalanlah ke tanda X gelap dan terang pada permaidani hijau dan ulangi proses yang sama. Gunakan fungsi read() pada tanda X gelap dan terang dan cipta objek yang bersesuaian dengan maklumat tersebut. Untuk objek perbandingan permaidani hijau, kali ini kita akan menggunakan operator > untuk memeriksa jika tong gelap mempunyai berat yang lebih berat berbanding tong terang. Berjalanlah ke tanda X emas di atas permaidani hijau dan hadapi papan tanda. Gunakan fungsi greater_than() dengan objek perbandingan untuk memplotkan nisbah berat tong, seperti berikut: greater_than(green_barrel_compare).

Berjalanlah ke tanda X gelap dan terang pada permaidani biru dan ulangi proses yang sama. Gunakan fungsi read() pada tanda X gelap dan terang serta cipta objek yang bersesuaian dengan maklumat tersebut. Untuk objek perbandingan permaidani biru, kali ini kita akan menggunakan operator == untuk memeriksa jika tong gelap mempunyai berat yang sama seperti tong terang. Berjalanlah ke tanda X emas di atas permaidani biru dan hadapi papan tanda. Gunakan fungsi equal_to() dengan objek perbandingan untuk memplotkan nisbah berat tong, seperti berikut: equal_to(blue_barrel_compare).

Setelah semua pesanan telah diberi label, berjalanlah ke tanda X emas di atas permaidani jingga pada keluar dok. Hadapi papan tanda dan gunakan fungsi write() untuk mencatat apa yang terdapat pada setiap pesanan, tuliskan nama bagi setiap tong mengikut objek yang anda cipta, contohnya bagi tong permaidani merah: red_barrel_dark.name , red_barrel_light.name. Lakukan ini untuk semua enam tong bagi menyelesaikan tahap.

Buku Kod