Python - penyataan Match-Case: Panduan untuk Pemula
Hai di sana, pemrogram Python yang beraspirasi! Hari ini, kita akan melihat salah satu fitur baru Python: penyataan match-case. Pikirkan tentang itu sebagai rakit penyelamat untuk menangani berbagai senario di atas kode anda. Mari kita melakukan perjalanan yang menarik ini bersama-sama!
Apakah Penyataan Match-Case?
Penyataan match-case, yang diperkenalkan di Python 3.10, adalah seperti versi superhero penyataan if-elif-else. Ia membolehkan kita untuk membandingkan nilai dengan beberapa corak dan menjalankan kode berdasarkan corak yang pertama kali sepadan.
Sintaksis Asas
match subjek:
case corak1:
# Kode untuk corak1
case corak2:
# Kode untuk corak2
case _:
# Kasus lalai
Mari kita kongsi ini dengan contoh yang menarik:
def ucapsai_superhero(hero):
match hero:
case "Spider-Man":
print("Dengan kekuatan besar datang tanggungjawab besar!")
case "Iron Man":
print("Saya adalah Iron Man.")
case "Black Widow":
print("Saya selalu mengambil kembali selepas kamu laki-laki.")
case _:
print("Saya tidak tahu superhero itu, tetapi mereka mungkin hebat!")
ucapsai_superhero("Spider-Man")
ucapsai_superhero("Wonder Woman")
Dalam contoh ini, kita membuat padanan variabel hero
dengan nama superhero yang berbeza. Kasus _
bertindak sebagai kasus lalai, menangkap mana-mana superhero yang tidak dikenali.
Kasus gabungan di atas Penyataan Match
Buat masa yang berbeza, kita mahu menguruskan beberapa corak dengan kode yang sama. Python telah membantu kita!
def klasifikasikan_nombor(num):
match num:
case 0:
print("Nombor kosong adalah nombor yang unik!")
case 1 | 2 | 3:
print("Ini adalah nombor positif kecil.")
case -1 | -2 | -3:
print("Ini adalah nombor negatif kecil.")
case _:
print("Ini adalah nombor yang lebih besar.")
klasifikasikan_nombor(2)
klasifikasikan_nombor(-2)
klasifikasikan_nombor(100)
Di sini, kita menggunakan operator |
untuk menggabungkan kasus. Ia seperti mengatakan "atau" dalam bahasa Inggeris biasa.
Senarai sebagai Argumen di atas Penyataan Match Case
Penyataan match-case bukan hanya untuk nilai yang biasa. Ia boleh menguruskan struktur kompleks seperti senarai juga!
def analisis_koordinat(point):
match point:
case [0, 0]:
print("Origin")
case [0, y]:
print(f"Y-ayat di atas y = {y}")
case [x, 0]:
print(f"X-ayat di atas x = {x}")
case [x, y]:
print(f"Titik di atas ({x}, {y})")
case _:
print("Bukan titik 2D yang sah")
analisis_koordinat([0, 0])
analisis_koordinat([5, 0])
analisis_koordinat([3, 4])
analisis_koordinat([1, 2, 3])
Contoh ini menunjukkan bagaimana kita boleh membuat padanan dengan corak senarai. Ia seperti memberikan kod anda penglihatan X-ray untuk melihat di atas senarai!
Menggunakan "if" di atas "Case" Clause
Buat masa yang berbeza ketika kita perlu sedikit lebih ketepatan dalam pilihan kita, kita boleh menambahkan syarat penyeguard menggunakan if
:
def kategorikan_umur(age):
match age:
case n if n < 0:
print("Amaran pelancong masa! Umur negatif dikesan.")
case n if n < 13:
print("Anda adalah anak. Nikmati masa remaja anda!")
case n if n < 20:
print("Selamat datang ke tahun remaja!")
case n if n < 65:
print("Hidup dewasa, mari kita datang!")
case _:
print("Kebijaksanaan datang dengan umur. Anda penuh dengannya!")
kategorikan_umur(8)
kategorikan_umur(15)
kategorikan_umur(30)
kategorikan_umur(70)
Di sini, kita menggunakan syarat if
untuk lebih memperhalus kasus kita. Ia seperti memberikan penyataan pilihan anda rakit penyelamat!
Aplikasi Praktikal
Sekarang kita telah melihat asas, mari kita lihat contoh yang lebih kompleks yang menggabungkan aspek berbagai penyataan match-case:
def proses_arahan(command):
match command.split():
case ["keluar"]:
print("Keluar dari program. Selamat tinggal!")
return False
case ["hello" | "hi" | "hey", nama]:
print(f"Helo, {nama}! Senang bertemu dengan anda.")
case ["tambah", *nombor] if all(n.isdigit() for n in nombor):
hasil = sum(int(n) for n in nombor)
print(f"Jumlah adalah: {hasil}")
case ["kali", *nombor] if all(n.isdigit() for n in nombor):
hasil = 1
for n in nombor:
hasil *= int(n)
print(f"Hasil adalah: {hasil}")
case _:
print("Saya tidak mengerti arahan itu.")
return True
while True:
input_pengguna = input("Masukkan arahan: ")
if not proses_arahan(input_pengguna):
break
Contoh ini menunjukkan pemproses arahan yang boleh menguruskan jenis input yang berbeza:
- Ia boleh keluar dari program
- Ia boleh menyapa pengguna
- Ia boleh menambah atau mengkalikan nombor
- Ia dengan mulia menguruskan arahan yang tidak diketahui
Penyataan match-case menyinari di atas senario seperti ini, di mana kita perlu menguruskan jenis input yang berbeza dalam cara yang jelas dan ringkas.
Kesimpulan
Penyataan match-case adalah alat yang berkuasa di atas rakit peralatan Python anda. Ia membolehkan untuk lebih membaca dan mudah untuk dipelihara apabila menguruskan beberapa syarat. Ingat, seperti mana-mana alat, ia tentang menggunakannya dalam situasi yang betul. Jangan paksa ia di tempat yang penyataan if-else yang biasa akan melakukan, tetapi pelihara ia apabila anda perlu menguruskan senario pilihan corak yang kompleks.
Apabila anda teruskan perjalanan Python anda, anda akan menemui lebih dan lebih situasi di mana penyataan match-case boleh menyederhanakan kod anda dan menjadikannya lebih ekspressif. Happy coding, dan may your matches always find their perfect case!
Ringkasan Tabel Pantas
Fitur | Contoh |
---|---|
Match-Case Asas | match nilai: case corak: ... |
Kasus Lalai | case _: ... |
Kasus Gabungan | case corak1 | corak2: ... |
Padanan Senarai | case [x, y]: ... |
Syarat Penyeguard | case corak if syarat: ... |
Ingat, latihan membuat betul. Jadi, jangan ketinggalan, eksperimen dengan corak ini, dan lihat keterampilan Python anda ketinggi!
Credits: Image by storyset