Python'da Koşullu İfadeler ve Döngüler

Bu bölüm, karar verme yapıları hakkında bilgi edinmenize yardımcı olacaktır. Döngüler kullanarak, tekrarlanan görevleri nasıl gerçekleştireceğinizi öğreneceksiniz. Döngüler üzerinde daha fazla kontrol sahibi olabilmeniz için break, continue ve pass ifadelerini öğreneceksiniz.


Hayatımızın her anında plan yapmaktayız. Bunu yaparsam, o zaman geliştirici olacağım. Sınava hazırlanırsam başarılı olurum. Python'u öğrenirsem, projeler yapabilirim. Buna benzer belli bir koşula dayanarak hareket ettiğimiz birçok örnek var. Bazı durumlarda bir de B planımız olur. Örneğin, eğer mülakatta başarılı olursam, o zaman bu işe başlarım, yoksa başka bir işe bakacağım. Aynı şey programlamada da olur; mantığın eylemi duruma bağlıdır. Koşullu ifadeyi programlamada uygulamak için "if, else" yapısını kullanırız. Bir adımı birden çok kez tekrarlamak için döngüler kullanırız. Bu bölümde, Python'un desteklediği kontrol ifadeleri ve döngüler hakkında bilgi edineceğiz.

Koşullu İfade

Mantıkta bir koşul beklentisi olduğunda kontrol ifadelerini kullanırız. Kontrol ifadeleri bir programcının tüm yollar arasında belirli bir yol seçmesine izin verir. Aşağıdaki görsel kontrol ifadesinin temel bir örneğini göstermektedir. A > B ifadesi doğruysa, “TRUE” yolunu alır, aksi takdirde “FALSE” yolunu alır:

İf İfadesi

İf ifadesi aracılığıyla bir program kodun bir bölümüne dallanabilir veya atlanabilir.

if condition :
    sequence of statements-1

Koşul None, 0, False ise if blogu altındaki kodlar yürütülmez. Koşul string bir değer ise koşul True olarak değerlendirileceği için if blogu içindeki kodlar yürütülür.

