sonsuzus / BilsemPython

Bilsem Python Dersleri
GNU General Public License v3.0
10 stars 1 forks source link

while döngüsü #33

Open sonsuzus opened 1 year ago

sonsuzus commented 1 year ago

Bu başlık altına while döngüsünü anlatan bir yazı ekleyiniz. (En az 130 kelime) ( Kopyala yapıştır yapabilir, düzenleyebilir, birleştirebilir ve kaynakları yazabilirsiniz.)

TheDemr0 commented 1 year ago

While döngüsü, programlama dillerinin neredeyse tamamında var olan, yaygın kullanılan bir döngüdür. Önceden belirlenmiş bir koşul bozulana kadar devam eder. Koşulun her kontrolünden sonra döngü içerisindeki işlemler bir kez yapılır. Koşul bozulduktan sonraki ilk kontrolde döngü terk edilir.

örn:

i = 1 while i < 5: print(i) i += 1 EKRAN ÇIKTISI: Ekran Çıktısı:

1 2 3 4

Belirttiğimiz koşul i' nin 5 den küçük olması ve bu koşul devam ettiği sürece (True) ekrana i değeri yazdırılmaya devam eder. Ancak burada dikkat etmemiz gereken her adımda i değerini değiştirmemiz gerektiği aksi halde sonsuz bir döngüye gireriz.

Dolayısıyla i değeri ekrana yazdırıldıktan sonra i' nin değerini 1 arttırmamız gerekiyor. i' nin değeri 5' e eşit olduğunda while koşulu bize False değer döndürür ve döngüden çıkılır.

Sadik1Dev commented 1 year ago

While Döngüsü:

İngilizce bir kelime olan while Türkçe deki karşılığı “-iken” dir. Python da yazdığımız kodları tekrar çalıştırmamızı sağlayan döngü çeşididir. Çalışma mantığı ise while döngüsü her defasında tekrarlanır , eğer koşul sağlıyorsa tekrar döngüye girer , eğer sağlamıyorsa döngü sonlanır hemen bir örnekle gösterelim; 0 ile 10 arasındaki sayıları ekrana yazdıralım.

sayi=0

while sayi <=10:

    print(sayi)

    sayi = sayi+1

Kodları sırayla inceleyelim ilk satırda sayı adında bir değişken oluşturduk ve değerini sıfır yaptık ikinci satırda sayı değişkenin değeri 10’dan küçük ve eşit olduğu sürece döngü tekrar etsin.

Üçüncü satırda ekrana sayı değişkenini yazdırma işlemini yaptık ve dördüncü satırda sayı değişkenini bir artırdık.

Program nasıl çalışacak;

İlk olarak sayı değişkeninin değeri sıfır bunu on ile karşılaştıracak eğer küçük ve eşitse döngü içine girecek ilk olarak sıfır değerini ekrana yazdıracak sonra sayı değişkenini bir arttıracak sayı değişkenin yeni değeri bir olacak ve tekrar döngünün başına gelecek. Yine aynı şekilde on değeri ile karşılaştıracak ekrana yeni değeri yazdıracak ve değeri bir artıracak , sayı değişkenin değeri on dan büyük olana kadar ve döngüyü sonlandıracak.

Şimdi bir önceki dersimizde basit olarak yaptığımız harf notu uygulamasını while döngüsü ile tekrar yapalım;

"""Harf notu Hesaplama Programı"""

while True:

    vize = int(input("Vize Notu :"))

    final = int(input("Final Notu :"))     ortalama = (vize 0.4) + (final 0.6)  # vizenin %40 final %60 olarak alındı

    if (ortalama >= 85):

        print("Harf notunuz : AA0")

   elif (ortalama >= 70 and ortalama < 85):

        print("Harf notunuz : BA")

    elif (ortalama >= 60 and ortalama < 70):

        print("Harf notunuz : BB")

    elif (ortalama >= 45 and ortalama < 60):

        print("Harf notunuz : CB")

    elif (ortalama >= 0 and ortalama < 45):

        print("Harf notunuz : FF")

artık while döngüsü sayesinde üst üste hesaplama işlemi yapabiliyoruz.

Berkek007 commented 1 year ago

while döngüsü: Bir koşul sağlanmaya devam ettiği sürece işlemleri tekrarlar. İngilizce bir kelime olan while, Türkçede ‘... iken, ... olduğu sürece’ gibi anlamlarına gelir. Ör: while a == 1: # a, 1 olduğu sürece Ör:

