herkese merhaba iç içe döngüler nasıl çalışıyor anlamaya çalışdım ama baya bir kafa karıklıgına sebebiyet verdi şöyle bir örnek verirsem
Bu kod nasıl çalışıyor mümkün olduğunca açıklayıcı anlatırsanız memnun olurum. |
iç içe döngüler
-
-
Kodu soyle tamamladim, ekrana ciktiyi bastirabilmek icin.
https://replit.com/@mosahin/CommonNewPriorities
result=[] for a in range(3): for b in range(3): result.append((a,b)) print(result)Kod
Yığını:Satir satir anlatmak gerekirse:
- Bos bir liste olusturuyoruz.
- Bir dongu tanimliyoruz. Bu dongu 0 dan baslayip 3 e kadar (3 dahil degil) a degiskenine tamsayi degerler atayacak.
- Yine bir dongu tanimliyoruz. Bu dongu de 0 dan baslayip 3 e kadar (3 dahil degil) b degiskenine tamsayi degerler atayacak.
- result adli listeye eleman ekliyoruz. Her dongude bu deger degisecek.
- listeyi ekrana bastiriyoruz.
Ic ice dongude mantik su. En distaki donguden en icteki donguye dogru gidersin. Ve yine ayni sekilde en icteki donguden en distaki donguye dogru cikarsin. En icteki dongunun isi bitmeden ustteki donguye cikilmaz. Bu cikis islemi ya dongude donulecek deger kalmamistir (3. satir icin konusursak b nin 3 oldugu anda artik dongu calismaz ve bir ust donguye geri donersin. En son b icin yazdirdigin deger 2 olarak kalir) Veya ozel islemlerle (break, goto gibi) donguden cikmak mumkundur. Bu yuzden ilk basilan degerler sirasiyla (0, 0), (0, 1), (0, 2) olacaktir. (0,2) degeri basildiktan sonra icteki dongu biter, ve ust donguye geri donulur. Ustteki donguye donuldugunde artik a nin degeri 0 degil 1 olmustur. Fakat tekrar icteki donguye girildiginde b nin degeri yine 0 dan baslayacaktir. Bu yuzden (0, 0), (0, 1), (0, 2) den sonra ekrana basilan deger (1,0) olur.
Umarim daha net olmustur simdi.
< Bu mesaj bu kişi tarafından değiştirildi mosahin -- 29 Ekim 2020; 20:8:55 >
-
öncelikle cevabın için teşekkürler benim anladığım kadarıyla 2. döngü(yani 3. satır) b degişkeni 2 olmadan üsteki döngü çalışmaz bu yüzden 2. döngü çalışmayı durdurana kadar ilk döngü sürekli 0 değerini basacak taki 2. döngü b degişkeni 2 basıp döngü durunca ilk döngü bir değerini basıp 2. döngü ise aynı şekilde devam edecek sanırım doğru anladım
< Bu mesaj bu kişi tarafından değiştirildi layk5t -- 30 Ekim 2020; 22:13:2 > -
Kodlarının bazı yerlerine print ekle. Değerleri o şekilde inceleyerek daha anlaşılır olmasını sağlarsın
< Bu ileti DH mobil uygulamasından atıldı > -
quote:
Orijinalden alıntı: layk5töncelikle cevabın için teşekkürler benim anladığım kadarıyla 2. döngü(yani 3. satır) b degişkeni 2 olmadan üsteki döngü çalışmaz bu yüzden 2. döngü çalışmayı durdurana kadar ilk döngü sürekli 0 değerini basacak taki 2. döngü b degişkeni 2 basıp döngü durunca ilk döngü bir değerini basıp 2. döngü ise aynı şekilde devam edecek sanırım doğru anladım
Evet tamamen soyledigin sekilde. Kodu ayiklarsan(debug edersen) degiskenlere hangi degerler atandigini ve dongunun nasil dondugunu daha rahat takip edebilirsin.
-
yardımlarınız için teşekkürler yanlız "debug" bu terimi henüz bilmiyorum nasıl çalıştırabilirim
-
o kısmını atmayı unutmuşum
-
Python PDB diye arastirabilirsin. Sordugun sorularin detaylari, videolari genel olarak anlatiliyor zaten
-
peki teşekkürler
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X