Python101 – 10’a kadar say

Döngüler İlk kontrol yapımıza geçiyoruz.

Döngüler

İlk kontrol yapımıza geçiyoruz. Normalde bilgisayar işleme ilk satırla başlar ve oradan aşağıya doğru diğer satırları işler. Kontrol yapıları, deyimlerin yürütüleceği sırayı değiştirir veya belirli bir deyimin çalıştırılıp çalıştırılmayacağına karar verir. While kontrol yapısını kullanan bir programın kaynağına aşağıda bakalım:

a = 0            # İlk olarak, değişkenin başlangıç değerini 0 olarak ayarla.
while a < 10:    # a değişkeninin değeri 10'dan küçük olduğu sürece aşağıdakileri yap:
    a = a + 1    # a değişkeninin değerini her seferinde 1 artır: a = a + 1! 
    print(a)     # a değişkeninin şuanki değerini yazdır.
                 # a değişkeninin değeri 9'a eşit olana kadar YİNELE!?  
                 
                 # NOT:
                 # a değişkeninin değeri her yinelemede veya her 'while' döngüsünde 1 artar.
                 # Ör. a = 1 sonra a = 2 sonra a = 3 vb. ta ki a = 9 olana kadar...
                 # kod, a'ya 1 ekler (şimdi a = 10), sonucu yazdırır ve ardından 'while' dönüsünden çıkarak tamamlanır. 
                 #              --
                 # While a < 10: |
                 #     a = a + 1 |<--[ while döngü bloğu]
                 #     print (a) |
                 #              --

Ve işte son derece heyecan verici çıktı:

1
2
3
4
5
6
7
8
9
10

Peki program ne yapıyor? Önce a = 0 satırını görür ve a‘yı sıfıra eşitler. Sonra while a<10: satırını görür ve a’nın 10’dan küçük olup olmadığını (a < 10) kontrol eder. Bilgisayar bu deyimi ilk kez gördüğünde a sıfırdır, bu nedenle 10’dan azdır. Başka bir deyişle, ondan az olduğu sürece, bilgisayar sekmeli ifadeleri çalıştırır. Sonunda a’yı ona eşit hale getirir (tekrar tekrar bir ekleyerek) ve a < 10 ifadesi artık doğru değildir. Bu noktaya ulaşan program girintili satırları çalıştırmayı durdurur. 

Her zaman while ifade satırının sonuna iki nokta üst üste “:” koymayı unutmayın!

 while kullanımına başka bir örnek:

a = 1
s = 0
print('Toplama eklenecek Sayıları Girin.')
print('Çıkmak için 0 girin.')
while a != 0:                           
    print('Geçerli Toplam:', s)            
    a = float(input('Sayı? '))        
    s = s + a                            
print('Toplam =', s)
Toplama eklenecek Sayıları Girin.
Çıkmak için 0 girin.
Geçerli Toplam: 0
Sayı? 200
Geçerli Toplam: 200.0
Sayı? -15.25
Geçerli Toplam: 184.75
Sayı? -151.85
Geçerli Toplam: 32.9
Sayı? 10.00
Geçerli Toplam: 42.9
Sayı? 0
Toplam = 42.9

print('Total Sum =', s) deyiminin sadece son çalıştığına dikkat edin. while deyimi yalnızca girintili satırları etkiler. != ifadesi eşit değildir anlamına gelir, bu nedenle while a != 0: ifadesi sıfır olmadığı sürece aşağıdaki girintili deyimleri çalıştır anlamına gelir. 

a‘nın kayan nokta sayısı olduğunu ve tüm kayan nokta sayılarının doğru bir şekilde temsil edilemeyeceğine dikkat edin. Bu nedenle != ifadesini kullanmak bazen işe yaramayabilir. Bunu test etmek için etkileşimli modda 1.1 yazmayı deneyebilirsiniz.

Sonsuz döngüler veya Hiç Bitmeyen Döngü

Artık while döngülerimiz olduğuna göre, sonsuza kadar çalışan programlar yazabiliriz. Bunu yapmanın kolay bir yolu, aşağıdakine benzer bir program yazmaktır:

while 1 == 1:
   print("Yardım edin, bir döngünün içindeyim.")

“==” işleci, işlecin iki tarafındaki ifadelerin eşitliğini test etmek için kullanılır, tıpkı “<” işlecinin daha önce “küçüktür” için kullanıldığı gibi (bir sonraki bölümdeki tüm karşılaştırma işleçlerinin tam bir listesine bakacağız).

Bu program evren yok olana kadar çalışır ve her döngüde “Yardım edin, bir döngünün içindeyim.” yazdırır. Çünkü 1 sonsuza kadar 1’e eşit olacaktır. Ya da bu döngüyü elle durdurabilirsiniz. Döngüyü durdurmanın yolu, Kontrol (veya Ctrl) ve C’ye (harf) aynı anda basmaktır. Bu programı öldürür. (Not: bazen Kontrol-C’den sonra enter tuşuna basmanız gerekir.) Bazı sistemlerde bu da işlemez, çalışan işlevi öldürmek gerekir — bu yüzden bu döngülerden kaçının! 