a = 1
while a<10:#a 10’dan küçük olduğu sürece
 print("Ali”) # ekrana “Ali” yazdır

Açıklaması: Burada programımız diyor ki a, 10’dan küçük olduğu sürece ekrana “Ali” yazdır. Ancak garip olan burada a=1 olduğu için a her zaman 10’dan küçük olacak. Bu da ekrana sürekli “Ali” yazılmasına neden olacak. Buna sonsuz döngü diyoruz. ( infinite loop). Bu durumu düzeltmek için programı şu şekilde yazalım;

a = 1
while a < 10:
 a += 1
 print("Ali", end=” ”)

(NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) Ali Ali Ali Ali Ali Ali Ali Ali Ali Açıklaması: Python öncelikle a = 1 satırını görüyor ve a‘nın değerini 1 yapıyor. Daha sonra (while a < 10) satırını görüyor. Ardından a‘nın değerini 1 artırıyor (a += 1) ve a‘nın değeri 2 oluyor. a‘nın değeri (yani 2) 10‘dan küçük olduğu için Python ekrana ilgili çıktıyı veriyor. İlk döngüyü bitiren Python başa dönüyor ve a‘nın değerinin 2 olduğunu görüyor. a‘nın değerini yine 1 artırıyor ve a‘yı 3 yapıyor. a‘nın değeri hâlâ 10‘dan küçük olduğu için ekrana yine ilgili çıktıyı veriyor. İkinci döngüyü de bitiren Python yine başa dönüyor ve a‘nın değerinin 3 olduğunu görüyor. Yukarıdaki adımları tekrar eden Python, a‘nın değeri 9 olana kadar ilerlemeye devam ediyor. a‘nın değeri 9‘a ulaştığında Python a‘nın değerini bir kez daha artırınca bu değer 10‘a ulaşıyor. Python a‘nın değerinin artık 10‘dan küçük olmadığını görüyor ve programı sona erdiyor. Ör:

a=1
while a<5: # a 5’ten küçük olduğu sürece
 print(a, end=” ”) # a’yı yazdır.
 a+=1 # a’yı 1 arttır.

(NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) 1 2 3 4 Açıklaması: İlk satırda a değişkene 1 atadık. İkinci satıra geldiğimizde ise değişkenin 5’ten küçük olup olmama durumuna baktık, eğer küçükse kodumuz alt satıra geçecek ve böylece değişken ekrana yazdırılacak. Son koda geldiğimizde a değişkeni 1 değer artıp 2 olacak ve döngüye girecek. Sonra döngü devam edip ekrana 2 yazdırılacak. Bu durum a’nın 5’ten küçük olmaması şartına kadar sağlanacak. Yani a artık 5 olduğunda yani while a<5: koşulu sağlanmadığında döngü duracak ve ekrana sadece 1 2 3 4 yazdırılmış olacak Ör: 1‘den 16‘ya kadar çift sayıları yazdırma:

a = 0
while a < 16:
 a += 1
 if a % 2 == 0:
 print(a, end=” “)

(NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) Çıktı: 2 4 6 8 10 12 14 16 Belirsiz Döngü: Döngünün kaç defa döneceği belirsizdir. Döngünün kaç defa döneceğine şartlar ve kullanıcı karar verir. Örneğin;

n = 1
while n <= 10:
 print(n)
 n += 1

1 2 3 4 5 6 7 8 9 10 Bu programda döngünün kaç defa döneceği bellidir. n, 10’dan küçük ya da eşit olduğu sürece döngü tekrar edecektir. Ancak;

n = 1
karar= int(input("sayılar kaça kadar
sıralansın?" ))
while n <= karar:
 print(n ,end=" ")
 n += 1

Kaça kadar sayıların sıralanmasını istiyorsunuz? 7 1 2 3 4 5 6 7 Bu programda ise döngünün kaç defa döneceği belli değildir. Kullanıcının girdiği sayı 1 veya 1’den büyük olduğu sürece o kadar sayıda döngü tekrar edecektir. Örneğin burada kullanıcı 7 sayısını girdiğinde 1’den 7’ye kadar olan sayılar ekrana yazdırılacaktır. 25 sayısını girdiğinde yine aynı şekilde 1’den 25’e kadar olan sayılar ekrana yazdırılacaktır. Ancak kullanıcı 0 veya eksi değerde bir sayı girdiğinde while n <= karar: şartı oluşmamış olacağından program tepki vermeyecektir.

AhmetEmirErsoz commented 1 year ago

while döngüsü: Bir koşul sağlanmaya devam ettiği sürece işlemleri tekrarlar. İngilizce bir kelime olan while, Türkçede ‘... iken, ... olduğu sürece’ gibi anlamlarına gelir. Ör: while a == 1: # a, 1 olduğu sürece Ör: a = 1 while a<10:#a 10’dan küçük olduğu sürece print("Ali”) # ekrana “Ali” yazdır. Açıklaması: Burada programımız diyor ki a, 10’dan küçük olduğu sürece ekrana “Ali” yazdır. Ancak garip olan burada a=1 olduğu için a her zaman 10’dan küçük olacak. Bu da ekrana sürekli “Ali” yazılmasına neden olacak. Buna sonsuz döngü diyoruz. ( infinite loop). Bu durumu düzeltmek için programı şu şekilde yazalım; a = 1 while a < 10: a += 1 print("Ali", end=” ”) (NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) Ali Ali Ali Ali Ali Ali Ali Ali Ali Açıklaması: Python öncelikle a = 1 satırını görüyor ve a‘nın değerini 1 yapıyor. Daha sonra (while a < 10) satırını görüyor. Ardından a‘nın değerini 1 artırıyor (a += 1) ve a‘nın değeri 2 oluyor. a‘nın değeri (yani 2) 10‘dan küçük olduğu için Python ekrana ilgili çıktıyı veriyor. İlk döngüyü bitiren Python başa dönüyor ve a‘nın değerinin 2 olduğunu görüyor. a‘nın değerini yine 1 artırıyor ve a‘yı 3 yapıyor. a‘nın değeri hâlâ 10‘dan küçük olduğu için ekrana yine ilgili çıktıyı veriyor. İkinci döngüyü de bitiren Python yine başa dönüyor ve a‘nın değerinin 3 olduğunu görüyor. Yukarıdaki adımları tekrar eden Python, a‘nın değeri 9 olana kadar ilerlemeye devam ediyor. a‘nın değeri 9‘a ulaştığında Python a‘nın değerini bir kez daha artırınca bu değer 10‘a ulaşıyor. Python a‘nın değerinin artık 10‘dan küçük olmadığını görüyor ve programı sona erdiyor. Ör: a=1 while a<5: # a 5’ten küçük olduğu sürece print(a, end=” ”) # a’yı yazdır. a+=1 # a’yı 1 arttır. (NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) 1 2 3 4 Açıklaması: İlk satırda a değişkene 1 atadık. İkinci satıra geldiğimizde ise değişkenin 5’ten küçük olup olmama durumuna baktık, eğer küçükse kodumuz alt satıra geçecek ve böylece değişken ekrana yazdırılacak. Son koda geldiğimizde a değişkeni 1 değer artıp 2 olacak ve döngüye girecek. Sonra döngü devam edip ekrana 2 yazdırılacak. Bu durum a’nın 5’ten küçük olmaması şartına kadar sağlanacak. Yani a artık 5 olduğunda yani while a<5: koşulu sağlanmadığında döngü duracak ve ekrana sadece 1 2 3 4 yazdırılmış olacak Ör: 1‘den 16‘ya kadar çift sayıları yazdırma: a = 0 while a < 16: a += 1 if a % 2 == 0: print(a, end=” “) (NOT:Burada end komutu çıktıların yan yana yazılmasını sağlamak için kullanılmıştır.) Çıktı: 2 4 6 8 10 12 14 16 Belirsiz Döngü: Döngünün kaç defa döneceği belirsizdir. Döngünün kaç defa döneceğine şartlar ve kullanıcı karar verir. Örneğin; n = 1 while n <= 10: print(n) n += 1 1 2 3 4 5 6 7 8 9 10 Bu programda döngünün kaç defa döneceği bellidir. n, 10’dan küçük ya da eşit olduğu sürece döngü tekrar edecektir. Ancak; n = 1 karar= int(input("sayılar kaça kadar sıralansın?" )) while n <= karar: print(n ,end=" ") n += 1 Kaça kadar sayıların sıralanmasını istiyorsunuz? 7 1 2 3 4 5 6 7 Bu programda ise döngünün kaç defa döneceği belli değildir. Kullanıcının girdiği sayı 1 veya 1’den büyük olduğu sürece o kadar sayıda döngü tekrar edecektir. Örneğin burada kullanıcı 7 sayısını girdiğinde 1’den 7’ye kadar olan sayılar ekrana yazdırılacaktır. 25 sayısını girdiğinde yine aynı şekilde 1’den 25’e kadar olan sayılar ekrana yazdırılacaktır. Ancak kullanıcı 0 veya eksi değerde bir sayı girdiğinde while n <= karar: şartı oluşmamış olacağından program tepki vermeyecektir. (wikipedia)

OmerB2 commented 1 year ago

Pythonda While Döngüsü

While döngülerinde belirttiğimiz bir koşul doğru olduğu sürece while bloğu içerisinde tanımladığımız kod satırlarını tekrarlatabiliriz.

Örnek

i = 1
while i < 5:
  print(i)
  i += 1

Ekran Çıktısı:

1
2
3
4

Belirttiğimiz koşul i' nin 5 den küçük olması ve bu koşul devam ettiği sürece (True) ekrana i değeri yazdırılmaya devam eder. Ancak burada dikkat etmemiz gereken her adımda i değerini değiştirmemiz gerektiği aksi halde sonsuz bir döngüye gireriz. Dolayısıyla i değeri ekrana yazdırıldıktan sonra i' nin değerini 1 arttırmamız gerekiyor. i' nin değeri 5' e eşit olduğunda while koşulu bize False değer döndürür ve döngüden çıkılır.

Örnek

x = 1
while x <= 100:
    if x % 2==1:
        print(f'sayı tek: {x}')
    else:
        print(f'sayı çift: {x}')
    x += 1

print('bitti...')

x değerini 1 den başlatırız ve 100' den küçük mü kontrol ederiz. x, 100' den küçük olduğu sürece while bloğundaki kodlar işletilir ve her adımda x' i 1 arttırırız ki sonsuz döngüye girmeyelim. Her adımda x%2==1 mi diye kontrol ediyoruz eğer bu ifade bize True bilgisi getirirse demek ki sayı tek olduğundan sayı tek aksi halde sayı çift mesajını yazdırıyoruz. Özetle 1-100 arasındaki her sayı için tek ya da çift mesajlarını yazdırmış oluyoruz. En sonda ise bitti mesajı bir kere yazdırılır çünkü while döngüsünün dışında.

Break ve Continue

break komutu döngüyü sonlandırır, continue ise döngünün o turunu sonlandırır ve bir sonraki turdan devam eder.

Örnek

x = 0
while x < 5:    
   x+=1
   if x == 2:
       continue
   print(x)

x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda continue komutu çalışınca x ekrana yazdırılmaz ancak döngü sonraki turdan devam eder. Ekran çıktısı;

1
3
4

Peki aynı örnekte continue yerine break yazarsak ne olur ?

Örnek

x = 0
while x < 5:
   x+=1
   if x == 2:
       break
   print(x)

x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda break komutu çalışınca döngü biter ve ekrana sadece 1 yazdırılır. Ekran çıktısı;

1

Örnek

1- 100 e kadar tek sayıların toplamını hesaplayalım.

x = 0
result = 0

while x <= 100:    
    x+=1
    if x % 2 == 0:
        continue
    result += x

print(f'toplam: {result}')

x%2==0, True değer döndürdüğünde sayının çift olduğunu anlarız ve continue ile x değerini result içerisine eklemeyiz ancak sonraki turdan devam ederiz.

Python While Döngü Örnekleri

sayilar = [1,3,5,7,9,12,19,21] 1- Sayilar listesini while ile ekrana yazdırınız.

i = 0
while (i < len(sayilar)):
    print(sayilar[i])
    i += 1

2- Başlangıç ve bitiş değerlerini kullanıcıdan alıp aradaki tüm tek sayıları ekrana yazdırınız.

baslangic = int(input('başlangıç: '))
bitis = int(input('bitiş: '))

i = baslangic

while i < bitis:
    i += 1
    if (i % 2 == 1):
        print(i)

3- 1-100 arasındaki sayıları azalan şekilde yazdırınız.

i = 100
while i > 0:
    print(i)
    i -= 1

4: Kullanıcıdan alacağınız 5 sayıyı ekranda sıralı bir şekilde yazdırınız.

numbers = [ ]
i = 0
while i<5:
    sayi = int(input('sayı: '))
    numbers.append(sayi)
    i+=1
numbers.sort()
print(numbers)

5: Kullanıcıdan alacağınız sınırsız ürün bilgisini urunler listesi içinde saklayınız. ürün sayısını kullanıcıya sorun. dictionary listesi yapısı (name, price) şeklinde olsun. ** ürün ekleme işlemi bittiğinde ürünleri ekranda while ile listeleyin.

urunler = [ ]

adet = int(input('kaç ürün eklemek istiyorsunuz: '))

i = 0

while(i<adet):
    name = input('ürün ismi: ')
    price = input('ürün fiyatı: ')
    urunler.append({
        'name': name,
        'price': price
    })
    i += 1

for urun in urunler:
    print(f'ürün adı: {urun["name"]} ürün fiyatı: {urun["price"]}')

Kaynak: https://www.sadikturan.com/python-donguler/python-while-dongusu/1389

kaanpinar04 commented 1 year ago

Pythonda While Döngüsü While döngülerinde belirttiğimiz bir koşul doğru olduğu sürece while bloğu içerisinde tanımladığımız kod satırlarını tekrarlatabiliriz.

Örnek i = 1 while i < 5: print(i) i += 1 Ekran Çıktısı:

1 2 3 4 Belirttiğimiz koşul i' nin 5 den küçük olması ve bu koşul devam ettiği sürece (True) ekrana i değeri yazdırılmaya devam eder. Ancak burada dikkat etmemiz gereken her adımda i değerini değiştirmemiz gerektiği aksi halde sonsuz bir döngüye gireriz.

Dolayısıyla i değeri ekrana yazdırıldıktan sonra i' nin değerini 1 arttırmamız gerekiyor. i' nin değeri 5' e eşit olduğunda while koşulu bize False değer döndürür ve döngüden çıkılır.

Örnek x = 1 while x <= 100: if x % 2==1: print(f'sayı tek: {x}') else: print(f'sayı çift: {x}') x += 1

print('bitti...') x değerini 1 den başlatırız ve 100' den küçük mü kontrol ederiz. x, 100' den küçük olduğu sürece while bloğundaki kodlar işletilir ve her adımda x' i 1 arttırırız ki sonsuz döngüye girmeyelim.

Her adımda x%2==1 mi diye kontrol ediyoruz eğer bu ifade bize True bilgisi getirirse demek ki sayı tek olduğundan sayı tek aksi halde sayı çift mesajını yazdırıyoruz. Özetle 1-100 arasındaki her sayı için tek ya da çift mesajlarını yazdırmış oluyoruz. En sonda ise bitti mesajı bir kere yazdırılır çünkü while döngüsünün dışında.

Break ve Continue break komutu döngüyü sonlandırır, continue ise döngünün o turunu sonlandırır ve bir sonraki turdan devam eder.

Örnek x = 0 while x < 5:
x+=1 if x == 2: continue print(x) x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda continue komutu çalışınca x ekrana yazdırılmaz ancak döngü sonraki turdan devam eder.

Ekran çıktısı;

1 3 4 Peki aynı örnekte continue yerine break yazarsak ne olur ?

Örnek x = 0 while x < 5:
x+=1 if x == 2: break print(x) x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda break komutu çalışınca döngü biter ve ekrana sadece 1 yazdırılır.

Ekran çıktısı;

1

Örnek 1- 100 e kadar tek sayıların toplamını hesaplayalım.

x = 0 result = 0

while x <= 100:
x+=1 if x % 2 == 0: continue result += x

print(f'toplam: {result}') x%2==0, True değer döndürdüğünde sayının çift olduğunu anlarız ve continue ile x değerini result içerisine eklemeyiz ancak sonraki turdan devam ederiz.

EfeMertIrez commented 1 year ago

Python programlama dilinde for döngüsü ile diziler, stringler ve aralıklar üzerinde döngümüzü nasıl işleteceğimizi bir önceki derste görmüştük. Şimdi ise bir koşul aracılığıyla nasıl bir döngü oluşturacağımızı while kullanımı ile öğreneceğiz. Şimdi basit bir koşul oluşturarak ilk while döngümüzü yazalım.

i = 1

while i < 4:
  print(i)
  i += 1

# 1
# 2
# 3

Örnekte gördüğünüz gibi while ile yazdığımız döngüde i değeri 4 ten küçük olduğu sürece döngümüz işlemeye devam edecektir. Bu örnekte olduğu gibi koşulda kontrol ettiğiniz i değerini her döngü sonunda artırmayı unutmayınız. Aksi takdirde sonsuz döngü oluşur ve hata alırsınız.

  1. While Döngüsünü Durdurma Döngümüz ilerlerken istediğimiz bir durumda durdurabilmek için break komutunu kullanırız. Python break komutunu gördüğünde döngüyü durdurarak döngüden çıkar.
    
    i = 1

while i < 6: print(i) if i == 2: break i += 1

1

2

2. Döngü Bitince Komut Çalıştırmak
Şimdiye kadar döngüyü durdurmayı, döngüden çıkmayı ve atlamayı gördük. Şimdi ise döngümüz bittiğinde nasıl komut çalıştıracağımızı göreceğiz.

i = 1

while i < 3: print(i) i += 1 else: print("Döngü bitti!")

1

2

Döngü bitti!


Koşul durumlarında kullandığımız else ifadesi, döngülerde de kullanılarak döngünün bittiği durumu tanımlar.
Furkanyildirm commented 1 year ago

Pythonda While Döngüsü

While döngülerinde belirttiğimiz bir koşul doğru olduğu sürece while bloğu içerisinde tanımladığımız kod satırlarını tekrarlatabiliriz.

Örnek

i = 1 while i < 5: print(i) i += 1 Ekran Çıktısı:

1 2 3 4 Belirttiğimiz koşul i' nin 5 den küçük olması ve bu koşul devam ettiği sürece (True) ekrana i değeri yazdırılmaya devam eder. Ancak burada dikkat etmemiz gereken her adımda i değerini değiştirmemiz gerektiği aksi halde sonsuz bir döngüye gireriz.

Dolayısıyla i değeri ekrana yazdırıldıktan sonra i' nin değerini 1 arttırmamız gerekiyor. i' nin değeri 5' e eşit olduğunda while koşulu bize False değer döndürür ve döngüden çıkılır.

Örnek

x = 1 while x <= 100: if x % 2==1: print(f'sayı tek: {x}') else: print(f'sayı çift: {x}') x += 1

print('bitti...') x değerini 1 den başlatırız ve 100' den küçük mü kontrol ederiz. x, 100' den küçük olduğu sürece while bloğundaki kodlar işletilir ve her adımda x' i 1 arttırırız ki sonsuz döngüye girmeyelim.

Her adımda x%2==1 mi diye kontrol ediyoruz eğer bu ifade bize True bilgisi getirirse demek ki sayı tek olduğundan sayı tek aksi halde sayı çift mesajını yazdırıyoruz. Özetle 1-100 arasındaki her sayı için tek ya da çift mesajlarını yazdırmış oluyoruz. En sonda ise bitti mesajı bir kere yazdırılır çünkü while döngüsünün dışında.

Break ve Continue

break komutu döngüyü sonlandırır, continue ise döngünün o turunu sonlandırır ve bir sonraki turdan devam eder.

Örnek

x = 0
while x < 5:    
   x+=1
   if x == 2:
       continue
   print(x)

x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda continue komutu çalışınca x ekrana yazdırılmaz ancak döngü sonraki turdan devam eder.

Ekran çıktısı;

1
3
4

Peki aynı örnekte continue yerine break yazarsak ne olur ?

## Örnek
x = 0
while x < 5:    
   x+=1
   if x == 2:
       break
   print(x)

x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda break komutu çalışınca döngü biter ve ekrana sadece 1 yazdırılır.

Ekran çıktısı;

1

Örnek

1- 100 e kadar tek sayıların toplamını hesaplayalım.

x = 0
result = 0

while x <= 100:    
    x+=1
    if x % 2 == 0:
        continue
    result += x
print(f'toplam: {result}')

x%2==0, True değer döndürdüğünde sayının çift olduğunu anlarız ve continue ile x değerini result içerisine eklemeyiz ancak sonraki turdan devam ederiz.

KAYNAKÇA; -Python While Döngüsühttps://www.sadikturan.com

tolga0102 commented 1 year ago

while Döngüsü

İngilizce bir kelime olan while, Türkçede ‘… iken, … olduğu sürece’ gibi anlamlara gelir. Python’da while bir döngüdür.Python'da, döngüler sayesinde programlarımızın sürekli olarak çalışmasını sağlayabiliriz. Öncelikle while döngüsünün temellerini kavrayarak işe başlayalım. Basit bir while döngüsü kabaca şuna benzer:

a = 1
while a == 1:

Burada a adlı bir değişken oluşturduk. Bu değişkenin değeri 1. Bir sonraki satırda ise while a == 1: gibi bir ifade yazdık. En başta da söylediğimiz gibi while kelimesi, ‘… iken, olduğu sürece’ gibi anlamlar taşıyor. Python programlama dilindeki anlamı da buna oldukça yakındır. Burada while a == 1 ifadesi programımıza şöyle bir anlam katıyor: a değişkeninin değeri 1 olduğu sürece… Gördüğünüz gibi cümlemiz henüz eksik. Yani belli ki bunun bir de devamı olacak. Ayrıca while ifadesinin sonundaki : işaretinden anladığımız gibi, bundan sonra gelecek satır girintili yazılacak. Devam edelim:

a = 1
while a == 1:
    print("Bilgisayar çıldırdı!")

Burada Python’a şu emri vermiş olduk: a değişkeninin değeri 1 olduğu sürece, ekrana ‘Bilgisayar çıldırdı!’ yazısını dök! Bu programı çalıştırdığımızda Python verdiğimiz emre sadakatle uyacak ve a değişkeninin değeri 1 olduğu müddetçe de bilgisayarımızın ekranına ‘Bilgisayar çıldırdı!’ yazısını dökecektir. Programımızın içinde a değişkeninin değeri 1 olduğu ve bu değişkenin değerini değiştirecek herhangi bir şey bulunmadığı için Python hiç sıkılmadan ekrana ‘Bilgisayar çıldırdı!’ yazısını basmaya devam edecektir. Eğer siz durdurmazsanız bu durum sonsuza kadar devam edebilir. Programımız sonsuz döngüye girdi. Bu sonsuz döngüyü kırmak için Ctrl+C (veya Ctrl+Z)’ye basmamız gerekecek ki biz bunu değil, programın sonsuz döngüye girmeden belli bir şekilde çalışmasını istiyoruz. Şimdi bu problemi nasıl aşacağımızı görelim:

a = 1
while a < 10:
    a += 1
    print("bilgisayar yine çıldırdı!")

Burada a += 1 satırını ekledik kodlarımızın arasına. += işleci, a değişkeninin değerine her defasında 1 ekliyor ve elde edilen sonucu tekrar a değişkenine atıyor. En sonunda a’nın değeri 10’a ulaşınca da, Python ekrana ‘bilgisayar yine çıldırdı!’ cümlesini yazmayı bırakıyor. Çünkü while döngüsü içinde belirttiğimiz ölçüte göre, programımızın devam edebilmesi için a değişkeninin değerinin 10’dan küçük olması gerekiyor. a’nın değeri 10’a ulaştığı anda bu ölçüt bozulacaktır. Gelin isterseniz örnek olarak bu while döngüsünü de kullanarak bir hesap makinemisi programı yapalım:

giriş = """
(1) topla
(2) çıkar
(3) çarp
(4) böl
(5) karesini hesapla
(6) karekök hesapla
"""
print(giriş)
anahtar = 1
while anahtar == 1:
    soru = input("Yapmak istediğiniz işlemin numarasını girin (Çıkmak için q): ")
    if soru == "q":
        print("çıkılıyor...")
        anahtar = 0
    elif soru == "1":
        sayı1 = int(input("Toplama işlemi için ilk sayıyı girin: "))
        sayı2 = int(input("Toplama işlemi için ikinci sayıyı girin: "))
        print(sayı1, "+", sayı2, "=", sayı1 + sayı2)
    elif soru == "2":
        sayı3 = int(input("Çıkarma işlemi için ilk sayıyı girin: "))
        sayı4 = int(input("Çıkarma işlemi için ikinci sayıyı girin: "))
        print(sayı3, "-", sayı4, "=", sayı3 - sayı4)
    elif soru == "3":
        sayı5 = int(input("Çarpma işlemi için ilk sayıyı girin: "))
        sayı6 = int(input("Çarpma işlemi için ikinci sayıyı girin: "))
        print(sayı5, "x", sayı6, "=", sayı5 * sayı6)
    elif soru == "4":
        sayı7 = int(input("Bölme işlemi için ilk sayıyı girin: "))
        sayı8 = int(input("Bölme işlemi için ikinci sayıyı girin: "))
        print(sayı7, "/", sayı8, "=", sayı7 / sayı8)
    elif soru == "5":
        sayı9 = int(input("Karesini hesaplamak istediğiniz sayıyı girin: "))
        print(sayı9, "sayısının karesi =", sayı9 ** 2)
    elif soru == "6":
        sayı10 = int(input("Karekökünü hesaplamak istediğiniz sayıyı girin: "))
        print(sayı10, "sayısının karekökü = ", sayı10 ** 0.5)
    else:
        print("Yanlış giriş.")
        print("Aşağıdaki seçeneklerden birini giriniz:", giriş)

Burada ilave olarak şu satırları görüyorsunuz:

anahtar = 1

while anahtar == 1:
    soru = input("Yapmak istediğiniz işlemin numarasını girin (Çıkmak için q): ")

    if soru == "q":
        print("çıkılıyor...")
        anahtar = 0

Bu kodlarda yaptığımız şey aslında çok basit. Öncelikle değeri 1 olan anahtar adlı bir değişken tanımladık. Bir alt satırda ise, programımızın sürekli olarak çalışmasını sağlayacak olan while döngümüzü yazıyoruz. Programımız, anahtar değişkeninin değeri 1 olduğu müddetçe çalışmaya devam edecek. Daha önce de dediğimiz gibi, eğer bu anahtar değişkeninin değerini programın bir noktasında değiştirmezsek programımız sonsuza kadar çalışmaya devam edecektir. Çünkü biz programımızı anahtar değişkeninin değeri 1 olduğu sürece çalışmaya ayarladık. İşte programımızın bu tür bir sonsuz döngüye girmesini önlemek için bir if bloğu oluşturuyoruz. Buna göre, eğer kullanıcı klavyede q tuşuna basarsa programımız önce çıkılıyor… çıktısı verecek, ardından da anahtar değişkeninin 1 olan değerini 0 yapacaktır. Böylece artık anahtar’ın değeri 1 olmayacağı için programımız çalışmaya son verecektir.

Kaynakça

CinarSatir commented 1 year ago

Pythonda While Döngüsü While döngülerinde belirttiğimiz bir koşul doğru olduğu sürece while bloğu içerisinde tanımladığımız kod satırlarını tekrarlatabiliriz.

Örnek i = 1 while i < 5: print(i) i += 1 Ekran Çıktısı:

1 2 3 4 Belirttiğimiz koşul i' nin 5 den küçük olması ve bu koşul devam ettiği sürece (True) ekrana i değeri yazdırılmaya devam eder. Ancak burada dikkat etmemiz gereken her adımda i değerini değiştirmemiz gerektiği aksi halde sonsuz bir döngüye gireriz.

Dolayısıyla i değeri ekrana yazdırıldıktan sonra i' nin değerini 1 arttırmamız gerekiyor. i' nin değeri 5' e eşit olduğunda while koşulu bize False değer döndürür ve döngüden çıkılır.

Örnek x = 1 while x <= 100: if x % 2==1: print(f'sayı tek: {x}') else: print(f'sayı çift: {x}') x += 1

print('bitti...') x değerini 1 den başlatırız ve 100' den küçük mü kontrol ederiz. x, 100' den küçük olduğu sürece while bloğundaki kodlar işletilir ve her adımda x' i 1 arttırırız ki sonsuz döngüye girmeyelim.

Her adımda x%2==1 mi diye kontrol ediyoruz eğer bu ifade bize True bilgisi getirirse demek ki sayı tek olduğundan sayı tek aksi halde sayı çift mesajını yazdırıyoruz. Özetle 1-100 arasındaki her sayı için tek ya da çift mesajlarını yazdırmış oluyoruz. En sonda ise bitti mesajı bir kere yazdırılır çünkü while döngüsünün dışında.

Break ve Continue break komutu döngüyü sonlandırır, continue ise döngünün o turunu sonlandırır ve bir sonraki turdan devam eder.

Örnek x = 0 while x < 5:
x+=1 if x == 2: continue print(x) x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda continue komutu çalışınca x ekrana yazdırılmaz ancak döngü sonraki turdan devam eder.

Ekran çıktısı;

1 3 4 Peki aynı örnekte continue yerine break yazarsak ne olur ?

Örnek x = 0 while x < 5:
x+=1 if x == 2: break print(x) x, 5' den küçük olduğu sürece ekrana yazdırılır ancak x' in 2 olduğu turda break komutu çalışınca döngü biter ve ekrana sadece 1 yazdırılır.

Ekran çıktısı;

1

Örnek 1- 100 e kadar tek sayıların toplamını hesaplayalım.

x = 0 result = 0

while x <= 100:
x+=1 if x % 2 == 0: continue result += x

print(f'toplam: {result}') x%2==0, True değer döndürdüğünde sayının çift olduğunu anlarız ve continue ile x değerini result içerisine eklemeyiz ancak sonraki turdan devam ederiz.

KAYNAK : https://www.sadikturan.com/python-donguler/python-while-dongusu/1389

adasue commented 1 year ago

While komutu ne işe yarar? While döngüsü, programlama dillerinin neredeyse tamamında var olan, yaygın kullanılan bir döngüdür. Önceden belirlenmiş bir koşul bozulana kadar devam eder. Koşulun her kontrolünden sonra döngü içerisindeki işlemler bir kez yapılır. Koşul bozulduktan sonraki ilk kontrolde döngü terk edilir. i = 1

while i < 4: print(i) i += 1

Örnekte while ile yazılı döngüde i değeri 4 ten küçük olduğu sürece döngü işlemeye devam edecektir. Bu örnekte olduğu gibi koşulda kontrol edilen i değeri her döngü sonunda arttırılmalıdır. Aksi takdirde sonsuz döngü oluşur ve hata alır.

1. While Döngüsünü Durdurma Döngü ilerlerken istenilen bir durumda durdurabilmek için break komutu kullanılır. Python break komutunu gördüğünde döngüyü durdurarak döngüden çıkar.

i = 1

while i < 6:
  print(i)
  if i == 2:
    break
  i += 1

2. While Döngüsünde Atlama Yapmak Döngümüzü bir koşul ile durdurabileceğimizi gördük. Şimdi ise yine bir koşul ile döngüde ki o durumu atlayabiliriz ve döngünün diğer aşamasına geçebiliriz. Bir koşul ile döngüdeki o durumu atlamak ve döngünün diğer aşamasına geçmek için continue komutu kullanılır.

i = 0

while i < 3:
  i += 1
  if i == 2:
    continue
  print(i)
Ardemin commented 1 year ago

Döngüler (Loops) Şimdiye kadar öğrendiklerimiz sayesinde Python’la ufak tefek programlar yazabilecek düzeye geldik. Mesela öğrendiğimiz bilgiler yardımıyla bir önceki bölümde çok basit bir hesap makinesi yazabilmiştik. Yalnız o hesap makinesinde farkettiyseniz çok önemli bir eksiklik vardı. Hesap makinemizle hesap yaptıktan sonra programımız kapanıyor, yeni hesap yapabilmek için programı yeniden başlatmamız gerekiyordu.

Hesap makinesi programındaki sorun, örneğin, aşağıdaki program için de geçerlidir:

tuttuğum_sayı = 23

bilbakalım = int(input("Aklımdan bir sayı tuttum. Bil bakalım kaç tuttum? "))

if bilbakalım == tuttuğum_sayı: print("Tebrikler! Bildiniz...")

else: print("Ne yazık ki tuttuğum sayı bu değildi...") Burada tuttuğum_sayı adlı bir değişken belirledik. Bu değişkenin değeri 23. Kullanıcıdan tuttuğumuz sayıyı tahmin etmesini istiyoruz. Eğer kullanıcının verdiği cevap tuttuğum_sayı değişkeninin değeriyle aynıysa (yani 23 ise), ekrana ‘Tebrikler!…’ yazısı dökülecektir. Aksi halde ‘Ne yazık ki…’ cümlesi ekrana dökülecektir.

Bu program iyi, hoş, ama çok önemli bir eksiği var. Bu programı yalnızca bir kez kullanabiliyoruz. Yani kullanıcı yalnızca bir kez tahminde bulunabiliyor. Eğer kullanıcı bir kez daha tahminde bulunmak isterse programı yeniden çalıştırması gerekecek. Bunun hiç iyi bir yöntem olmadığı ortada. Halbuki yazdığımız bir program, ilk çalışmanın ardından kapanmasa, biz bu programı tekrar tekrar çalıştırabilsek, programımız sürekli olarak başa dönse ve program ancak biz istediğimizde kapansa ne iyi olurdu değil mi? Yani mesela yukarıdaki örnekte kullanıcı bir sayı tahmin ettikten sonra, eğer bu sayı bizim tuttuğumuz sayıyla aynı değilse, kullanıcıya tekrar tahmin etme fırsatı verebilsek çok hoş olurdu…

Yukarıda açıklamaya çalıştığımız süreç, yani bir sürecin tekrar tekrar devam etmesi Python’da ‘döngü’ (loop) olarak adlandırılır.

İşte bu bölümde, programlarımızın sürekli olarak çalışmasını nasıl sağlayabileceğimizi, yani programlarımızı bir döngü içine nasıl sokabileceğimizi öğreneceğiz.

Python’da programlarımızı tekrar tekrar çalıştırabilmek için döngü adı verilen bazı ifadelerden yararlanacağız.

Python’da iki tane döngü bulunur: while ve for

Dilerseniz işe while döngüsü ile başlayalım.

while Döngüsü İngilizce bir kelime olan while, Türkçede ‘… iken, … olduğu sürece’ gibi anlamlara gelir. Python’da while bir döngüdür. Bir önceki bölümde söylediğimiz gibi, döngüler sayesinde programlarımızın sürekli olarak çalışmasını sağlayabiliriz.

Bu bölümde Python’da while döngüsünün ne olduğunu ve ne işe yaradığını anlamaya çalışacağız. Öncelikle while döngüsünün temellerini kavrayarak işe başlayalım.

Basit bir while döngüsü kabaca şuna benzer:

a = 1

while a == 1: Burada a adlı bir değişken oluşturduk. Bu değişkenin değeri 1. Bir sonraki satırda ise while a == 1: gibi bir ifade yazdık. En başta da söylediğimiz gibi while kelimesi, ‘… iken, olduğu sürece’ gibi anlamlar taşıyor. Python programlama dilindeki anlamı da buna oldukça yakındır. Burada while a == 1 ifadesi programımıza şöyle bir anlam katıyor:

a değişkeninin değeri 1 olduğu sürece…

Gördüğünüz gibi cümlemiz henüz eksik. Yani belli ki bunun bir de devamı olacak. Ayrıca while ifadesinin sonundaki : işaretinden anladığımız gibi, bundan sonra gelecek satır girintili yazılacak. Devam edelim:

a = 1

while a == 1: print("bilgisayar çıldırdı!") Burada Python’a şu emri vermiş olduk:

a değişkeninin değeri 1 olduğu sürece, ekrana ‘bilgisayar çıldırdı!’ yazısını dök!

Bu programı çalıştırdığımızda Python verdiğimiz emre sadakatle uyacak ve a değişkeninin değeri 1 olduğu müddetçe de bilgisayarımızın ekranına ‘bilgisayar çıldırdı!’ yazısını dökecektir. Programımızın içinde a değişkeninin değeri 1 olduğu ve bu değişkenin değerini değiştirecek herhangi bir şey bulunmadığı için Python hiç sıkılmadan ekrana ‘bilgisayar çıldırdı!’ yazısını basmaya devam edecektir. Eğer siz durdurmazsanız bu durum sonsuza kadar devam edebilir. Bu çılgınlığa bir son vermek için klavyenizde Ctrl+C veya Ctrl+Z tuşlarına basarak programı durmaya zorlayabilirsiniz.

Burada programımızı sonsuz bir döngüye sokmuş olduk (infinite loop). Esasında sonsuz döngüler genellikle bir program hatasına işaret eder. Yani çoğu durumda programcının arzu ettiği şey bu değildir. O yüzden doğru yaklaşım, döngüye soktuğumuz programlarımızı durduracak bir ölçüt belirlemektir. Yani öyle bir kod yazmalıyız ki, a değişkeninin 1 olan değeri bir noktadan sonra artık 1 olmasın ve böylece o noktaya ulaşıldığında programımız dursun. Kullanıcının Ctrl+C tuşlarına basarak programı durdurmak zorunda kalması pek hoş olmuyor. Gelin isterseniz bu soyut ifadeleri biraz somutlaştıralım.

Öncelikle şu satırı yazarak işe başlıyoruz:

a = 1 Burada normal bir şekilde a değişkenine 1 değerini atadık. Şimdi devam ediyoruz:

a = 1

while a < 10: while ile verdiğimiz ilk örnekte while a == 1 gibi bir ifade kullanmıştık. Bu ifade;

a’nın değeri 1 olduğu müddetçe…

gibi bir anlama geliyordu.

while a < 10 ifadesi ise;

a’nın değeri 10’dan küçük olduğu müddetçe…

anlamına gelir. İşte burada programımızın sonsuz döngüye girmesini engelleyecek bir ölçüt koymuş olduk. Buna göre, a değişkeninin şimdiki değeri 1’dir. Biz, a’nın değeri 10’dan küçük olduğu müddetçe bir işlem yapacağız. Devam edelim:

a = 1

while a < 10: print("bilgisayar yine çıldırdı!") Ne oldu? İstediğimizi elde edemedik, değil mi? Programımız yine sonsuz döngüye girdi. Bu sonsuz döngüyü kırmak için Ctrl+C (veya Ctrl+Z)’ye basmamız gerekecek yine…

Sizce buradaki hata nereden kaynaklandı? Yani neyi eksik yaptık da programımız sonsuz döngüye girmekten kurtulamadı? Aslında bunun cevabı çok basit. Biz yukarıdaki kodları yazarak Python’a şu emri vermiş olduk:

a’nın değeri 10’dan küçük olduğu müddetçe ekrana ‘bilgisayar yine çıldırdı!’ yazısını bas!

a değişkeninin değeri 1. Yani 10’dan küçük. Dolayısıyla Python’ın ekrana o çıktıyı basmasını engelleyecek herhangi bir şey yok…

Şimdi bu problemi nasıl aşacağımızı görelim:

a = 1

while a < 10: a += 1 print("bilgisayar yine çıldırdı!") Burada a += 1 satırını ekledik kodlarımızın arasına. += işlecini anlatırken söylediğimiz gibi, bu satır, a değişkeninin değerine her defasında 1 ekliyor ve elde edilen sonucu tekrar a değişkenine atıyor. En sonunda a’nın değeri 10’a ulaşınca da, Python ekrana ‘bilgisayar yine çıldırdı!’ cümlesini yazmayı bırakıyor. Çünkü while döngüsü içinde belirttiğimiz ölçüte göre, programımızın devam edebilmesi için a değişkeninin değerinin 10’dan küçük olması gerekiyor. a’nın değeri 10’a ulaştığı anda bu ölçüt bozulacaktır. Gelin isterseniz bu kodları Python’ın nasıl algıladığına bir bakalım:

Python öncelikle a = 1 satırını görüyor ve a’nın değerini 1 yapıyor.

Daha sonra a’nın değeri 10’dan küçük olduğu müddetçe… (while a < 10) satırını görüyor.

Ardından a’nın değerini, 1 artırıyor (a += 1) ve a’nın değeri 2 oluyor.

a’nın değeri (yani 2) 10’dan küçük olduğu için Python ekrana ilgili çıktıyı veriyor.

İlk döngüyü bitiren Python başa dönüyor ve a’nın değerinin 2 olduğunu görüyor.

a’nın değerini yine 1 artırıyor ve a’yı 3 yapıyor.

a’nın değeri hâlâ 10’dan küçük olduğu için ekrana yine ilgili çıktıyı veriyor.

İkinci döngüyü de bitiren Python yine başa dönüyor ve a’nın değerinin 3 olduğunu görüyor.

Yukarıdaki adımları tekrar eden Python, a’nın değeri 9 olana kadar ilerlemeye devam ediyor.

a’nın değeri 9’a ulaştığında Python a’nın değerini bir kez daha artırınca bu değer 10’a ulaşıyor.

Python a’nın değerinin artık 10’dan küçük olmadığını görüyor ve programdan çıkıyor.

kaynak:https://python-istihza.yazbel.com/donguler.html