Python Koşullu Durumlar – İlişkisel Operatörler – 8. Ders

Bugün programlamanın en önemli kavramlarından birisi olan karar yapıları üzerine konuşacağız.

Bilgisayar temelde 0 ve 1 ler üzerine kurulmuştur.

0 değeri False(Yanlış),

1 değeri True(Doğru), demektir.

Doğru ve yanlış değerleri korumak için Boolean adı verilen değişken tipi kullanılmaktadır. (Değişken tipleri için bu yazıyı okuyabilirsin)

“Boolean deyimi ingiliz matematikçi George Boole’ in soyadından gelmektedir. Soyut matematiğin bir dalı olan Boole Cebiri(mantık cebiri) George Boole’ nin mantıksal ifadelerle ilgili çalışmalarına ithaf edilmiştir. “

— George Boole

Python’ da İlişkisel Operatörler

İfadeAnlamı
x==yEğer x ve y birbirine eşitse (matematiksel olarak) doğrudur, değilse yanlıştır.
x<yEğer x, y’den küçükse doğrudur; değilse yanlıştır.
x<=yEğer x, y’den küçük ya da eşitse doğrudur; değilse yanlıştır.
x>yEğer x, y’den büyükse doğrudur; değilse yanlıştır.
x>=yEğer x, y’den büyük ya da eşitse doğrudur; değilse yanlıştır.
x!=yEğer x, y’den farklı ise (büyük ya da küçük) doğrudur; değilse yanlıştır.
print(5>3) #True
print(4>=9) #False
print(9!=23) #False

Siz de buna benzer örneklerle deneme yapabilirsiniz.

“if” İfadesi

if Türkçede EĞER anlamına gelmektedir.

Bir koşula bağlı durumları kontrol etmek amacıyla kullanılır.

Eğer koşul True değer alıyorsa, yani doğruysa bloğun içindekiler gerçekleşecektir.

Örnek olarak;

sayi=32
if(sayi>10):
    print("Sayı 10 dan büyüktür.")

Yukarıdaki kodun çıktısı “Sayı 10 dan büyüktür” olacaktır. Çünkü koşul sağlanıyor(32 sayısı 10 dan büyük)

Aşağıdaki algoritma kullanıcıdan 2 sayı istiyor. Eğer bölen 0 değilse işlem yapıyor. Yoksa yapmıyor.

print("Lütfen bölme için iki sayı giriniz.")
bolum=int(input("Lütfen bölme için ilk sayınızı giriniz:"))
bolen=int(input("Lütfen bölme için ikinci sayınızı giriniz:"))

if bolen!=0:
    print(bolum,"/",bolen,"=", bolum/bolen)

İstersek birden fazla if kullanarak birden fazla olasılığı yakalayabiliriz. (Zincirleme Durum İfadesi)

sayi=int(input("Bir sayı giriniz: "))
if(sayi>10):
    print("Girdiğiniz sayı 10 dan büyük")

if(sayi<10):
    print("Girdiğiniz sayı 10 dan küçük")

if(sayi==10):
    print("Girdiğiniz sayı 10 !a eşit")

“if/else” İfadesi

if/else” ifadesi, “if” ifadesi ile birlikte çalışır ve if koşullarının sağlanmadığı tüm durumları kapsar.

Yukarıdaki örneği bir de else ekleyerek yapalım. Eğer 0 girerse kullanıcıya 0 giremezsin diye uyarı verelim.

print("Lütfen bölme için iki sayı giriniz.")
bolum=int(input("Lütfen bölme için ilk sayınızı giriniz:"))
bolen=int(input("Lütfen bölme için ikinci sayınızı giriniz:"))

if bolen!=0:
    print(bolum,"/",bolen,"=", bolum/bolen)
else:
    print("Sıfıra bölme işlemi yapılamaz")

Diğer örnek eğer ağacın boyu 150 den uzun sa uzun uyarısı veriyoruz değilse kısa uyarısı veriyoruz.

boy = input("Ağacın boyu kaç cm? ")
if int(boy) > 150:
    print ("Ağacın boyu uzun demek ki!")
else:
    print ("Ağacın boyu kısa")

if/elif/else İfadesi (Çok Yönlü Durum İfadesi)

Elif ifadesi, else if ifadesinin kısaltmasıdır.

Örnek kullanımı

# Klavyeden girilen 0-5 arasındaki sayıların yazı karşılığını veren program

deger = int(input("Lütfen 0 – 5 arasında bir değer girin: "))
if deger < 0:
    print("çok küçük")
elif deger == 0:
    print("sıfır")
elif deger == 1:
    print("bir")
elif deger == 2:
    print("iki")
elif deger == 3:
    print("üç")
elif deger == 4:
    print("dört")
elif deger == 5:
    print("beş")
else:
    print("çok büyük")

print("Tamamlandı")

