Python ile Programlamaya Giris Ders 3 Bool Veri Tipi Karsilastirma Operatörleri Su ana kadar gördügümüz operatörler aritmetik islem yapmak ve string'leri birlestirmek için kullanilan operatörlerdi. Simdi yeni bir veri tipi, bool, ve bu veri tipi ile kullanilan karsilastirma operatörlerini görecegiz. Sorgulama Sembol Örnek Küçüktür < 2<4 Büyüktür > 2>4 Esittir == 2 == 4 Büyük esittir >= 2 >= 4 Küçük esittir <= 2 <= 4 Esit degildir != 2 != 4 Yukaridaki operatörler sorgulamak için kullanilir ve sonucu bool tipindendir. >>> 2 < 4 True bool tipinin sadece iki degeri vardir, True ve False >>> 2 > 4 False Alistirma: Yukaridaki örnekleri Python ile deneyin. Hangi sonuçlari verecek? Karsilastirma operatörlerinin sol ve sag tarafindaki degerler birbiriyle karsilastirilabilir olmali. >>> 7 == 7 True >>> 7 == 7.0 True Yukaridaki örnekte iki tamsayi ile tamsayi ve reel sayi karsilastirmasi yapilmistir. Ikisinin de sonucu True , yani olumlu, olmustur. Dikkat: Esitligi sorgulaya operatör == ile gösterilir. = ile degil. Bunun sebebi = operatörünün zaten Python'da baska bir manasinin olmasidir. Hangi manasi var? = Python'da degiskene deger atamak için kullaniliyor. Degiskenler de karsilastirilabilir. >>> x = 4 >>> y = 3 >>> x > y True Mantiksal Operatörler Mantiksal operatörler bool veri tipleri ile, yani True ve False ile kullanilir. Açiklama Operatör Örnek ve and 2 < 4 and 2 == 3 veya or 2 < 4 or 2 == 3 degil not not 2 == 3 and Operatörü a b a and b True False False False True False True True True False False False or Operatörü a b a or b True False True False True True True True True False False False not Operatörü a not a True False False True Mantiksal Operatörlerin Birlestirilmesi Mantiksal operatörler soldan saga ve parantez öncelikli olarak islem görür. >>> 3 > 4 False >>> not 3 > 4 True >>> not not 3 > 4 False Yukaridaki örnekte oldugu gibi, bir ifadede birden fazla mantiksal operatör kullanilabilir. >>> (5 > 4 or 5 < 4) and 3 == 4 False Yukaridaki örnekteki karsilastirmalari indirgeyelim. Karsilastirma Sonuç 5>4 True 5<4 False 3 == 4 False Simdi sonuçlari kullanilan mantiksal operatörlerle birlestirelim. (True or False) and False True ile False degerlerini or operatörü ile kullanirsak, yani True or False , bize True verir. Çünkü "dogru veya yanlis" ifadesi mantiksal olarak dogruyu verir. Mesela "Sinifta kaldim veya geçtim" ifadesi her zaman dogrudur, degil mi? Soldan saga dogru isleme devam edersek siradaki mantiksal ifade ve ifadesi. Buldugumuz sonucu, yani True , en sondaki False ifadesiyle birlestirecegiz. True and False Dogru ve yanlis ifadeleri ve ile baglarsak her zaman yanlis olur. Mesela "Sinifi geçtim ve kaldim" ifadesi her zaman yanlis olur degil mi? Ya geçmistir yada kalmistir. Dolayisiyla yukaridaki ifadenin sonucu False olur. Simdi ayni örnegi parantezlerin yerini degistirerek görelim. >>> 5 > 4 or (5 < 4 and 3 == 4) True Bu durumda yine parantez içindeki, yani sagdaki ifade, önce islem görür. True or (False and False) False and False ifadesi her zaman False sonucunu verir. Daha sonra bu sonuc bastaki ile birlestirilir. True or False ise bize True sonucunu verir. Bool Veri Tipinin Degisken ve Fonksiyonlarda Kullanimi bool veri tipi, ayni int, float ve str gibi, bazi degerler alabilir. int tamsayi degerleri ve str string degerleri, yani "Merhaba" gibi, alabildigi gibi, bool veri tipi True ve False degerlerini alabilir. Asagidaki geçerli bir Python programidir. x degiskenine True degeri ataniyor. >>> x = True Indirgeme ile sag taraf bir bool degerine gelinceye kadar islem yapilir. >>> x = 3 < 4 >>> x True Indirgeme islemi ile bir ifadenin sonucunun dogru olup olmadigi bir degiskende tutulabilir. Mesela dersi geçme kriteri vizenin %40'i ile finalin %60'nin toplaminin 50 veya 50'den fazla olmasi olsun. >>> vize = 50 >>> final = 60 >>> gecti = vize*0.4 + final*0.6 >= 50 >>> gecti True Yukarida gecti degiskeninin degeri True olur. Yani vize 50 ve final 60 olursa ders gecilebiliyormus. Simdi ayni kriteri sorgulayan sorgula fonksiyonunu yazalim. def sorgula(vize, final): return vize*0.4 + final*0.6 >= 50 sorgula fonksiyonu iki parametre aliyor, vize ve final . Bu degiskenler ile kritere uygun sorgulama yapip sonucunu geriye veriyor. >>> sorgula(40,50) False >>> sorgula(50,60) True Python bir de bir sayinin deger araliginda olup olmadigini asagidaki gibi bulabilir. >>> n = 3.5 >>> 4 > n > 3 True Yukaridaki ifade asagidakinin kisaltilmisidir. >>> 4 > n and n > 3 True if Statement ile Sartli Program Akisi Su ana kadar gördügümüz Python programlari yukaridan asagiya dogru her satiri çalistirarak akiyordu. Programlamada programin akisini degistirebilmek çok önemlidir. Bu akisi if anahtar kelimesi ile yönlendirebiliriz. Mesela bir ögrencinin aldigi vize ve final ortalamasi 75 olsun. Eger ortalamasi 60'tan büyükse dersi geçmis olsun. if 75 > 60: print("Geçtin") Dikkat: if anahtar kelimesinden sonraki satirin daha içerden basladigini farkettiniz mi? Yukaridaki örnek ekrana "Geçtin" yazar çünkü 75 > 60 karsilastirmasi True sonucunu verir. Eger geçemeseydi programin ekrana "Geçemedin" yazmasini istiyoruz. Bu durumda sadece if ile beraber kullanilan else ifadesini kullanmaliyiz. if 75 > 60: print("Geçtin") else: print("Geçemedin") Bu sorgulamayi genellestirmek için ögrencinin notunu ortalama degiskeninde tutalim. if ortalama > 60: print("Geçtin") else: print("Geçemedin") Bir de eger ögrenci 60 aldiysa ekrana "Hadi yine iyisin" yazmasini isteyelim. Bu durumda elif anahtar kelimesini kullanacagiz. ( elif ) if ortalama > 60: print("Geçtin") elif ortalama == 60: print("Hadi yine iyisin") else: print("Geçemedin") Programi daha kullanilabilir kilmak için yazdiklarimizi bir fonksiyon içinde yapalim ve ekrana yazmak yerine ekrana yazacagi metni fonksiyon geriye versin. def sonuc(ortalama): if ortalama > 60: return "Geçtin" elif ortalama == 60: return "Hadi yine iyisin" else: return "Geçemedin" Böylece sonuc fonksiyonunu istedigimiz her not için kolayca çagirabiliriz. >>> print(sonuc(70)) Geçtin >>> print(sonuc(60)) Hadi yine iyisin >>> print(sonuc(40)) Geçemedin if ve Özellikleri if <kosul1>: <kosul1> saglanirsa burasi çalisir elif <kosul2>: <kosul2> saglanirsa burasi çalisir elif <kosul3>: <kosul3> saglanirsa burasi çalisir else: Hiçbir kosul saglanmazsa burasi çalisir if hakkinda bilinmesi gerekenler asagidaki gibidir. if ve elif sorgulamalari ve else ifadesi herzaman : ile biter. Kosullarin saglandiginda çalistirilacak satirlarin hepsi herzaman daha içerden ve ayni sütundan baslar. Bir if sorgulamasinda elif 0 veya daha fazla kez kullanilabilir. else ifadesi 0 veya bir kez kullanilabilir. else herzaman en sonda olur. Kosullar yukaridan asagiya dogru sorgulanir ve ilk dogru sonuc veren kosulun icindeki (yani daha içerden baslaya satirlari) satirlar çalistirilir ve daha sonraki kosullar ne sorgulanir ne de çalistirlir. Hiçbir kosul saglanmazsa ve else ifadesi verilmisse, else için verilen satirlar çalistirilir. Harici Fonksiyonlarin Kullanimi Python komut penderesini açtigimizda kullanmaya hazir min , max ve abs gibi bazi fonksiyonlarin oldugunu görmüstük. Bunlar Python ile gelen dahili fonksiyonlardi. Python birçok fonksiyona sahip. Bu fonksiyonlari kullanmak için önce Python'a bunlari kullanmak istedigimizi belirtmemiz lazim. Bu fonksiyonlara harici fonksiyonlar diyecegiz. Harici fonksiyonlar .py ile ile biten dosyalara kaydedilir. Her .py uzantili dosya bir Modül olusturur. Mesela Python ile beraber gelen math.py isimli dosyada matematiksel islemler için gerekli birçok fonksiyon vardir. Bir modülü Pythona yüklemek için, yani Python'a o modüldeki fonksiyonlari kullanmak istedigimizi belirtmek için, import <modül> anahtar kelimesi kullanilir. import math Yukaridaki ifade math.py isimli dosyadaki fonksiyonlari ve degiskenleri kullanmak istedigimizi belirtir. math.py Python'un aradigi bir dizinin içinde olmasi gerekiyor. Bu dizinler PYTHONPATH sistem degiskeninde tutuluyor. import hakkinda daha detayli bilgiyi asagidaki linklerde bulabilirsiniz. http://docs.python.org/2/tutorial/modules.html http://www.bdnyc.org/2012/09/17/editing-pythonpath-to-import-modules/ Simdi math modülünde hangi fonksiyonlarin ve degiskenlerin tanimlandigina bakalim. Bunun için hangi fonksiyonu kullaniriz? Tabiki dir fonksiyonunu. >>> dir(math) ['__doc__', '__file__', '__loader__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc'] Bu fonksiyonlara erismek için modül ismini basinda kullanarak fonksiyon ismini veririz. Mesela karekök alan sqrt fonksiyonunu asagidaki gibi kullanabiliriz. >>> math.sqrt(9) 3.0 Sadece sqrt yazmak yetmiyor. Eger Python'a asagidaki gibi from anahtar kelimesiyle math modülündeki sqrt fonksiyonunu kullanmak istedigimizi belirtseydik fonsiyonun basina modülün ismini koymak zorunda kalmazdik. >>> from math import sqrt >>> sqrt(9) 3.0 Ayni sekilde math modülündeki bütün fonksiyonlari masina modül ismini koymadan yazmak isteseydik * ifadesini kullanabilirdik. >> from math import * >>> sqrt(4) 2.0 >>> pi 3.141592653589793 pi 'nin bir degisken oldugunu farkettiniz mi?
© Copyright 2024 Paperzz