Şimdi Ara

iç içe döngüler

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
10
Cevap
0
Favori
192
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • 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


    Kod

    Yığını:
    for a in range(3):     for b in range(3):          result.append((a,b))

    Bu kod nasıl çalışıyor mümkün olduğunca açıklayıcı anlatırsanız memnun olurum.




  • Kodu soyle tamamladim, ekrana ciktiyi bastirabilmek icin.



    https://replit.com/@mosahin/CommonNewPriorities



    Kod

    Yığını:
    result=[] for a in range(3): for b in range(3): result.append((a,b)) print(result)


    Satir satir anlatmak gerekirse:


    1. Bos bir liste olusturuyoruz.
    2. Bir dongu tanimliyoruz. Bu dongu 0 dan baslayip 3 e kadar (3 dahil degil) a degiskenine tamsayi degerler atayacak.
    3. Yine bir dongu tanimliyoruz. Bu dongu de 0 dan baslayip 3 e kadar (3 dahil degil) b degiskenine tamsayi degerler atayacak.
    4. result adli listeye eleman ekliyoruz. Her dongude bu deger degisecek.
    5. 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

  • srenkenstein kullanıcısına yanıt

    o kısmını atmayı unutmuşum

  • layk5t kullanıcısına yanıt

    Python PDB diye arastirabilirsin. Sordugun sorularin detaylari, videolari genel olarak anlatiliyor zaten

  • srenkenstein kullanıcısına yanıt

    peki teşekkürler

  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.