Python - Pernyataan Match-Case: Panduan bagi Pemula
Hai semua, pemrogram Python yang aspiratif! Hari ini, kita akan menyelam ke salah satu fitur Python yang baru: pernyataan match-case. Pikirkan tentang hal itu sebagai pilihan yang lengkap bagi penanganan berbagai skenario dalam kode Anda. Mari kita mulai perjalanan yang menarik ini bersama-sama!
Apa itu Pernyataan Match-Case?
Pernyataan match-case, diperkenalkan di Python 3.10, seperti superhero versi dari struktur if-elif-else. Ini memungkinkan kita untuk membandingkan nilai dengan beberapa pola dan menjalankan kode berdasarkan pola yang cocok pertama kali.
Sintaks Dasar
match subject:
case pattern1:
# Kode untuk pattern1
case pattern2:
# Kode untuk pattern2
case _:
# Kasus default
Mari kita pecahkan ini dengan contoh yang menarik:
def ucapan_superhero(hero):
match hero:
case "Spider-Man":
print("Dengan kekuatan besar datang tanggung jawab besar!")
case "Iron Man":
print("Saya adalah Iron Man.")
case "Black Widow":
print("Saya selalu membersihkan setelah kamu semua.")
case _:
print("Saya tidak tahu superhero itu, tapi mungkin dia keren!")
ucapan_superhero("Spider-Man")
ucapan_superhero("Wonder Woman")
Dalam contoh ini, kita mencocokkan variabel hero
dengan nama superhero yang berbeda. Kasus _
bertindak sebagai default, menangkap setiap hero yang tidak dikenal.
Kasus gabungan dalam Pernyataan Match
Kadang-kadang, kita ingin menangani beberapa pola dengan kode yang sama. Python telah menyiapkan untuk kita!
def klasifikasi_angka(num):
match num:
case 0:
print("Nol adalah angka yang unik!")
case 1 | 2 | 3:
print("Ini adalah angka positif kecil.")
case -1 | -2 | -3:
print("Ini adalah angka negatif kecil.")
case _:
print("Ini adalah angka yang lebih besar.")
klasifikasi_angka(2)
klasifikasi_angka(-2)
klasifikasi_angka(100)
Di sini, kita menggunakan operator |
untuk menggabungkan kasus. Ini seperti mengatakan "atau" dalam bahasa Inggris.
Daftar sebagai Argumen dalam Pernyataan Match Case
Pernyataan match-case tidak hanya untuk nilai sederhana. Ini dapat menangani struktur yang kompleks seperti daftar juga!
def analisis_koordinat(point):
match point:
case [0, 0]:
print("Titik Origin")
case [0, y]:
print(f"Di atas sumbu Y pada y = {y}")
case [x, 0]:
print(f"Di atas sumbu X pada x = {x}")
case [x, y]:
print(f"Titik di ({x}, {y})")
case _:
print("Bukan titik 2D yang valid")
analisis_koordinat([0, 0])
analisis_koordinat([5, 0])
analisis_koordinat([3, 4])
analisis_koordinat([1, 2, 3])
Contoh ini menunjukkan bagaimana kita dapat mencocokkan dengan pola daftar. Ini seperti memberikan kode Anda visi sinar X untuk melihat ke dalam daftar!
Menggunakan "if" dalam "Kasus" Klause
Untuk saat-saat saat kita memerlukan presisi sedikit lebih dalam pematching kita, kita dapat menambahkan kondisi pengawal menggunakan if
:
def kategorikan_umur(age):
match age:
case n if n < 0:
print("Peringatan wisatawan waktu! Umur negatif terdeteksi.")
case n if n < 13:
print("Kamu adalah anak. Nikmati masa mudimu!")
case n if n < 20:
print("Selamat datang di masa remaja!")
case n if n < 65:
print("Hidup dewasa, mari kita mulai!")
case _:
print("Kebijaksanaan datang dengan umur. Kamu penuh dengan itu!")
kategorikan_umur(8)
kategorikan_umur(15)
kategorikan_umur(30)
kategorikan_umur(70)
Di sini, kita menggunakan kondisi if
untuk memperhalus kasus kita. Ini seperti memberikan pernyataan match Anda kaca pembesar!
Aplikasi Praktis
Sekarang bahwa kita telah membahas dasar-dasar, mari lihat contoh yang lebih kompleks yang menggabungkan berbagai aspek dari pernyataan match-case:
def proses_perintah(command):
match command.split():
case ["quit"]:
print("Keluar dari program. Selamat tinggal!")
return False
case ["hello" | "hi" | "hey", name]:
print(f"Halo, {name}! Senang bertemu dengan kamu.")
case ["add", *numbers] if all(n.isdigit() for n in numbers):
result = sum(int(n) for n in numbers)
print(f"Hasil penjumlahan adalah: {result}")
case ["multiply", *numbers] if all(n.isdigit() for n in numbers):
result = 1
for n in numbers:
result *= int(n)
print(f"Hasil perkalian adalah: {result}")
case _:
print("Saya tidak mengerti perintah itu.")
return True
while True:
user_input = input("Masukkan perintah: ")
if not proses_perintah(user_input):
break
Contoh ini menunjukkan sebuah pengolah perintah yang dapat menangani berbagai jenis input:
- Dapat keluar dari program
- Dapat menyapa pengguna
- Dapat menambahkan atau mengalikan angka
- Dapat menangani perintah yang tidak dikenal dengan baik
Pernyataan match-case menyinari dalam skenario seperti ini, di mana kita perlu menangani beberapa jenis input dalam cara yang jelas dan ringkas.
Kesimpulan
Pernyataan match-case adalah alat yang kuat dalam toolkit Python Anda. Ini memungkinkan kode yang lebih dapat dibaca dan dipelihara saat menangani beberapa kondisi. Ingat, seperti setiap alat, itu tentang menggunakan itu dalam situasi yang tepat. Jangan paksa itu di tempat yang simple if-else akan cukup, tetapi ikuti itu saat Anda perlu menangani skenario pematching pola yang kompleks.
Sebagai Anda terus menjalankan perjalanan Python Anda, Anda akan menemukan lebih banyak situasi di mana pernyataan match-case dapat menyederhanakan kode Anda dan membuatnya lebih ekspresif. Happy coding, dan semoga pertandingan Anda selalu menemukan kasus yang sempurna!
Tabel Referensi Cepat
Fitur | Contoh |
---|---|
Match-Case Dasar | match value: case pattern: ... |
Kasus Default | case _: ... |
Kasus Gabungan | case pattern1 | pattern2: ... |
Pematching Daftar | case [x, y]: ... |
Kondisi Pengawal | case pattern if condition: ... |
Ingat, praktek membuat perfect. Jadi, jangan sungkan, eksperimen dengan pola ini, dan lihat kemampuan Python Anda ketinggian!
Credits: Image by storyset