Örnekler

Fibonacci dizisi

Fibonacci-method1.py

# Bu program Fibonacci dizisini hesaplar
a = 0
b = 1
count = 0
max_count = 20

while count < max_count:
    count = count + 1
    print(a, end=" ")  # print işlevinin yeni bir satır oluşturmasını engelleyen end=" " argümanına dikkat edin.
    old_a = a    # a'yı değiştirdiğimiz için takip etmeliyiz.
    a = b
    b = old_a + b
print()  # yeni bir satır bastırır

Çıktı:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

print işlevindeki ek end=" " değişkeni nedeniyle çıktının tek bir satırda olduğunu unutmayın. 

Fibonacci-method2.py

# Fibonacci dizisini hesaplamak için basitleştirilmiş ve daha hızlı yöntem
a = 0
b = 1
count = 0
max_count = 10

while count < max_count:
    count = count + 1
    print(a, b, end=" ")  # end=" " argümanına dikkat edin
    a = a + b    
    b = a + b
print()  # yeni bir satır bastırır

Çıktı:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Fibonacci-method3.py

a = 0
b = 1
count = 0
maxcount = 20

#döngü başlatıldıktan sonra döngü içinde kalıyoruz
while count < maxcount:
    count += 1
    olda = a
    a = a + b
    b = olda
    print(olda,end=" ")
print()

Çıktı:

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181

Parola girin

Password.py

# Parola girilene kadar bekler. Parola girmeden çıkmak için Kontrol-C'yi kullanın

#While döngüsünün en az bir kez çalışması için parola girilmesi gerektiğini unutmayın.

password = str()

# != ifadesi eşit değildir anlamına gelir 
while password != "unicorn":
    password = input("Password: ")
print("Hoşgeldiniz")

Örnek çalıştırma:

Password: auo
Password: y22
Password: password
Password: open sesame
Password: unicorn
Hoşgeldiniz

Alıştırmalar

Kullanıcıdan kullanıcı adı ve parolası isteyen bir program yazın. Daha sonra “kilit” yazdıklarında, programın kilidini açmak için ad ve şifrelerini yazmalarını istesin.

Çözüm:

name = input("Kullanıcı adınız: ")
password = input("Şifreniz: ")
print("Bilgisayarı açmak için kilit yazın.")
command = None
input1 = None
input2 = None
while command != "kilit":
    command = input("Komut nedir: ")
while input1 != name:
    input1 = input("Kullanıcı adı: ")
while input2 != password:
    input2 = input("Şifre: ")
print("Sisteme hoşgeldin!")

Programın sürekli çalışmasını istiyorsanız,tüm kodun etrafına bir while 1 == 1: döngüsü eklemeniz yeterlidir. Bunu kodun üstüne eklediğinizde programın geri kalanını girintilemeniz gerekir, ancak endişelenmeyin, her satır için manuel olarak yapmanıza gerek yok! Girintili istediğiniz her şeyi seçin ve piton penceresinin üst çubuğundaki “Biçim” altındaki “Girinti” ye tıklayın. 

Bunu programı yazmanın başka bir yolu da şu olabilir:

name = input('İsim belirleyin: ')
password = input('Şifre belirleyin: ')
while 1 == 1:
    nameguess=""
    passwordguess=""
    key=""
    while (nameguess != name) or (passwordguess != password):
        nameguess = input('İsim? ')
        passwordguess = input('Şifre? ')
    print("Merhaba,", name, ". kilitlemek için kilit yazın.")
    while key != "lock":
        key = input("")

Döngü içerisindeki henüz görmediğimiz or ifadesine dikkat edin (nameguess != name) or (passwordguess != password). Belki ne işe yaradığına dair bir fikriniz vardır?

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Python101, Kılavuz, Python

konular

Okumaya devam et!
Sonraki Yazı: Python101 – Kararlar

If deyimi Her zaman olduğu gibi, yeni bir bölüme başlarken bir ısınma alıştırmasının iyi olduğunu düşünüyoruz.

Python101 – Programlama Bilmeyenler için Python

Daha önce hiç programlama görmedim, Python öğrenebilir miyim? Bu eğitimde ilerledikçe programlamanın nasıl olduğunu Python üzerinden öğretmeye çalışacağız.

Python’da bir nesnenin yinelenebilir olduğu nasıl anlaşılır?

Elimde bir obje olsun ve bu objenin yinelenebilir olup olmadığını merak ettiğimi varsayalım.

Python’da bir dosyaya yazı nasıl eklenir?

Var olan dosyanın üzerine yazmak yerine dosyaya ekleme nasıl yapılır? Bunun en basit yöntemi açma modunu “a” veya “ab” seçerek dosyayı ekleme modunda açmaktır.

Python’da yield ne işe yarar?

Python’da yield kelimesinin ne işe yaradığını anlamak için önce generatorlerin ne olduğunu anlamalıyız.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.