Ganti beberapa if-elif dengan python

Jika pernyataan adalah alat yang hebat, tetapi ketika jumlah cabang bertambah, mereka dengan cepat menjadi berat. Pada artikel ini, kita akan mengeksplorasi dua alternatif pernyataan if

  • "cocok. case", Python 3 baru. 10 fitur bahasa
  • Kamus, sangat berguna ketika berhadapan dengan input pengguna

Skenario artikel ini. pernyataan if yang panjang

Bayangkan Anda memiliki pernyataan if seperti ini [asumsikan fungsi average telah ditentukan]

numbers = [1, 4, 16, 20]
action = input[f"What would you like to do with {numbers}?"]  # e.g. add

if action == "add":
    print[sum[numbers]]
elif action == "avg":
    print[average[numbers]]
elif action == "max":
    print[max[numbers]]
else:
    print["Action not recognized"]

Menggunakan pertandingan. case untuk menyederhanakan rantai pernyataan if

dalam "pertandingan. case", kita masih perlu memberi tahu Python apa opsi yang berbeda, dan apa yang harus dilakukan di setiap kasus

def average[seq]:
	return sum[seq] / len[seq]

numbers = [1, 4, 16, 20]
action = input[f"What would you like to do with {numbers}? "]

match action:
	case "add":
		print[sum[numbers]]
	case "avg":
		print[average[numbers]]
	case "max":
		print[max[numbers]]
	case _:
		print["Operation not recognized."]
_

Meskipun ini terlihat sedikit lebih baik, masih banyak duplikasi yang sama. Setiap cabang bersyarat memiliki fungsi print[]_ yang digandakan, dan ada banyak kata kunci

Secara keseluruhan, panjang blok kode adalah sama

Ditambah masalah terbesar dari semua tetap. bahwa saat Anda menambahkan lebih banyak opsi, persyaratan percabangan juga akan bertambah

Gunakan kamus untuk menyederhanakan pernyataan if yang panjang

Alih-alih rantai log if-elif atau rantai kasus pencocokan panjang, Anda dapat menyimpan opsi pengguna dalam kamus

options = {
    "add": sum,
    "avg": average,
    "max": max
}

Kemudian Anda dapat menanyakan kepada pengguna opsi mana [dari kamus] yang ingin mereka gunakan

options = {
    "add": sum,
    "avg": average,
    "max": max
}
numbers = [1, 4, 16, 20]

action = input[f"What would you like to do with {numbers}?"]  # e.g. add

Dengan ini, kita dapat mengambil fungsi dari kamus secara langsung

options = {
    "add": sum,
    "avg": average,
    "max": max
}
numbers = [1, 4, 16, 20]

action = input[f"What would you like to do with {numbers}?"]  # e.g. add

operation = options.get[action]
_

Karena kamus memetakan string ke fungsi, variabel operation sekarang akan berisi fungsi yang ingin kita jalankan

Yang tersisa hanyalah menjalankan

def average[seq]:
	return sum[seq] / len[seq]

numbers = [1, 4, 16, 20]
action = input[f"What would you like to do with {numbers}? "]

match action:
	case "add":
		print[sum[numbers]]
	case "avg":
		print[average[numbers]]
	case "max":
		print[max[numbers]]
	case _:
		print["Operation not recognized."]
_0 untuk mendapatkan hasil kita. Jika pengguna memasukkan
def average[seq]:
	return sum[seq] / len[seq]

numbers = [1, 4, 16, 20]
action = input[f"What would you like to do with {numbers}? "]

match action:
	case "add":
		print[sum[numbers]]
	case "avg":
		print[average[numbers]]
	case "max":
		print[max[numbers]]
	case _:
		print["Operation not recognized."]
1, maka operation akan menjadi fungsi
def average[seq]:
	return sum[seq] / len[seq]

numbers = [1, 4, 16, 20]
action = input[f"What would you like to do with {numbers}? "]

match action:
	case "add":
		print[sum[numbers]]
	case "avg":
		print[average[numbers]]
	case "max":
		print[max[numbers]]
	case _:
		print["Operation not recognized."]
3

Kita juga harus melakukan pengecekan kesalahan, untuk memastikan kita tidak mencoba menjalankan fungsi yang tidak ada jika pengguna memasukkan sesuatu yang bukan salah satu kunci kamus

options = {
    "add": sum,
    "avg": average,
    "max": max
}
numbers = [1, 4, 16, 20]

action = input[f"What would you like to do with {numbers}?"]  # e.g. add

operation = options.get[action]

if operation:
    operation[numbers]
else:
    print["Action not recognized"]
_

Anda masih memerlukan pernyataan if jika pengguna memilih sesuatu yang tidak memiliki kunci dalam kamus, tetapi ini adalah pernyataan if cabang tunggal yang tidak akan tumbuh seiring waktu

Manfaat lainnya adalah Anda dapat dengan mudah memberi tahu pengguna opsi mana yang tersedia untuk mereka dengan menggunakan tombol kamus

option_texts = '|'.join[options.keys[]
action = input[f"What would you like to do with {numbers}? [{option_texts}] "]
# Would show "What would you like to do with [1, 4, 16, 20]? [add|avg|max] "
_

Kesimpulan

Dalam posting ini kita telah melihat dua cara untuk menyederhanakan pernyataan if. dengan menggunakan "pertandingan. case" dan dengan menggunakan kamus

Jika Anda ingin mempelajari lebih lanjut tentang Python, pertimbangkan untuk mendaftar di Kursus Python Lengkap kami yang membawa Anda dari pemula hingga mahir [termasuk OOP, pengembangan web, pengembangan asinkron, dan banyak lagi. ]. Kami memiliki jaminan uang kembali 30 hari, jadi Anda benar-benar tidak akan rugi dengan mencobanya. Kami akan senang untuk memiliki Anda

Bisakah Anda menggunakan banyak Elif dengan Python?

Bisa ada beberapa blok 'elif', namun hanya ada blok 'lain' yang diperbolehkan . 2. Dari semua blok ini hanya satu block_of_code yang dieksekusi. Jika kondisinya benar maka kode di dalam 'jika' dijalankan, jika kondisinya salah maka kondisi selanjutnya [terkait dengan elif] dievaluasi dan seterusnya.

Bagaimana Anda menggunakan beberapa Elif?

Gunakan kondisi elif digunakan untuk menyertakan beberapa ekspresi kondisional setelah kondisi if atau antara kondisi if dan else . Blok elif dijalankan jika kondisi yang ditentukan bernilai True. Dalam contoh di atas, kondisi elif diterapkan setelah kondisi if.

Bisakah Anda menggunakan Elif lebih dari sekali?

Kami dapat menyertakan pernyataan elif sebanyak yang kami inginkan tanpa batasan ketat , mengabaikan kemungkinan batasan seperti perangkat keras. Kita dapat mengatakan bahwa pernyataan elif adalah versi penyelesaian dari Nested if-else. Dalam kasus lebih dari satu pernyataan, kita dapat menempatkan banyak kondisi elif antara else dan if.

Berapa banyak Elif yang dapat Anda masukkan ke dalam pernyataan IF ELSE?

Jawaban. Tidak, tidak ada batasan ketat berapa banyak pernyataan elif yang dapat Anda sertakan setelah pernyataan if. Anda dapat menambahkan sebanyak yang Anda butuhkan ke dalam program, tidak memperhitungkan memori atau batasan lain yang mungkin seperti perangkat keras.

Bài mới nhất

Chủ Đề