2010-05-15 47 views
5

Python ile yeni başlayan ve birkaç program denemeye başladım. Python'da (tam olarak değil) aşağıdaki WHILE döngü yapısı gibi bir şey var.Python'da iç içe WHILE döngüleri

IDLE 2.6.4  
>>> a=0 
>>> b=0 
>>> while a < 4: 
     a=a+1 
     while b < 4: 
     b=b+1 
     print a, b 


1 1 
1 2 
1 3 
1 4 

Ben 1,2,3 ve 4. döngü dış döngü bekliyorum Ve ben bu

>>> for a in range(1,5): 
     for b in range(1,5): 
      print a,b 


1 1 
1 2 
.. .. 
.. .. // Other lines omitted for brevity 
4 4 

gibi döngü İÇİN ile bunu Ama biliyorum, WHILE'den nesi var loop? Sanırım belli olan bir şeyi özlüyorum ama yapamadım.

Cevap: düzeltilmiş WHILE döngü ..

>>> a=0 
>>> b=0 
>>> while a < 4: 
    a=a+1 
    b=0 
    while b<4: 
     b=b+1 
     print a,b 


1 1 
.. .. 
.. .. // Other lines omitted for brevity 
4 4 

P.S.: dışarı Aradı SO, few questions ama hiçbiri bu kadar yakın buldum. Bunun ev ödevi olarak mı sınıflandırılacağını bilmiyorum, gerçek program farklıydı, sorun ne yapmamdır.

cevap

7

b 0'ı dış döngünüzün içinde 0'a sıfırlamazsınız, bu nedenle b dış döngünün ilk ayağından sonra sahip olduğu değerde kalır - 4 - ve iç döngü hiçbir zaman tekrar çalışmaz.

for döngüler düzgün çalışıyor çünkü döngü kontrol değişkenlerini doğru şekilde sıfırlıyorlar; Daha az yapılandırılmış while döngüleri ile, bu tür sıfırlama ellerinizde ve bunu yapmıyorsunuz.