Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa Tidak Mengubah Suai Pembolehubah Lelaran For Loop Berfungsi seperti yang Dijangkakan dalam Python dan Bagaimana Ia Boleh Dibetulkan?

Mengapa Tidak Mengubah Suai Pembolehubah Lelaran For Loop Berfungsi seperti yang Dijangkakan dalam Python dan Bagaimana Ia Boleh Dibetulkan?

Patricia Arquette
Patricia Arquetteasal
2024-11-24 01:15:10742semak imbas

Why Doesn't Modifying a For Loop's Iteration Variable Work as Expected in Python, and How Can It Be Fixed?

Memikirkan Semula Pengubahsuaian Pembolehubah Lelaran dalam Python

Apabila melelaran melalui jujukan menggunakan Python untuk gelung, seseorang mungkin menghadapi tingkah laku yang tidak dijangka jika cuba mengubah suai pembolehubah lelaran. Pertimbangkan kod Python berikut:

for i in range(0, 10):
    if i == 5:
        i += 3
    print(i)

Output yang dijangkakan:

0
1
2
3
4
8
9

Walau bagaimanapun, output sebenar berbeza:

0
1
2
3
4
8
6
7
8
9

Mengapa nilai ' saya tidak berubah dalam gelung, dan apakah yang boleh dilakukan untuk membetulkannya?

Sebabnya terletak pada cara untuk gelung beroperasi dalam Python. Setiap lelaran gelung melibatkan penciptaan skop baharu dan memberikan nilai baharu kepada pembolehubah lelaran. Mengubah suai pembolehubah lelaran dalam gelung hanya mempengaruhi nilainya dalam lelaran semasa, meninggalkan lelaran berikutnya tidak terjejas.

Untuk mencapai gelagat yang dimaksudkan, seseorang boleh menggunakan gelung sementara. Berikut ialah kod yang diperbetulkan:

i = 0
while i < 10:
    # Perform operations and modify 'i' as needed
    if i == 5:
        i += 3

    print(i)

    # Increment 'i' manually within the loop
    i += 1

Pendekatan ini mewujudkan satu skop dan membenarkan pengubahsuaian kepada 'i' berterusan sepanjang pelaksanaan gelung.

Atas ialah kandungan terperinci Mengapa Tidak Mengubah Suai Pembolehubah Lelaran For Loop Berfungsi seperti yang Dijangkakan dalam Python dan Bagaimana Ia Boleh Dibetulkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn