Bagaimana Mengimplementasikan Fungsi Switch Case dengan Python? [2022]
Diterbitkan: 2021-01-08Daftar isi
pengantar
Pernahkah Anda bertanya-tanya apakah ada alternatif untuk menulis pernyataan If-else yang rumit itu dengan Python? Jika Anda tidak ingin beberapa pernyataan 'Jika' mengacaukan kode Anda, Anda harus mempertimbangkan untuk menggunakan pernyataan Switch case yang menyediakan cara yang lebih bersih dan lebih cepat untuk menerapkan aliran kontrol dalam kode Anda. Tidak seperti C++, Java, Ruby, dan bahasa pemrograman lainnya, Python tidak menyediakan pernyataan switch case, tetapi menawarkan beberapa solusi untuk membuat pernyataan ini berfungsi.
Misalnya, Python memungkinkan Anda membuat cuplikan kode yang berfungsi seperti pernyataan kasus Switch Python dalam bahasa pemrograman lain. Anda akan mengetahui lebih banyak tentang cara menerapkan pernyataan switch-case nanti di blog ini. Jika Anda tertarik untuk mempelajari lebih lanjut tentang python, lihat kursus ilmu data kami.
Apa itu Pernyataan Switch dengan Python?
Secara umum, switch adalah mekanisme kontrol yang menguji nilai yang disimpan dalam variabel dan mengeksekusi pernyataan kasus yang sesuai. Pernyataan switch case memperkenalkan aliran kontrol dalam program Anda dan memastikan bahwa kode Anda tidak berantakan oleh beberapa pernyataan 'jika'.
Oleh karena itu, kode Anda terlihat teliti dan transparan bagi pemirsa. Ini adalah fitur pemrograman luar biasa yang digunakan programmer untuk mengimplementasikan aliran kontrol dalam kode mereka. Pernyataan switch case bekerja dengan membandingkan nilai yang ditentukan dalam pernyataan case dengan variabel dalam kode Anda.
Bagaimana Menerapkan Pernyataan Python Switch Case
Jika Anda selalu membuat kode dalam bahasa seperti C++ atau Java, Anda mungkin merasa aneh bahwa Python tidak memiliki pernyataan switch case. Sebaliknya, Python menawarkan banyak solusi seperti kamus, kelas Python, atau fungsi lambda Python untuk mengimplementasikan pernyataan switch-case.
Jika Anda ingin mengetahui alasan pasti di balik tidak adanya pernyataan switch case di python, maka Anda harus memeriksa PEP 3103 .
Sebelum menyelam jauh ke dalam alternatif ini, mari kita lihat dulu bagaimana fungsi switch case biasanya bekerja dalam bahasa pemrograman lain.
Dalam contoh di bawah ini, kami telah menggunakan bahasa pemrograman C
beralih (bulanTahun) { kasus 1: printf(“%s”, Januari); merusak; kasus 2: printf(“%s”, Februari); merusak; kasus 3: printf(“%s”, Maret); merusak; kasus 4: printf(“%s”, April); merusak; kasus 5: printf(“%s”, Mei); merusak; kasus 6: printf(“%s”, Juni); merusak; kasus 7: printf(“%s”, Juli); merusak; kasus 8: printf(“%s”, Agustus); merusak; kasus 9: printf(“%s”, September); merusak; kasus 10: printf(“%s”, Oktober); merusak; kasus 11: printf(“%s”, Nopember); merusak; kasus 12: printf(“%s”, Desember); merusak; bawaan: printf("Bulan Salah"); merusak; } |
Sekarang, mari kita melangkah lebih jauh ke alternatif fungsi switch case Python dan memahami bagaimana alternatif ini bekerja dengan bantuan contoh.
Baca: Peluang Karir dengan Python: Semua yang Perlu Anda Ketahui
Menggunakan Pemetaan Kamus
Jika Anda terbiasa dengan bahasa pemrograman lain, maka Anda harus mengetahui bahwa kamus menggunakan pasangan nilai kunci untuk menyimpan sekelompok objek dalam memori. Saat Anda menggunakan kamus sebagai alternatif untuk pernyataan kasus sakelar, kunci dari pasangan nilai kunci berfungsi sebagai kasus.
Contoh berikut menunjukkan implementasi pernyataan switch case menggunakan kamus. Di sini, kami mendefinisikan fungsi month() untuk mencetak bulan, bulan dalam setahun.
Pertama, mulailah dengan membuat pernyataan kasus dan tulis fungsi individual untuk setiap kasus. Pastikan Anda menulis fungsi yang menangani kasus default.
pasti januari(): kembali "Januari" pasti februari(): kembali "Februari" def Maret(): kembali "berbaris" def april(): kembali "April" def mungkin(): kembali "mungkin" pasti juni(): kembali "Juni" pasti juli(): kembali "Juli" pasti agustus(): kembali "Agustus" pasti september(): kembali "September" pasti oktober(): kembali "Oktober" pasti november(): kembali "November" pasti desember(): kembali "Desember" def default(): kembali "Bulan salah" |
Selanjutnya, buat objek kamus dengan Python dan simpan semua fungsi yang telah Anda definisikan di program Anda.
pengalih = { 0: 'januari', 1: 'Februari', 2: 'berbaris', 3: 'april', 4: 'mungkin', 5: 'Juni', 6: 'juli', 7: 'agustus', 8: 'september', 9: 'Oktober', 10: 'November', 11: 'desember' } |
Terakhir, buat fungsi sakelar di program Anda yang harus menerima bilangan bulat sebagai input, melakukan pencarian kamus, dan memanggil fungsi yang sesuai.
def bulan(bulanTahun): kembalikan switcher.get(monthOfYear, default)() |
Kode lengkapnya akan terlihat seperti ini
pasti januari(): kembali "Januari" pasti februari(): kembali "Februari" def Maret(): kembali "berbaris" def april(): kembali "April" def mungkin(): kembali "mungkin" pasti juni(): kembali "Juni" pasti juli(): kembali "Juli" ![]() pasti agustus(): kembali "Agustus" pasti september(): kembali "September" pasti oktober(): kembali "Oktober" pasti november(): kembali "November" pasti desember(): kembali "Desember" def default(): kembali "Bulan salah"
pengalih = { 0: 'januari', 1: 'Februari', 2: 'berbaris', 3: 'april', 4: 'mungkin', 5: 'Juni', 6: 'juli', 7: 'agustus', 8: 'september', 9: 'Oktober', 10: 'November', 11: 'desember' } def bulan(bulanTahun): kembalikan switcher.get(monthOfYear, default)() cetak(sakelar(1)) cetak(sakelar(0)) |
Kode di atas mencetak output berikut:
Februari Januari |
Baca Juga: 42 Ide & Topik Proyek Python yang Menyenangkan untuk Pemula
Menggunakan Kelas Python
Anda juga dapat menggunakan kelas Python sebagai alternatif untuk mengimplementasikan pernyataan switch-case. Kelas adalah konstruktor objek yang memiliki properti dan metode. Mari kita memahami ini lebih lanjut dengan bantuan contoh di atas yang sama. Di sini, kita akan mendefinisikan metode switch di dalam kelas switch Python.
Contoh
Pertama, kita akan mendefinisikan metode sakelar di dalam kelas sakelar Python yang menggunakan argumen satu bulan dalam setahun, mengubah hasilnya menjadi string.
kelas PythonSwitch: def bulan(sendiri, bulanTahun): default = “Bulan salah” kembali getattr(self, 'case_' + str(monthOf Year), lambda: default)() |
Catatan: Dalam contoh di atas, kita telah menggunakan dua hal: kata kunci lambda dan metode getattr().
- Kami menggunakan kata kunci lambda untuk mendefinisikan fungsi anonim di Python. Kata kunci Lambda memanggil fungsi default saat pengguna memasukkan input yang tidak valid.
- getattr() metode digunakan untuk memanggil fungsi dengan Python.
Sekarang, buat fungsi individual untuk setiap kasus.
def januari (sendiri): kembali "Januari"
def februari (sendiri): kembali "Februari" def march (diri): kembali "Maret"
def april(sendiri): kembali "April"
def mungkin (diri): kembali "Mei"
def juni (diri): kembali "Juni" def juli (sendiri): kembali "Juli"
def agustus (sendiri): kembali "Agustus"
def september (sendiri): kembali "September" def oktober (sendiri): kembali "Oktober"
def november (sendiri): kembali "November"
def desember (sendiri): kembali "Desember" |
Kode lengkapnya akan terlihat seperti ini
kelas PythonSwitch: def bulan(sendiri, bulanTahun): default = “Bulan salah” kembali getattr(self, 'case_' + str(monthOf Year), lambda: default)() def januari (sendiri): kembali "Januari"
def februari (sendiri): kembali "Februari"
def march (diri): kembali "Maret"
def april(sendiri): kembali "April"
def mungkin (diri): kembali "Mei"
def juni (diri): kembali "Juni" def juli (sendiri): kembali "Juli"
def agustus (sendiri): kembali "Agustus"
def september (sendiri): kembali "September" def oktober (sendiri): kembali "Oktober"
def november (sendiri): kembali "November"
def desember (sendiri): kembali "Desember" my_switch = PythonSwitch() cetak (my_switch.month(1)) cetak (my_switch.month(10)) |
Kode di atas mencetak output berikut:
Januari Oktober |
Lihat: Gaji Pengembang Python di India
Kesimpulan
Di blog ini, Anda telah mempelajari tentang pernyataan switch-case, apa saja alternatif dari pernyataan switch-case, dan bagaimana menggunakannya. Seperti yang dijelaskan di atas, Python tidak memiliki fungsi switch case bawaan, tetapi Anda selalu dapat menggunakan alternatif ini untuk membuat kode Anda terlihat rapi dan bersih serta mendapatkan kinerja yang lebih baik.
Jika Anda penasaran untuk belajar tentang ilmu data, lihat Program PG Eksekutif IIIT-B & upGrad dalam Ilmu Data yang dibuat untuk para profesional yang bekerja dan menawarkan 10+ studi kasus & proyek, lokakarya praktis, bimbingan dengan pakar industri, 1 -on-1 dengan mentor industri, 400+ jam pembelajaran dan bantuan pekerjaan dengan perusahaan-perusahaan top.
Bedakan antara kamus biasa dan kamus Python.
Kamus Python atau "Dict" adalah struktur data bawaan Python yang digunakan untuk menyimpan koleksi elemen yang tidak berurutan. Tidak seperti struktur data Python lainnya yang menyimpan nilai tunggal, struktur data kamus menyimpan pasangan nilai kunci di mana setiap kunci adalah unik. Itu tidak mengingat urutan penyisipan pasangan nilai kunci dan beralih melalui kunci. Di sisi lain, Kamus Berurutan atau OrderedDict melacak urutan penyisipan pasangan nilai kunci. Itu juga menghabiskan lebih banyak memori daripada kamus biasa di Python karena implementasi daftar tertaut ganda. Jika Anda menghapus dan memasukkan kembali kunci yang sama, kunci itu akan disisipkan pada posisi aslinya saat OrderedDict mengingat urutan penyisipan.
Operasi apa dari Nametuple yang menjadikannya pilihan yang nyaman untuk digunakan untuk kasus sakelar?
Nametuple dalam Python melakukan berbagai operasi. Berikut ini adalah daftar beberapa operasi paling umum yang dilakukan oleh Namedtuple. Elemen-elemen dalam sebuah Namedtuple dapat diakses dengan indeksnya, tidak seperti kamus. Cara alternatif untuk mengakses elemen adalah dengan nama kuncinya. Fungsi make() mengembalikan sebuah bernamatuple. Fungsi _asadict() mengembalikan kamus terurut yang dibuat dari nilai yang dipetakan. Fungsi _replace() mengambil nama kunci sebagai argumennya dan mengubah nilai yang dipetakan padanya. Fungsi _fileds() mengembalikan semua nama kunci dari nametuple yang diberikan.
Kapan kita lebih memilih daftar untuk menyimpan data?
Daftar Python dianggap sebagai struktur data terbaik untuk menyimpan data dalam skenario berikut - Daftar dapat digunakan untuk menyimpan berbagai nilai dengan tipe data yang berbeda dan dapat diakses hanya dengan indeks masing-masing. Saat Anda perlu melakukan operasi matematika pada elemen, daftar dapat digunakan karena memungkinkan Anda untuk mengoperasikan elemen secara matematis secara langsung. Karena daftar dapat diubah ukurannya, daftar dapat digunakan untuk menyimpan data saat Anda tidak yakin tentang jumlah elemen yang akan disimpan. Elemen daftar mudah berubah dan juga dapat menyimpan elemen duplikat, tidak seperti set dan kamus.