Belajar dengan membaca secara berurutan

Soal Rangkuman Sintaks Python — Gabungkan Kontrol Alur, Fungsi, dan Exception

Tiga latihan yang merangkum apa yang kamu pelajari di Sintaks Python — kontrol alur, fungsi, list comprehension, penanganan exception, dan decorator — menjadi soal review.

Soal 1: Memfilter dan mentransformasi dengan comprehension

Gabungkan filter if di dalam list comprehension dengan operator pangkat `. Pilih hanya elemen yang cocok dengan kondisi dan ubah menjadi sesuatu yang baru** — itulah penggunaan utama comprehension.

3 langkah dalam comprehension
range(1, 16)1 sampai 15if n % 3 == 0or n % 5 == 03 / 5 / 6 / 9 / 10 / 12 / 15n ** 2kuadratkan tiap elemen[9, 25, 36, 81,100, 144, 225]filter dengan if** 2jadikan list
Bangun list baru dalam tiga tahap: iterasi → filter → transformasi.

Dari angka 1 sampai 15, ambil kelipatan 3 atau 5, lalu kumpulkan kuadratnya ke dalam list dan tampilkan.

List comprehension satu baris sudah cukup.

Python Editor

Jalankan kode untuk melihat output

Soal 2: Bangun fungsi pembagian aman dengan try / except

Tulis safe_divide(a, b) agar tidak crash saat pembagi nol. Soal ini menggabungkan def untuk mendefinisikan fungsi, try / except untuk menangkap exception, dan menggunakan return untuk mengirim balik nilai yang berbeda tergantung apa yang terjadi.

Bagaimana try / except mengarahkan pemanggilan
safe_divide(a, b)panggiltry:return a / bSukses5.0except:print + return NoneSaat errorNonesuksespembagi nol
Saat sukses, nilai dikembalikan dari dalam try. Saat error, kontrol melompat ke blok except yang cocok.

Tulis fungsi safe_divide yang menerima dua angka a dan b. Normalnya fungsi ini mengembalikan a / b, tetapi jangan biarkan error pembagian dengan nol membuat program crash — ketika hal itu terjadi, tampilkan "Pembagian dengan nol tidak diperbolehkan" dan kembalikan None sebagai gantinya.

Panggil safe_divide(10, 2) dan safe_divide(10, 0) secara berurutan dan print() tiap nilai kembaliannya untuk verifikasi.

Python Editor

Jalankan kode untuk melihat output

Soal 3: Modifikasi nilai kembalian fungsi dengan decorator

Bangun decorator @double yang menggandakan nilai kembalian fungsi yang dibungkus — tanpa menyentuh body fungsinya. Soal ini memaksa kamu menulis pola decorator itu sendiri: fungsi yang menerima fungsi dan mengembalikan fungsi baru.

Cara decorator dirangkai
def add(a, b):return a + b@double= double(add)wrapper(*args)= add(*args) * 2add(3, 5) → 16(8 digandakan)bungkuskembalikan wrapperpanggil
Decorator adalah fungsi yang menerima fungsi dan mengembalikan fungsi baru. @double sama dengan add = double(add).

Tulis decorator double yang menggandakan nilai kembalian fungsi mana pun yang diberi decorator ini.

Lalu terapkan double ke fungsi sederhana add(a, b) yang mengembalikan a + b, panggil add(3, 5), dan print() hasilnya. Jika decorator-mu terangkai dengan benar, hasilnya akan berbeda dari penjumlahan biasa.

Python Editor

Jalankan kode untuk melihat output

Kerja bagus sudah sampai di sini

Itu menutup Sintaks Python. Kamu sudah membahas kontrol alur dengan kondisional, perulangan, dan exception, definisi fungsi dengan def / lambda, comprehension, higher-order function, decorator, dan generator — pada dasarnya semua tool yang kamu butuhkan untuk mengarahkan program. Sekarang kamu bisa menulis fungsi yang menerima beberapa nilai, mentransformasinya, dan mengembalikan hasil dengan caramu sendiri.

Chapter berikutnya, Pemrograman Berorientasi Objek Python, adalah tentang mendefinisikan tipe sendiri: menulis class, menyiapkan constructor dengan __init__, pewarisan, polimorfisme, encapsulation, special method seperti __add__, context manager dengan with, dan type hints. Itulah cara kamu menyatukan data dan perilaku menjadi satu desain.