Menyingkap Kegigihan Pembolehubah Lelaran dalam Python
Dalam bidang pengaturcaraan, keberkesanan gelung adalah yang terpenting. Apabila bekerja dengan Python untuk gelung, seseorang mungkin menghadapi tingkah laku yang membingungkan bagi pembolehubah lelaran yang kekal tidak berubah walaupun terdapat pengubahsuaian. Untuk merungkai enigma ini, mari kita periksa kod berikut:
for i in range(0, 10): if i == 5: i += 3 print(i)
Hasil yang dimaksudkan ialah untuk mencetak jujukan di mana elemen yang sepadan dengan i=5 diketepikan dan digantikan dengan nilai yang ditambah. Walau bagaimanapun, output sebenar menghasilkan nilai yang tidak dijangka:
0 1 2 3 4 8 6 7 8 9
Memahami sisihan ini memerlukan mendalami mekanik Python untuk gelung. Tidak seperti rakan sejawatannya C, Python untuk gelung tidak mencipta skop yang ditetapkan untuk pembolehubah lelaran. Ini menunjukkan bahawa mengubah suai nilai i dalam gelung tidak menjejaskan jujukan yang dijana oleh julat(0, 10).
Untuk membetulkan isu ini dan mencapai output yang diingini, gelung sementara boleh digunakan. Gelung while memberikan kawalan yang lebih besar ke atas lelaran, membolehkan kedua-dua kenaikan tersuai dan pengubahsuaian berubah-ubah sambil mengekalkan integriti gelung. Berikut ialah coretan kod yang diubah suai yang membetulkan masalah:
i = 0 while i < 10: # Perform desired actions and modify `i` as needed if i == 5: i += 3 # Increment `i` after modifications i += 1
Kesimpulannya, walaupun Python's for loop menawarkan kemudahan, adalah penting untuk memahami kerja dalamannya untuk mengelakkan tingkah laku yang tidak dijangka. Dengan memanfaatkan fleksibiliti gelung while, pengaturcara boleh mencapai kawalan yang lebih besar ke atas lelaran dan manipulasi pembolehubah dalam Python.
Atas ialah kandungan terperinci Mengapakah Pengubahsuaian Pembolehubah Lelaran For Loop dalam Python Tidak Sentiasa Mengubah Gelagat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!