Ne Öğreneceğiz ?
- Döngü nedir, mantığı nasıl işler, Python'da nasıl kullanılır ?
while
fonksiyonubreak
komutucontinue
komutu
Gereksinimler
- Python(Github)
- Herhangi bir işletim sistemi
Zorluk Seviyesi
- Orta
Ders İçeriği
Döngü Nedir ?
Arkadaşlar öncelikle öğreneceğimiz bu fonksiyonun mantığını oturtmamız gerekir. Benim için programlama da en temel ve önemli şey döngülerdir. Eğer döngü mantığını tam oturtursanız kalan şeyler sadece ezber niteliğinde olacaktır. Döngü'yü Bir olayın istediğiniz sonuca varana kadar tekrar etmesi diye tanımlayabilirim.
Basit bir örnek üzerinde while
'ı anlamaya çalışalım.
Mesela programımız 1'den 10'a kadar saysın:
i = 1
while i<10
i = i+1
print(i)
Gördüğünüz gibi programımız 1'den başlayarak 1 artırarak ekrana yazdı:
Hatırlarsanız değişkenleri anlatırken size değişken ile ilgili son komut ne olursa değişken o komuta bağlı olur demiştim. Burada da işte o mantık devreye giriyor, while döngüsü içerisinde i
'yi i+1
'e eşitledik. Son komutumuz i+1
olduğundan artık i
'miz 2 ye eşit, bu şekilde döngü devam ediyor(başa sarıyor), peki nereye kadar ? while
koşulunun yanında belirttiğimiz yere yani i<10
koşulu devam edene kadar.
Kısacası biz programa dedikki; 1'den başlayarak 10'dan küçük sayıları yaz.
Herhangi bir hatada veya i'nin artırımı yapılmadığı gibi durumlarda, yani koşulun sürekli saglandığı durumlarda program sonsuz döngüye girebilir, bu çalışma ortamınızın veya programınızın kilitlenmesine neden olabilir.
Size while içerisinde kullanılan bir komuttan bahsedeyim: break
break
komutu döngüyü sonlandırmaya yarar. Mesela yukarıda ki örneğin aynısını yazalım fakat i değeri 7 sayısına ulaşınca program dursun diyelim;
i = 1
while i<10
i = i+1
if i==7:
break
print(i)
Gördüğünüz gibi 1'den başladı, 7'ye ulaşınca break
komutu devreye girdi ve program durdu.
Bir de continue
komutumuz var, bu da verdiğimiz koşulun olması durumunda döngüyü direk başa sarıyor. Şöyle ki, diyelim bizim 5 tane koşulumuz var while döngüsünün altında. 3. koşulumuzun sağlanması durumunda başa sarmasını istiyoruz döngünün, burada işte continue
komutu devreye giriyor. Bu komutu da kullanabileceğimiz toplu bir örnek yapalım şimdi:
while(True):
sayi1 = int(input("Bir sayı girin:"))
if sayi1 <5:
print("5den küçük")
break
elif sayi1>5:
print("5den büyük")
break
else:
print("lütfen pozitif sayı girin")
continue
Çalıştıracak olduğumuzda;
Gördüğünüz gibi 15 sayısını girdim ve program 5'den büyük koşuluna uyarak istediğimiz yazıyı yazdı ve daha sonra döngü break
komutu ile sonlandı. Peki bir de continue
komutu ile başa saracak mı bakalım, bunun için negatif değer giriyoruz;
Bakın yine 5'den küçük sonucunu verdi, halbu ki biz continue
ile tekrar etmesini bekliyorduk programın. Peki neden böyle oldu derseniz, hatırlarsanız değişkenler için son komut neyse o hali alır demiştik, hatta yukarda da bahsettim. Döngülerde ise bu durum tam tersidir, yani koşulu ilk sağlayan durum döngümüzün sonucudur, isterseniz birinci ve sonuncu satırın yerini değiştirerek bunu test edelim, o halde programımızın continue
ile tekrar etmesi gerekir:
Gördüğünüz gibi, program kendini tekrar etti. Döngü mantığını ve while
'ı, break
ve continue
'yi anlamış olduk. Şimdi daha güzel bir örnek yapalım tüm bu öğrendiklerimiz ile.
Çok klasik olacak ama artık kullanıcı giriş programı yazmanın zamanı geldi :) Bir admin panel girişi yazalım mesela arkadaşlar tüm öğrendiklerimizi kullanarak.
- Arkadaşlar şimdi düşündüğümüzde, bir kullanıcı girişine (kullanıcı adı, şifre) kaç farklı giriş(ihtimal) olabilir ?
- Kullanıcı adı doğru şifre yanlış, şifre doğru kullanıcı adı yanlış, ikisi de yanlış
- Kullanıcı adı veya şifre veya ikisi de boş
- Kullanıcı adı ve şifre doğru
Bu ihtimalleri göz önünde bulunarak ben şöyle yazmak istiyorum;
- Kullanıcı adı ve şifrenin doğru olduğu ihtimali if ile yazdırmak
- Kullanıcı adı veya şifreden herhangi birinin yanlış olması durumu (boşta olabilir)
Yani iki duruma düşürdüm tüm bu olayları, koda döktüğümdeif
kullanıcı adı ve şifre doğru veyaelse
diğer tüm ihtimaller (doğru olmayan tüm ihtimaller benim için yanlıştır) veyaelif
kullanıcı adı veya şifrenin yanlış olması (yine bu koşulda da geriye başka ihtimal kalmıyor)
Bakalım:
ausername = "cryptoadamc" asifre = "utopian" while(True): username = input("Kullanıcı adı: ") sifre = input("Şifre: ") if username==ausername and sifre==asifre: print("Giriş başarılı") break elif username!=ausername or sifre!=asifre: print("Kullanıcı adı veya şifre hatalı, tekrar deneyin") continue
Çalıştırdığımızda:
Gördüğünüz gibi ilk deneme de yanlış girdim, ikinci de boş girdim, üçüncü de doğru girdim.
Yukarıda kurduğumuz ikinci mantığı deneyelim (else
ile):
ausername = "cryptoadamc"
asifre = "utopian"
while(True):
username = input("Kullanıcı adı: ")
sifre = input("Şifre: ")
if username==ausername and sifre==asifre:
print("Giriş başarılı")
break
else:
print("Kullanıcı adı veya şifre hatalı, tekrar deneyin")
continue
Çalıştıralım:
Gördüğünüz gibi, yine aynı şekilde çalıştı. Yani programımız şunu yaptı;
Kullanıcı adı ve şifreler zaten bizim tarafımızdan belirlenmiş (cryptoadamc,utopian), while
döngüsü altında bizden kullanıcı adı ve şifre girmemizi istedi, girdik, ilk if
koşuluna baktı eğer belirlenen kullanıcı adı ve şifre ile eşleşmediyse diğer koşula geçti, o koşulumuz else
veya elif
baktı zaten ilk koşul ile eşleşmeyen bu koşul ile eşleşmek zorunda çünkü başka bir ihtimal yok, print
ile istediğimiz metni yazdırdı ve continue
komutu ile döngüyü başa aldı, tekrar kullanıcı adı ve şifre istedi bizden. Böylece yanlış eşleşme durumunda giriş yapmayıp, doğru eşleşme durumunda başarı ile giriş yapmış olduk.
Bu örneğimiz ile dersimizin de sonuna geldik, tekrar etmeyi ve alıştırmalar yapmayı unutmayın.
Selametle..
Önce ki Dersler
- Python 3 - Giriş ve Programlama Dili Mantığı | Ders 1
- Python Değişkenler ve Listeler (Diziler) | Ders 2
Posted on Utopian.io - Rewarding Open Source Contributors
Your contribution cannot be approved because it does not follow the Utopian Rules.
You can contact us on Discord.
[utopian-moderator]