Tidak kira bahasa pengaturcaraan yang kita gunakan, kita semua menulis pernyataan "if-else", tetapi bagaimana pula dengan "for-else"?
Untuk kebanyakan bahasa, seperti C, C++ dan Java, menggunakan "else" selepas gelung adalah salah sama sekali. Walau bagaimanapun, Python, sebagai bahasa yang elegan, mempunyai ciri "pelik tetapi berguna" ini. Jika digunakan dengan betul, kod kami akan menjadi lebih bersih.
Artikel ini akan memperkenalkan fungsi "for-else" dalam Python dan menerangkan cara menggunakannya dengan betul melalui contoh mudah.
Apabila anda mula-mula menemui ciri "for-else", ia akan kelihatan pelik dan Sukar untuk difahami (apabila anda mula-mula mula menggunakan fungsi ini, mudah untuk tersalah anggap bahawa yang lain adalah salah inden). Tetapi sebenarnya, penggunaannya sangat mudah. Satu ayat sudah memadai: blok "lain" dalam kod anda hanya dilaksanakan apabila tiada patah dalam gelung.
Kedengaran terlalu mudah untuk menjadi kenyataan? Mari kita lihat dengan contoh:
leaders = ["Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Not found Yang!
Seperti yang ditunjukkan di atas: Seperti yang ditunjukkan di atas, senarai pemimpin tidak mengandungi "Yang", jadi tiada patah dalam gelung for kami. Jadi blok "lain" melaksanakan dan mencetak maklumat.
Bagaimana jika senarai pemimpin mengandungi "Yang"?
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": print("Yang is a leader!") break else: print("Not found Yang!") # Yang is a leader!
Seperti yang ditunjukkan di atas, memandangkan senarai pemimpin mengandungi "Yang", gelung for terganggu dan kandungan dalam blok "lain" tidak dilaksanakan.
Ringkasnya, ciri for-else itu sendiri tidak sukar untuk difahami, tetapi menggunakannya dengan betul dan mahir tidak. Di bawah ini kami memperkenalkan tiga senario di mana ciri untuk-lain adalah sesuai.
Kita tidak semestinya perlu menggunakan ciri for-else dalam program Python. Secara jujur, kami boleh melakukan perkara yang sama tanpanya, tetapi menggunakannya menjadikan kod kami lebih elegan.
Lelaran melalui senarai untuk mencari elemen tertentu ialah senario asas untuk menggunakan gelung. Biasanya apabila kita menemui elemen sasaran, tidak masuk akal untuk meneruskan lelaran dan kita perlu keluar dari gelung. Persoalannya ialah: bagaimana kita tahu jika unsur itu dijumpai?
Penyelesaian tradisional adalah untuk mentakrifkan pembolehubah "tanda" dan menetapkannya kepada Benar apabila kami menemui item tertentu.
leaders = ["Yang", "Elon", "Tim", "Warren"] have_yang = False for i in leaders: if i == "Yang": have_yang = True # Do something break if have_yang == False: # no yang ...# Do others
Seperti yang ditunjukkan dalam contoh di atas, pembolehubah have_yang ialah bendera. Selepas gelung for selesai, jika nilainya Salah, kita tahu bahawa "Yang" tiada dalam senarai dan boleh melakukan beberapa operasi lain.
Kaedah ini cukup baik, tetapi jika anda ingin memanfaatkan ciri "elegan" Python, menggunakan for-else ialah pilihan lain:
leaders = ["Yang", "Elon", "Tim", "Warren"] for i in leaders: if i == "Yang": have_yang = True # Do something break else:# no yang ...# Do others
This The tulisan nampak lebih kemas kan?
For-else juga boleh membantu apabila terdapat gelung bersarang dalam kod.
for i in range(5): for j in range(5): if j == 2 and i == 0: break if not (j == 2 and i == 0): continue break
Seperti yang ditunjukkan di atas, memecahkan gelung bersarang agak sukar kerana kita perlu tahu sama ada gelung dalam telah pecah.
Kod di atas menunjukkan penyelesaian yang kekok untuk menentukan sama ada gelung dalam telah terganggu. Ia sememangnya berfungsi dengan baik, tetapi kita boleh menjadikannya lebih kemas dengan menggunakan for-else:
# use the for-else syntax for i in range(5): for j in range(5): if j == 2 and i == 0: break else:# only execute when it's no break in the inner loop continue break
nums = [1, 3, 0, 5] for denominator in nums: try: 20/denominator except ZeroDivisionError: break else:# no found ZeroDivisionError ...# Do others
Seperti yang ditunjukkan di atas, Jika ZeroDivisionError tidak berlaku dalam gelung for, kita boleh melakukan operasi seterusnya yang sepadan dalam blok "lain".
Ciri for-lain dalam Python mungkin kelihatan agak pelik pada mulanya, tetapi penggunaannya tidak sukar difahami dan boleh digunakan dalam senario tertentu. kegunaannya. Lagipun, kita hanya perlu ingat satu peraturan: blok "lain" hanya dilaksanakan apabila tiada patah dalam gelung.
Atas ialah kandungan terperinci For-else: Ciri pelik tetapi berguna dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!