Örnek;
print ("Hoşgeldiniz." )
Cevap = input("Lütfen adınızı giriniz \t")
if Cevap == "Erhan":
    print ("..............................")
    print ("Hoşgeldin Erhan."

input() fonksiyonu konsol ekranında kullanıcıdan veri almak için kullanılır. Kullanıcıdan alınan veri daima string olmakadır. Yapacağınız işleme göre tür dönüşümü gerçekleştirebilirsiniz.

Yukarıdaki örnek dallanmayı göstermektedir; doğru adı yazarsanız, "if" ifadesi içerisine girersiniz ve bu alandaki kodlar çalıştırılır. Dallanma diyagramı aşağıdaki şekilde gösterilmektedir:

Yanlış ad yazarsanız, ‘if’ ifadesini atlar. 'İf' ifadesinden sonraki satırların "....." ve "Hoşgeldin Erhan." bölümlerinin girintili olduğunu gözlemlemiş olabilirsiniz. Satırı girintilediğinizde, bir blok haline gelir. Giriş dizesi "if" koşulunu karşılıyorsa bu blok yürütülür. Blok oluşturmak için "if" ifadesinin sonunda ":" kullanılır. ":" İfadesinden sonra yazılan tüm girintili satırlar bir blok oluşturur.

Girinti yapmak için TAB kullanmak yada boşluk kullanmak tamamen size kalmıştır. İstediğiniz yöntemi uygulayabilirsiniz, ancak tutarlı olmanız gerekiyor. Üç boşluklu girinti kullanacaksanız, program boyunca buna uyun.

İf Else İfadesi

Yazdığımız program içerisinde iki alternatif işlem yapılması istenilen durumlarda kullanılır.

if condition :
    sequence of statements-1
else:
    sequence of statements-2

Koşul True ise if blogunun içindeki kodlar yürütülür. Koşul False ise else blogu içindeki kodlar yürütülür.

Örnek;
print ("Hoşgeldiniz." )
Cevap = input("Lütfen adınızı giriniz \t")
if Cevap =="Erhan":
    print ("..............................")
    print ("Hoşgeldin Erhan.")
else :
    print("Erişim engellendi.")

Kullanıcının girdiği değer “Erhan” ise “if” bloğu yürütülür. Eğer kullanıcı "Erhan" dışında bir değer girerse, "else" bloğu yürütülür ve "Erişim engellendi." mesajı ekrana yazdırılır.

İf Elif Else İfadesi

Bazen, bir programda ikiden fazla alternatif eylemden oluşan birkaç test durumu vardır. Çok yönlü if ifadeleri, program doğru olana veya tümü yanlış olana karar verene kadar her koşulu inceler. Bir koşul Doğru olarak değerlendirildiğinde, koşula karşılık gelen kod blogu yürütülür. Hiçbir koşul sağlanmaz ise diğer else kod blogu yürütülür.

if condition-1:
    sequence of statements-1
elif condition-n:
    sequence of statements-n
else:  
    default sequence of statements

Tüm koşullar False ise else blogundaki kodlar yürütülür. Ayrıca if blogu 1 tane olurken elif blogu birden fazla olabilir.

Bir not sistemini örnek olarak ele alalım. Aşağıdaki tabloda 1 ile 100 arasında değişen not karşılığı harf notu bulunmaktadır.
Harf Not Karşılığı
A 89 üzeri
B 79 üzeri, 90 aşağısı
C 69 üzeri, 80 aşağısı
D 70 aşağısı


sinavSonucu = int(input("Lütfen sınav notunuzu giriniz \t"))

if sinavSonucu > 89:
    harfNotu = 'A'
elif sinavSonucu > 79:
    harfNotu = 'B'
elif sinavSonucu > 69:
    harfNotu = 'C'
else :
    harfNotu = 'D'

print("Harf notunuz: ", harfNotu)

Range()

Python programlama dilinde kullanılan range() fonksiyonu başlangıç değeri, artış değeri ve bitiş değeri olmak üzere üç farklı parametre alan, bu parametrelere göre belli bir aralıkta ve belli bir artış miktarı ile tam sayı dizisi oluşturan yerleşik bir fonksiyondur.

range(başlangıç ​​değeri, bitiş değeri, değerler arasındaki fark)


Örnek;
Microsoft Windows [Version 10.0.17763.1158]
(c) 2018 Microsoft Corporation. Tüm hakları saklıdır.

C:\Users\erhan>python
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> range(1,30,1)
range(1, 30)
>>> list(range(1,10,1))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list(range(10,1,-1))
[10, 9, 8, 7, 6, 5, 4, 3, 2]
>>> list(range(10,1,-2))
[10, 8, 6, 4, 2]
>>> list(range(10,1))
[]
>>> list(range(1,15))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> list(range(-1,15))
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>>

Range() fonksiyonu belleği tüketmez.

DÖNGÜLER

Bazen bir kod bloğunu birden çok kez yürütmeniz gerken bir durumla karşılaşabilirsiniz. Programlama dilleri, bir eylemi tekrarlayan döngüler adı verilen tekrar ifadeleriyle kontrol ifadeleri sağlar. 

İki tür döngü vardır:
  • Belirli döngü (define loop): Bu türde, eylem önceden tanımlanmış sayıda tekrarlanır.
  • Belirsiz döngü(Indefine loop): Bu türde, program durması gerektiğini belirleyene kadar eylem tekrarlanır.

Döngülerde de isteğe bağlı else blogu bulunmaktadır. While döngüsündeki koşul False olarak değerlendirilirse, else blogu yürütülür. Aşağıda göreceğiniz gibi While ve For döngüsü bir break ifadesi ile sonlandırılabilir. Bu gibi durumlarda, else kısmı göz ardı edilir. Bu nedenle, break ifadesi olmazsa ve koşul yanlışsa while ve for döngüsünün else kısmı çalışır.

For döngüsü için örnek:
digits = [0, 1, 5]

for i in digits:
    print(i)
else:
    print("No items left.")

While döngüsü için örnek:
counter = 0

while counter < 3:
    print("Inside loop")
    counter = counter + 1
else:
    print("Inside else")

For Döngüsü

For döngüsü belirli sayıda tekrar gerektiren eylemlerde kullanılır.
for <variable> in range(<an integer expression>):
    <statement-1 >
    <statement-n >
Yukarıdaki söz dizimi temel bir söz dizimi türüdür. Söz dizimi list, tuple, dictionary dizesi vb. kullandığımızda değişebilir. For döngüsünde kodun ilk satırına döngü başlığı denir. Bir tamsayı ifadesi, döngünün tekrar sayısını belirtir. İki nokta üst üste (:) döngü başlığını sonlandırır. Döngü üst bilgisinden sonra, gövde kalan kod satırlarındaki ifadelerden oluşur. Unutmayın, for döngüsü gövdesi girintili olmalıdır. For döngü gövdesindeki ifadeler, döngüden her geçişte sırayla yürütülür. Örnekler kullanarak for döngüsünün çalışmasını anlayalım.

Örnek: 0’dan 9’a kadar olan rakamları yazdırma
for each in range(10):
    print (each)

Her yineleme için, for döngüsü range() fonksiyonundan sonraki sayıyı ister, range() fonksiyonu bir sonraki değeri hesaplar ve bunu “each” değişkenine atar.

Örnek: For döngüsünde dize kullanımı
adSoyad = "Erhan SAYGILI"
for each in adSoyad:
    print (each)

String, her bir yineleme için her karakteri “each” değişkenine atar.

While Döngüsü

Program yazarken bazı durumlarda bir programın kaç defa tekrar edileceğini bilemeyebilirsiniz. Döngü çalışmaya başladıktan sonra koşul tamamen gerçekleşip koşul durumu değiştiğinde döngü sonlanır. Bazı durumlarda ise sonsuz bir döngü kullanmak gerekir. Bu gibi durumlarda döngü içinde döngünün ne zaman sonlandıracağını belirlenmelidir.
while <condition>:
    <sequence of statements>
Döngü gövdesinde while döngüsünün sonlandırılmasına yol açan koşulu etkileyen değişkeni güncelleyen en az bir ifade olması gerektiğini unutmayınız.

Örnek;
name = input("Lütfen adınızı giriniz : ")
while name!="Erhan":
    print ("Erişim Reddedildi.")
    name = input("Lütfen isminizi doğru giriniz : ")
print ("Hoşgeldin Erhan.")

While döngüsü için bir koşul kullandık. kullanıcıdan alınan isim bilgisi "Erhan" değerine eşit değilse koşul True olmakta ve program kodları yürütmek için while döngüsü içerisine girmektedir. Burada name kontrol değişkeni olarak kullanılır ve kullanıcı doğru değer girene kadar while döngüsü sayesinde kullanıcının adı sorulmaktadır. Kullanıcı tarafından doğru isim bilgisi girildiği anda döngüden çıkılarak program devam eden kodları çalıştırmaktadır.

break İfadesi

Program yazarken bazı durumlarda tekrar eden döngüyü sonlandırarak döngüden çıkılması gerekir. İşte bu noktada break ifadesini kullanırız. Bu ifade ile döngüyü yinelemenin herhangi bir noktasında kırarak/sonlandırarak döngüden çıkmamızı sağlar.

Örnek: İlk n sayının toplamını bulun, toplan 100'den büyükse döngüyü durdurun.
sum = 0
num = int(input("Enter the number "))
for each in range(1,num):
    sum = sum+each
    if sum > 100:
       break
print ("total number is ", sum)

Örnek: çalışma anında girilen sayıların toplamını bulma
sum1 = 0
while True:
    n = int(input("Enter the number to add :or press 0 to exit "))
    sum1 = sum1 + n
    print ("sum1: ", sum1)
    if n ==0:
 break
print ("Total is ", sum1)

Yukarıda girilen sayı 0 ise, yorumlayıcı döngüyü sonlandırmak için break deyimini çalıştırır.
İç içe döngü kullanım durumunda (bir döngü başka bir döngü içerirdiği durumda), break deyimi yalnızca içinde bulunduğudöngüyü sonlandırır.

continue İfadesi

Geçerli yinelemeyi atlamak için continue ifadesi kullanılır. Döngü sona ermez, ancak bir sonraki yinelemeyle devam eder.
Örnek:
list1 = [1,2,3,0,4,5,0]
for i in list1:
    if i == 0:
 continue
    c = 10/i*100
    print ("Percentage is ", c)

Continue ifadesi ile söz konusu yineleme atlanarak bir sonraki adımdan devam edilir.

pass İfadesi

Program yazarken bazı durumlarda ileride kullanmak üzere bir döngüyü ayırmak istediğimiz durumlar olabilir. Döngü içerisine herhangi bir şey yazmadan boş bir şekilde döngü oluşturmak istediğimizde pass ifadesinden yararlanırız. 

Örnek:
def dongu():
    pass

for each in [3,5]:
    pass

Yukarıdaki örneklerde, pass ifadesi bir gövde görevi görür ve hiçbir şey yapmaz.

Bu bölümde, karar almaya yardımcı olan koşullu ifadeler öğrendiniz. Python'da karar almak için if-else ve elif deyimini kullanıyoruz. Döngü, programın bir eylemi birçok kez tekrarlamasını kolaylaştırır. For döngüsü belirli bir döngü olarak kullanılırken while döngüsü genellikle belirsiz bir döngü olarak kullanılır.

Post a Comment

Yorum yaparak daha fazla bilgi paylaşılmasına yardımcı olabilirsiniz.

Daha yeni Daha eski