Çok Yönlü Koşullu Durum İfadesi ve Zincirleme Durum İfadesinin Farkı

Birleşik Boolean İfadesi

3 farklı mantıksal operatörlerden yararlanılır. Bunlar and, or ve not dır.

and = ve

or = veya

not = değil

#x = 10, y = 20 olarak veriliyor. Buna göre aşağıda verilen kod örneklerini inceleyiniz.
b = (x == 10) # b’ye True değerini atar.
b = (x != 10) # b’ye False değerini atar.
b = (x == 10 and y == 20) # b’ye True değerini atar.
b = (x != 10 and y == 20) # b’ye False değerini atar.
b = (x == 10 and y != 20) # b’ye False değerini atar.
b = (x != 10 and y != 20) # b’ye False değerini atar.
b = (x == 10 or y == 20) # b’ye True değerini atar.
b = (x != 10 or y == 20) # b’ye True değerini atar.
b = (x == 10 or y != 20) # b’ye True değerini atar.
b = (x != 10 or y != 20) # b’ye False değerini atar.

NOT: x <= y and x <= z ifadesi (x <= y) and (x <= z) olarak işlem görür.

deger = int(input("Lütfen 0....10 aralığında bir tam sayı giriniz: "))
if deger>=0 and deger<=10:
    print("Aralıkta")

Aynı soru bu şekilde de yazılabilir. (İçi İçe Koşullu İfade)

deger = int(input("Lütfen 0....10 aralığında bir tam sayı giriniz: "))
if deger >= 0: # İlk kontrol		
    if deger <= 10: # İkinci kontrol		
        print("aralıkta")

print("tamamlandı")

Pass İfadesi

Pass ifadesi Python’da herhangi bir işlem yapmadan geçeceğimiz durumlarda kullanılır. Kısaca “Hiçbir şey yapmadan yola devam et!” anlamı katar.

x=int(input("Lütfen bir sayı giriniz: "))
if x == 2:
    print("Girdiğiniz sayı 2 dir")
else:
    pass # x 2’ye eşit değilse hiçbir şey yapma

Bu ifadeyi sadece 1 tane if kullanarak da yapabiliriz.

if x == 2:
    print("Girdiğiniz sayı 2 dir") # yalnızca x 2’ye eşitse yazdır

Çok Yönlü Karar İfadeleri

Basit if/else ifadesinde iki farklı koşul varken çok yönlü karar ifadelerinde daha fazla koşulun gerçekleşme durumuna göre işlem yapılır. Bunun için kod yazılırken iç içe if/else ifadeleri gerekir. Örneğin;

deger = int(input("Lütfen 0 yada 5 tam sayı değerlerinden birinigirin: "))
if deger < 0:
    print("çok küçük")
else:
    if deger == 0:
        print("sıfır")
    else:
        if deger == 1:
            print("bir")
        else:
            if deger == 5:
			    print("beş")
			else:
			    print("çok büyük")

print("Tamamlandı. Bu yazı her koşulda gelir.")

UYARI!!!! – Float(Ondalık) Sayılarda Eşitlik

Eşitlik operatörü (==) gerçek eşitlik olup olmadığını kontrol eder. Ancak float sayılarla işlem yaparken bu durum sorun oluşturabilir.

Aşağıdak kodu yazdığımız zaman bilgisayar bize False cevabını vermektedir.

x= 1.11-1.10
y= 2.11-2.10
print(x==y)

Ancak normalde biz işlem yaparken bu sayıların aynı olduğunu bulabiliriz.

Ancak python da işlem sonuçlarına baktığımız zaman aşağıdaki değerleri alırız.

x= 1.11-1.10
y= 2.11-2.10
print(x) #0.010000000000000009
print(y) #0.009999999999999787

Bu durumda aşağıdaki kodları yazdığımızda Farklı sonucunu alırız.

x = 1.11 - 1.10
y = 2.11 - 2.10
if x == y:		
    print("Aynı")
else:		
    print("Farklı")

Bu tarz sorunlar yaşamamak için sayıları genelde round() fonksiyonu ile yuvarlarız.

x = 1.11 - 1.10
print(round(x,2)) #virgülden sonra 2 basamağa kadar yuvarla

yukarıdaki işlemin sonucu 0.01 olarak verir.

Son olarak kodlarımızı şu şekilde düzenleyelim

x = 1.11 - 1.10
y = 2.11 - 2.10
if round(x,2) == round(y,2):		
    print("Aynı")
else:		
    print("Farklı"),

Uzun bir yazı oldu. Beni sabırla okuduğunuz için teşekkür ederim.

Herhangi bir sorunuz varsa yorum kısmına yazabilirsiniz.

İyi kodlamalar!

Yayınlayan

Ahmet KADAK

Bilgisayar Öğretmeni & Bilgisayar Mühendisi

“Python Koşullu Durumlar – İlişkisel Operatörler – 8. Ders” için bir yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir