Çözüldü While döngüsü

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

Ark_Us

Megapat
Katılım
7 Nisan 2017
Mesajlar
907
Makaleler
1
Çözümler
7
Herkese merhaba, bana verilen 5 tane uygulama sorusu var içinde bir soruyu yapabilmem için bu uygulamayı anlamam gerekiyor. Anlatan hoca sağ olsun eksik bilgi vekmekte üstüne yoktur. Şimdi ben bu uygulamaya bakarak bu soruyu yaptım ama anlamayarak yaptığım için sizden anlatmanızı rica edeceğim.

Python:
liste = [1,2,3,4,5]

a = 0.

while (a < len(liste)):
print("Indeks:",a,"Eleman:",liste[a])
a +=1.

# bu koda bakarak yaptıgım uygulama.
sayılar = [1,3,5,7,9,12,19,21]
a = 0.

while (a < len(sayılar)):
print(sayılar[a])
a += 1

Yardımlarınızı bekliyorum.
 
Çözüm
Python:
liste = [1,2,3,4,5]

a = 0

while (a < len(liste)):
    print("Indeks:",a,"Eleman:",liste[a])
    a +=1.

# bu koda bakarak yaptıgım uygulama.
sayılar = [1,3,5,7,9,12,19,21]
a = 0

while (a < len(sayılar)):
    print(sayılar[a])
    a += 1

Şimdi sıfırdan inceleyelim:
İlk önce [1,2,3,4,5] diye bir liste oluşturulmuş.

Sonra "a" değişkeni 0 olarak atanmış.

While döngüsü ise şöyle:

While döngüsü nasıl çalışır:
While döngüsüne koşul olarak "True" yani doğru verilirse döngü devam eder. "False" yani yanlış olursa döngü bozulur.


Şimdi bizim listemiz neydi, [1,2,3,4,5]. Değerler "0"dan başlar, yani ilk değer "0" son değer ise listedeki eleman sayısı - 1 olur. Neden -1? Çünkü elemanlar sayma sayısı gibi değil, 1. elemanı alınca ilk elemanı almazsınız. 0. elemanı alınca ilk elemanı alırsınız.

Python:
while a<len(liste):
Burada kastedilen şey ise:
0 olarak tanımladığımız "a" değişkeni eğer listenin eleman sayısından küçük olduğu sürece alttaki işlemleri yap.

Şimdi, liste uzunluğu kaç? Kaç eleman var listede? 5 eleman var.
İlk elemana liste[0], son elemena da liste[4] ile ulaşırız. Neden? Çünkü elemanlar "0"dan başlar.
O zaman "a" değişkeni şu an 0. Liste uzunluğu yani len(liste) = 5.

Şimdi 5 eleman varsa ve son elemanı "4" ile alıyorsak ne olacak?
Python:
while a<len(liste):
    print(liste[a])
    a+=1
"a" değişkeni listenin eleman sayısı yani 5'ten küçük olduğu sürece yap (Şu an "a=0" olduğu için "True" yani koşul sağlanır.):
Listenin a'ıncı değerini yaz. Şimdi a = 0 ise, liste[a] nedir? "liste[0]". Listenin 0. elemanı nedir? "1". Yani listenin ilk elemanı. O zaman bize listenin ilk elemanını yazdıracak.

Sonrasına "a" değişkeni 1 artacak ve "1" olacak, yani "0" değerine 1 eklenip 1 olacak. 0+1=1.

Şimdi "while" döngüsü tekrar koşulumuza bakacak. "a" değişkeni listenin eleman sayısından küçük mü? Evet, şu an "a = 1" ve "len(liste) = 5". Yani "a<len(liste)" = "1<5", yani doğru. Doğru olunca tekrar bakacak.

Bu sefer koşul yine sağlandı, ne olacak? "a=1" idi. Tekrardan listenin a'ıncı değerini yazdıracak. Yani listenin 1. değeri ne? "[1,2,3,4,5]" 0. değer 1, "1. değer 2". Bu sefer de print(liste[1]) olacak ve "2" çıktısı verecek.

Bu şekilde "a" değişkeni "5" olana kadar yapılacak.

Şimdi "a" 5 iken koşula tekrar bakalım.
Python:
a<len(liste)
a değeri 5, listenin eleman sayısı da 5. 5<5 yani 5 değeri 5'ten küçük müdür? Hayır, eşittir. Koşulumuz False yani yanlış olduğu için listeden çıkılır.

Peki döngüden çıkılmasaydı ne olurdu?
"a" değeri = 5 diyelim ve döngü de sağlansın.
O zaman liste[5] değerini yazdıracak ama listenin son değeri "4" çünkü liste elemanları "0"dan başlıyor. Burada 5. değer olmadığı için hata verecek.

Bu döngüyü "for" döngüsü ile de yapabiliriz.
Python:
liste = [1,2,3,4,5]
for i in liste:
    print(liste[i])
For döngülerini biliyorsanız böyle daha kolay olacaktır.

En detaylı şekilde açıklamaya çalıştım, sorunuz olursa yazın.

