Python While dongusu While: Yazdığımız kodları tekrar tekrar dondurmemizi sağlayan, programımıza sureklilik katan gercekten onemli araclardan birisidir. Kullanım şekli; Kod:
while koşul: argumanlar
Yeni başlayanların bir kısmı while dongusunu cozemiyor olabilirler, başta bende boyledim fakat gorunduğu gibi de karmaşık değil. Orneğin programımız surekli calışsın. Biliyoruz ki bilgisayarlar 0 1 ile calışıyor, bu da programlamalarda true false olarak gecer.(True: 1, False: 0) değerini taşır. Şimdi True ve False kullanarak ve 0 1 kullanarak bir while dongusu yazalım. Kod:
a = True #1 while a: #2 sayi = raw_input("Sayi girin: ") if sayi == 1: print "Secim dogru" else: a = False #3
N: Biliyorsunuz python'da # yorum satırlarıdır. Onceki derslere baktım if, raw_input, print filan anlatılmış. Diğer eğitmenlerin derslerinden bunlara ulaşabilrisiniz, bu yuzden tekrar tekrar anlatmadım. Acıklama satırlarına verdiğim numaralara gore acıklamaya başlayayım. #1 - a diye bir değişken tanımladım ve değerini True olarak atadım. #2 - Buraya dikkat, programlama dili bunu bu şekil goruyor. Genel mantık: program calıştığında calışıyorsa bilgisayar bunu 1 (True) calışmıyorsa 0 (False) olarak gorecektir. Bi programı calıştırmazsak kodları kafasına gore yapamıyacağı icin bur bir celişkiye duşebilirsiniz. Yavaş yavaş mantığını anlayacaksınız. Bu dongunun koşulu a değişkenimizin değeri True idi. Bu yuzden program calıştığında paso dongu icindeki işlemleri gercekleştiriecek taaki #3. acıklamaya gelene dek. #3 - Burda ise, girien secimin aramadığımız secimlerden biri olduğunu savunarak, a değişkenimizin değerini False yaptık yani a değişkenimiz artık False (0) bu durumda dongu zinciri kırılacaktır. Aynı orneği integer değer kullanarak yapalım; Kod:
a = 1 #1 while a: #2 sayi = raw_input("Sayi girin: ") if sayi == 1: print "Secim dogru" else: a += 1 #3
#1 - a diye bir değişken tanımladım ve değerini 1 olarak atadım. #2 - Yukarda yaptığım işlemin aynısını integer değer olarak while koşul biciminde bağladım. #3 - Bu kısım şu şekilde de yazılabilir(a = a + 1), fark etmez ikiside aynı şey. Yaptığımız olay şu şekilde de olsa yine dongu zinciri kırılacaktı. Bİliyoruz ki False(0) True(1) peki ben değerimi 0 veya 1 den buyuk yaptığımda zincir kırılacakır. İyi tamam 0 ı anladım neden 1 den buyuk? dediğinizi duyar gibiyim. Bunun nedeni ise şu bilgisayar 0 ve 1 leri okuyabiliyor. Bu yuzden 0 ve 1 den farklı bir değer atandığında tanımayacaktır. Bir tane daha ornek; Kod:
a = 0 while a