Rumah  >  Artikel  >  pembangunan bahagian belakang  >  For-else: Ciri pelik tetapi berguna dalam Python

For-else: Ciri pelik tetapi berguna dalam Python

王林
王林ke hadapan
2023-04-13 20:43:011292semak imbas

For-else: Ciri pelik tetapi berguna dalam Python

Pengenalan

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.

Pengetahuan asas tentang ciri "For-Else"

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.

3 senario untuk menggunakan fungsi For-Else

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.

1 Lelaran dan cari elemen yang tidak ditandakan

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?

2. Digunakan untuk keluar daripada gelung bersarang

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

3. Membantu mengendalikan pengecualian

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".

Ringkasan

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam