PYTHON DÖNGÜLER
Bir çok yazılım dilinde olduğu gibi Python’da da döngüler bulunmaktadır. Döngüler bir işi belirlenen sayıda tekrar edilmesini sağlayan sistemlerdir. Örneğin yazdığımız programlar istenilen işi yaptıktan sonra kapanıyor. Döngüler sayesinde tekrar başa dönmesini sağlayabiliriz. Yine aynı zamanda veritabanından gelen verileri döngüye sokarak ekrana basabiliriz. Aynı zamanda sonsuz bir şekilde döngü oluşturabilir.
Öncelikle ekrana 1’den ona kadar yazdırma döngüsü oluşturalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | x=1 while x<=10: #Döngü için şart belirliyoruz. Belirtilmezse yani sadece True yazılırsa sonsuz döngü olur print("Döngü {}\n".format(x)) #ekrana kaçıncıkez döndüğünü söylüyoruz. x+=1 #her döndüğünde x'i bir artırıyoruz. #Döngü 1 # #Döngü 2 # #Döngü 3 # #Döngü 4 # #Döngü 5 # #Döngü 6 # #Döngü 7 # #Döngü 8 # #Döngü 9 # #Döngü 10 ###################Ekran Çıktısı########################### |
Bir önceki örnektede anlaşılacağı gibi öncelikle döngünün sayılabilmesi ve bir sonunun olabilmesi için bir sayaç
oluşturuyoruz. Daha sonra a<=10 a 10'dan küçükse ve eşitse şartımızı while'de belirtiyoruz. Şart sağlandığı
sürece döngümüz devam edecektir. Döngü içersinde kullandığımız x+=1 ifadesi ise döngü her tamamlandığında bir kez
artırılması istenmektedir. Döngü içersidindeki print(“Döngü {}\n”.format(x))
ise konsola bilgi
basmak için kullanıyoruz.
Döngü kabiliyetimizi biraz daha geliştirelim ve 1’den 10’lara kadar çarpım toplosu yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | x=1 while x<=10: y=1 while y<=10: print("{} x {} = {}\n".format(x,y,(x*y))) y+=1 x+=1 ###################Ekran Çıktısı########################### #1 x 1 = 1 # #1 x 2 = 2 # #1 x 3 = 3 # #1 x 4 = 4 # #1 x 5 = 5 # #1 x 6 = 6 # #1 x 7 = 7 # #1 x 8 = 8 # #1 x 9 = 9 # #1 x 10 = 10 ###################Ekran Çıktısı########################### |
Örneğimizde yukarıdan aşağıya doğru çarpım taplosunu yazdırdık. Tabi burada tablo yukardan aşaya doğuru listelendi.
Aşağıdaki örnekte ise konsolda çarpım tablosunu tam olarak görüntüledik.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | data1="_"*80+"\n"+" "*33+"ÇARPIM TALOSU"+" "*33+"\n"+"_"*80+"\n" data2="" x=1 while x<=10: y=1 data1+="|" data2+="|" while y<=10: if y<=5: data1+="{} x {} = {} \t|".format(y,x,(x*y)) else: data2+="{} x {} = {} \t|".format(y,x,(x*y)) y+=1 data1+="\n" data2+="\n" x+=1 print(data1+"-"*80+"\n"+data2+"_"*80) ###################Ekran Çıktısı########################### #________________________________________________________________________________ # ÇARPIM TALOSU #________________________________________________________________________________ #|1 x 1 = 1 |2 x 1 = 2 |3 x 1 = 3 |4 x 1 = 4 |5 x 1 = 5 | #|1 x 2 = 2 |2 x 2 = 4 |3 x 2 = 6 |4 x 2 = 8 |5 x 2 = 10 | #|1 x 3 = 3 |2 x 3 = 6 |3 x 3 = 9 |4 x 3 = 12 |5 x 3 = 15 | #|1 x 4 = 4 |2 x 4 = 8 |3 x 4 = 12 |4 x 4 = 16 |5 x 4 = 20 | #|1 x 5 = 5 |2 x 5 = 10 |3 x 5 = 15 |4 x 5 = 20 |5 x 5 = 25 | #|1 x 6 = 6 |2 x 6 = 12 |3 x 6 = 18 |4 x 6 = 24 |5 x 6 = 30 | #|1 x 7 = 7 |2 x 7 = 14 |3 x 7 = 21 |4 x 7 = 28 |5 x 7 = 35 | #|1 x 8 = 8 |2 x 8 = 16 |3 x 8 = 24 |4 x 8 = 32 |5 x 8 = 40 | #|1 x 9 = 9 |2 x 9 = 18 |3 x 9 = 27 |4 x 9 = 36 |5 x 9 = 45 | #|1 x 10 = 10 |2 x 10 = 20 |3 x 10 = 30 |4 x 10 = 40 |5 x 10 = 50 | #-------------------------------------------------------------------------------- #|6 x 1 = 6 |7 x 1 = 7 |8 x 1 = 8 |9 x 1 = 9 |10 x 1 = 10 | #|6 x 2 = 12 |7 x 2 = 14 |8 x 2 = 16 |9 x 2 = 18 |10 x 2 = 20 | #|6 x 3 = 18 |7 x 3 = 21 |8 x 3 = 24 |9 x 3 = 27 |10 x 3 = 30 | #|6 x 4 = 24 |7 x 4 = 28 |8 x 4 = 32 |9 x 4 = 36 |10 x 4 = 40 | #|6 x 5 = 30 |7 x 5 = 35 |8 x 5 = 40 |9 x 5 = 45 |10 x 5 = 50 | #|6 x 6 = 36 |7 x 6 = 42 |8 x 6 = 48 |9 x 6 = 54 |10 x 6 = 60 | #|6 x 7 = 42 |7 x 7 = 49 |8 x 7 = 56 |9 x 7 = 63 |10 x 7 = 70 | #|6 x 8 = 48 |7 x 8 = 56 |8 x 8 = 64 |9 x 8 = 72 |10 x 8 = 80 | #|6 x 9 = 54 |7 x 9 = 63 |8 x 9 = 72 |9 x 9 = 81 |10 x 9 = 90 | #|6 x 10 = 60 |7 x 10 = 70 |8 x 10 = 80 |9 x 10 = 90 |10 x 10 = 100 | #________________________________________________________________________________ ###################Ekran Çıktısı########################### |
Python For Döngüsü
For döngüleride aynı while gibi yapıya sahiptir burada şarttan çık verilen bir değerin döngüsel olarak işlme sokulması durumu tabidir. Bir örnek ile gösterelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | sozcuk="Merhaba Dünya" for a in sozcuk: print(a+"\n") ###################Ekran Çıktısı########################### #M # #e # #r # #h # #a # #b # #a # # # #D # #ü # #n # #y # #a ###################Ekran Çıktısı########################### |
Yukarıdaki program içerisine değer atmış olduğumuz değişkendeki sözcükleri alt alta yazdımaya
yaramaktadır. sozcuk="Merhaba Dünya"
bu komutta değişken içersine değer atamsı yapmıştır.
for a in sozcuk:
for ile dögüyü başlatmış ve sozcuk değişkeni içersindeki karakter kadar dönmesini
sağlamaktadır. Her döngü başlamadan index sırasına göre socukten bir harf alınıp a değişkenin içerisine atanmaktadır.
print(a+"\n")
ilede harfler alt alta yazdırılmaktadır.
Örnekler ile konuyu pekiştirelim şimdi sadece karater girilmesi gereken bir alan rakam girildiğide hata mesajı vermesini istediğimiz bir program yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | rakamlar="1234567890" gelenDeger=input("Lütfen bir adınızı giriniz : ") for gelenHarf in gelenDeger: if gelenHarf in rakamlar: print("Kullanıcı adına rakam giremezsiniz.") break; ###################Ekran Çıktısı########################### #Lütfen bir adınızı giriniz : çağlar 123 #Kullanıcı adına rakam giremezsiniz. ###################Ekran Çıktısı########################### |
Yukarıdaki örnekte inputtan bir kullanıcı adının girilmesi isteniyor. Daha sonra girilen karater kadar dönecek
olan for gelenHarf in gelenDeger
komut giriliyor. Daha sonra for içersinde if gelenHarf in rakamlar:
komut ile girinlen değer içersinde bir rakam olup olmadığı tek tek kontrol ediliyor. Eğer bulunursa break;
komudu ile döngü sonlandırılarak ekrana mesaj basılıyor.
Yukarıdaki döngüyü sonsuz bir şekilde yapmak istersek aşağıdaki gibi yapılıdır.
1 2 3 4 5 6 7 8 9 10 11 12 13 | rakamlar="1234567890" while True: gelenDeger=input("Lütfen bir adınızı giriniz : ") for gelenHarf in gelenDeger: if gelenHarf in rakamlar: print("Kullanıcı adına rakam giremezsiniz.") break; ###################Ekran Çıktısı########################### #Lütfen bir adınızı giriniz : çağlar #Lütfen bir adınızı giriniz : çağlar123 #Kullanıcı adına rakam giremezsiniz. #Lütfen bir adınızı giriniz : ###################Ekran Çıktısı########################### |
Python range() Kullanımı
Range fonksiyonu Python dilinde bilirli saylar arasındaki rakamları sıralamak için kullanılır. Range fonksiyonunu aşağıda yapacağımız örnek ile daha iyi anlayacağız.
1 2 3 4 5 6 7 8 9 10 11 12 | for sayi in range(0,5): print(sayi) ###################Ekran Çıktısı########################### #0 #1 #2 #3 #4 ###################Ekran Çıktısı########################### |
Kodlardan ve çıktıdan da anlaşılacağı gibi 0 ile 5 arasında (5 dahil değil) sayıları listeledik. Range fonsiyonunda ilk parametreye başlangıç değeri girilirken ikinci parametreye ise bitiş değeri girilmektedir.
Range fonksiyonunda tek parametre kullanıldığında bu sadece bitiş değeri verildiği anlamına gelmektedir. Yani sıralama 0 dan başlayarak bitiş değerine kadar devam edecektir.
Yine range(0,20,2)
fonsiyonuna üç parametre girildiğinde ise sıralamanın son girilen parametredeki
değer kadar ki aralıklarla devam edeceği anlamına gelmektedir. Bunu aşağıdaki örnekle pekiştirelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | for sayi in range(0,20,2): print(sayi) ###################Ekran Çıktısı########################### #0 #2 #4 #6 #8 #10 #12 #14 #16 #18 ###################Ekran Çıktısı########################### |
Yine range(20,0,-2)
şekilinde bir range fonksiyonu tanımlamasında ise 20 den sıfıra geriye doğru
sıralamasını istediğimiz anlamına gelmektedir. Yine farklı bir kullanımı aşağıdaki örneğimizde görebilirizp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | for sayi in range(0,20,2): print(sayi) ###################Ekran Çıktısı########################### #0 #2 #4 #6 #8 #10 #12 #14 #16 #18 ###################Ekran Çıktısı########################### |
Yine range fonskiyonun farklı yazımlarını aşağıda görebiliriz.
1 2 3 4 5 6 7 8 9 10 11 | print(*range(10,0,-3),sep=" - ") ###################Ekran Çıktısı########################### #10 - 7 - 4 - 1 ###################Ekran Çıktısı########################### print(*range(10),sep=" ") ###################Ekran Çıktısı########################### #0 1 2 3 4 5 6 7 8 9 ###################Ekran Çıktısı########################### |
Python pass Kullanımı
Pass fonsiyonu programlama esnasında komut satılarından bazılarında işlem yapma gereksinimi duymayabiliriz
ama yinde programın sona ermesi gerektiği için burda pass()
fonksiyonu kullanılmaktadır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | a=0 while a<10: if a==5: pass else: print(a) a+=1 ###################Ekran Çıktısı########################### #0 #1 #2 #3 #4 #6 #7 #8 #9 ###################Ekran Çıktısı########################### |
Yukarıdaki örnektede anlaşılacağı gibi değişkenlerden sayacı temsil eden a değişkeni 5 olduğunda ilgili if bloğunun içerisine giriyor ve orada pass fonksiyonu çalışıyor ve işlem yapmadan çıkıyor.
Python break Kullanımı
Döngü esnasında belirlenen bir şart sağlandığında döngüden çıkılmasını sağlan fonsiyondur. Bu fonsiyon sonsuz döngülerde ve istisnai durumlarda çok işe yaramaktadır. Python break() fonksiyonunu aşağıda bir örnek ile açıklayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | while True: sifre=input("Lütfen kullanıcı adınızı giriniz : ") if sifre=="merhaba": print("Hoş geldiniz.") break; ###################Ekran Çıktısı########################### #Lütfen kullanıcı adınızı giriniz : asf #Lütfen kullanıcı adınızı giriniz : #Lütfen kullanıcı adınızı giriniz : df #Lütfen kullanıcı adınızı giriniz : sf #Lütfen kullanıcı adınızı giriniz : #Lütfen kullanıcı adınızı giriniz : merhaba #Hoş geldiniz. ###################Ekran Çıktısı########################### |
Yukardaki örnekte anlaşılacağı gibi sonsuz bir döngü oluşturyoruz ve kullanıcıdan şifre girmesini istiyoruz.
Girilen şifre doğru ise break
fonsiyonu ile döngüden çıkıp “Hoş Geldiniz” yazdırıyoruz. Eğer şifre
hatalıysa kullanıcıdan kullanıcı adını tekrar girmesini isteyerek döngüye devam ettiriyoruz.
Python continue Kullanımı
Pythonda döngü esnasında continue fonsiyonu kullanıldığıda, döngü o esnada sayılmaz ve continue sonrasındaki
kodlar çalıştırılmaz. Tabi sayac artırımı continue komutundan önce yapılmalıdır ki döngü kısır bir hal almasın.
Bunu bir örneke açıklayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | a=0 while a<10: a+=1 if a==5: continue print(a) ###################Ekran Çıktısı########################### #1 #2 #3 #4 #6 #7 #8 #9 #10 ###################Ekran Çıktısı########################### |
Yukarıdaki örnekte döngü sayacı 5 olduğunda continue komutu çalışıyor ve tekrar döngü tamamlanmış sayılarak tekrar başa dönülüyor
Python else Kullanımı
Else deyimini if-else blok yasından kullanmıştık. Burda şartın sağlanmadı durumlarda çalışıyordu.Dögülerde ise dögünün sonunda çalışıyor. Tek başına kullanıldığında anlam ifade etmiyor aşağıdak örnekte buna bakalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | sifre=input("Lütfen şifrenizi giriniz : ") ozelKarakter="*/-+.,?=)(/&%+^'!" for tara in sifre : if tara in ozelKarakter: print("Özel Karakter Kullanamazsınız") else: print("Şifre onaylandı.") ###################Ekran Çıktısı########################### #Lütfen şifrenizi giriniz : çağ* #Özel Karakter Kullanamazsınız #Şifre onaylandı. ###################Ekran Çıktısı########################### |
Yukarıdaki uygulamada şifrede özel karakter kullanılmasına rağmen şifreyi onayladı. Şimdi aşağıdaki uygulamada break kullanarak döngülerde else kullanımının amacını tam olarak yerine getirmiş olacağız.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | sifre=input("Lütfen şifrenizi giriniz : ") ozelKarakter="*/-+.,?=)(/&%+^'!" for tara in sifre : if tara in ozelKarakter: print("Özel Karakter Kullanamazsınız") break else: print("Şifre onaylandı.") ###################Ekran Çıktısı########################### #Lütfen şifrenizi giriniz : çağ* #Özel Karakter Kullanamazsınız ###################Ekran Çıktısı########################### |
Yukarıdaki örnekte özel karakter bulunduğunda break komutuyle dögüden çıktık ve döngüdeki else bloğundaki şifre onay mesajı çalışmadı.
Evet arkadaşlar Pythonda döngüler konusunda anlatacaklarım bu kadar. Öreneklemleri kendiniz uygulayarak ve değişiklikler yapara kavrayacağınıza eminim. Başarılar dilerim.