"While döngüsü nedir?" adlı konudaki sorunuza da anlatmıştım:
len(liste), liste dizisinin eleman sayısını ifade ediyor. Eğer a değişkeni liste dizisinin eleman sayısından küçükse alttaki 2 satır kod çalışacak ve tekrar şart kontrol edilecek ta ki şart sağlanmayana dek. Yani aslında programın yaptığı iş: dizinin içindeki elemanları sıralayıp ismini yazdırmak.
 
Herkese merhaba, bana verilen 5 tane uygulama sorusu var içinde bir soruyu yapabilmem için bu uygulamayı anlamam gerekiyor. Anlatan hoca sağ olsun eksik bilgi vekmekte üstüne yoktur. Şimdi ben bu uygulamaya bakarak bu soruyu yaptım ama anlamayarak yaptığım için sizden anlatmanızı rica edeceğim.

Python:
liste = [1,2,3,4,5]

a = 0.

while (a < len(liste)):
print("Indeks:",a,"Eleman:",liste[a])
a +=1.

# bu koda bakarak yaptıgım uygulama.
sayılar = [1,3,5,7,9,12,19,21]
a = 0.

while (a < len(sayılar)):
print(sayılar[a])
a += 1

Yardımlarınızı bekliyorum.
Anlatma derken nasıl bir anlatma? uygulamanın nasıl işlediğini mi anlatalım?
 
Ben neresini anlamadığını anlamadım ama açıklayayım.
Sayılar diye bir dize oluşturmuşsun içine değerleri girmişsin. Sonra a değişkenini 0'a eşitlemişsin.

len(sayılar) demek sayılar dizesinin eleman sayısı demek.
while ile A, sayılar dizesindeki elemanlardan küçük olduğu sürece dönsün demişsin. Sonrasında da sayılar[a] diyerek her döngüde bir sonraki dizeyi çağırmış ve a'yı her döngüde 1 arttırmışsın.

Yani bu yaptığın işlem tüm sayılar dizesini alt alta döker.
 
Dizi dediğimiz olay, bellekte arka arkaya adreslere konmuş değişkenlerdir. Bu dizilerin tüm elemanlarına da bir döngü ile ulaşmak gerekiyor. Buna da İngilizce'de "iterating through an array" deniyor.

Örneğin, a[0] dediğimiz zaman, ilk elemana ulaşırız. 0 yerine 1. elemana ulaşacağımız zaman a[1] yapmak gerekiyor gibi. Döngü ise, o 0,1 gibi girdiğimiz değeri arttırmakta.

len() fonksiyonu, bir dizinin boyutunu döndürüyor sanırım. O arttırdığımız index, ondan küçük olmalı, yoksa "out of range" ile karşılaşırız, yani öyle bir eleman yoktur. Mesela 5 elemanlı olsun dizimiz, elemanlara 0'dan 4'e kadar sayı atanacak. 5'ten küçük dediği ise, 4'e kadar çıkması mesela. Eğer len() fonksiyonu yerine direkt olarak 5 yazarsan çalışır, 5'ten küçük olana kadar artacaktır o sayı, ama 6 yazınca, 5'e kadar artar, e bu halde de "out of range" olur. Yani öyle bir eleman olmadığı bildirilir. Umarım güzel anlatmışımdır. Daha da basit anlatabilirim.
 
Bu aslında for döngüsü ile yapılması gerek ama while döngüsü ile yapılmış.
burda haklısınız çünkü bende while möngüsü ile yapılması istendiği için while döngüsüyle yapmaya çalıştım
Dizi dediğimiz olay, bellekte arka arkaya adreslere konmuş değişkenlerdir. Bu dizilerin tüm elemanlarına da bir döngü ile ulaşmak gerekiyor. Buna da İngilizce'de "iterating through an array" deniyor.

Örneğin, a[0] dediğimiz zaman, ilk elemana ulaşırız. 0 yerine 1. elemana ulaşacağımız zaman a[1] yapmak gerekiyor gibi. Döngü ise, o 0,1 gibi girdiğimiz değeri arttırmakta.

len() fonksiyonu, bir dizinin boyutunu döndürüyor sanırım. O arttırdığımız index, ondan küçük olmalı, yoksa "out of range" ile karşılaşırız, yani öyle bir eleman yoktur. Mesela 5 elemanlı olsun dizimiz, elemanlara 0'dan 4'e kadar sayı atanacak. 5'ten küçük dediği ise, 4'e kadar çıkması mesela. Eğer len() fonksiyonu yerine direkt olarak 5 yazarsan çalışır, 5'ten küçük olana kadar artacaktır o sayı, ama 6 yazınca, 5'e kadar artar, e bu halde de "out of range" olur. Yani öyle bir eleman olmadığı bildirilir. Umarım güzel anlatmışımdır. Daha da basit anlatabilirim.
cevabınız için teşekürler dediklerinizi iyi kötü anladım bu koddalarda anlamadığım kısım
print(sayılar[a])
burası oldu sayılar[a] ben bunu bilgi çekmek olarak alarak algıladığım için boş değişkenden be bilgisi çekebilirki dedirtiyor
 
Son düzenleme:
While = Sürece anlamına geliyor.
Yani While(boolean_expression): derseniz. İçerideki bool ifade true olduğu sürece çalışır. Demek.
Diğer arkadaşların da güzelce açıkladığı gibi len() = Length, uzunluk, boyut anlamına geliyor. Listenin boyunu bulmak için kullanıyoruz. Diğer dillerde Size(), Count() vs. şeklinde karşılaşabilirsiniz.

Genel mantık. a değişkeninin değeri Listenin eleman sayısından küçük olduğu sürece alttaki bloğu çalıştır. Peki bloktaki kodlar ne yapıyor? a değişkeninin değeri ve Listedeki a. elemanı yazıp. a'nın değerini 1 artırıyor. Bunun sebebi bir sonraki elemanı almak. a'nın değeri 4 olduğunda ve a += 1 denildiği zaman a'nın değeri 5 olacağı için a < len(liste)(5 < 5) ifadesi false olur. Ve tekrardan While içerisine girmez.
 
Python:
liste = [1,2,3,4,5]

a = 0

while (a < len(liste)):
    print("Indeks:",a,"Eleman:",liste[a])
    a +=1.

# bu koda bakarak yaptıgım uygulama.
sayılar = [1,3,5,7,9,12,19,21]
a = 0

while (a < len(sayılar)):
    print(sayılar[a])
    a += 1

Şimdi sıfırdan inceleyelim:
İlk önce [1,2,3,4,5] diye bir liste oluşturulmuş.

Sonra "a" değişkeni 0 olarak atanmış.

While döngüsü ise şöyle:

While döngüsü nasıl çalışır:
While döngüsüne koşul olarak "True" yani doğru verilirse döngü devam eder. "False" yani yanlış olursa döngü bozulur.


Şimdi bizim listemiz neydi, [1,2,3,4,5]. Değerler "0"dan başlar, yani ilk değer "0" son değer ise listedeki eleman sayısı - 1 olur. Neden -1? Çünkü elemanlar sayma sayısı gibi değil, 1. elemanı alınca ilk elemanı almazsınız. 0. elemanı alınca ilk elemanı alırsınız.

Python:
while a<len(liste):
Burada kastedilen şey ise:
0 olarak tanımladığımız "a" değişkeni eğer listenin eleman sayısından küçük olduğu sürece alttaki işlemleri yap.

Şimdi, liste uzunluğu kaç? Kaç eleman var listede? 5 eleman var.
İlk elemana liste[0], son elemena da liste[4] ile ulaşırız. Neden? Çünkü elemanlar "0"dan başlar.
O zaman "a" değişkeni şu an 0. Liste uzunluğu yani len(liste) = 5.

Şimdi 5 eleman varsa ve son elemanı "4" ile alıyorsak ne olacak?
Python:
while a<len(liste):
    print(liste[a])
    a+=1
"a" değişkeni listenin eleman sayısı yani 5'ten küçük olduğu sürece yap (Şu an "a=0" olduğu için "True" yani koşul sağlanır.):
Listenin a'ıncı değerini yaz. Şimdi a = 0 ise, liste[a] nedir? "liste[0]". Listenin 0. elemanı nedir? "1". Yani listenin ilk elemanı. O zaman bize listenin ilk elemanını yazdıracak.

Sonrasına "a" değişkeni 1 artacak ve "1" olacak, yani "0" değerine 1 eklenip 1 olacak. 0+1=1.

Şimdi "while" döngüsü tekrar koşulumuza bakacak. "a" değişkeni listenin eleman sayısından küçük mü? Evet, şu an "a = 1" ve "len(liste) = 5". Yani "a<len(liste)" = "1<5", yani doğru. Doğru olunca tekrar bakacak.

Bu sefer koşul yine sağlandı, ne olacak? "a=1" idi. Tekrardan listenin a'ıncı değerini yazdıracak. Yani listenin 1. değeri ne? "[1,2,3,4,5]" 0. değer 1, "1. değer 2". Bu sefer de print(liste[1]) olacak ve "2" çıktısı verecek.

Bu şekilde "a" değişkeni "5" olana kadar yapılacak.

Şimdi "a" 5 iken koşula tekrar bakalım.
Python:
a<len(liste)
a değeri 5, listenin eleman sayısı da 5. 5<5 yani 5 değeri 5'ten küçük müdür? Hayır, eşittir. Koşulumuz False yani yanlış olduğu için listeden çıkılır.

Peki döngüden çıkılmasaydı ne olurdu?
"a" değeri = 5 diyelim ve döngü de sağlansın.
O zaman liste[5] değerini yazdıracak ama listenin son değeri "4" çünkü liste elemanları "0"dan başlıyor. Burada 5. değer olmadığı için hata verecek.

Bu döngüyü "for" döngüsü ile de yapabiliriz.
Python:
liste = [1,2,3,4,5]
for i in liste:
    print(liste[i])
For döngülerini biliyorsanız böyle daha kolay olacaktır.

En detaylı şekilde açıklamaya çalıştım, sorunuz olursa yazın.

"While döngüsü nedir?" adlı konudaki sorunuza da anlatmıştım:
 
Çözüm
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı