Merhaba. Bu içerikte sizlerde pythondaki işleçleri öğreneceğiz. Bir çoğumuzun c++,c#,php vb. dillerden aşina olduğu işleçleri python için bir kez daha ele alacağı. İşleçeler matematiksek işlemlerde sınama işlemlerinden olmazsa olmazlarımızdır. Tabi bu konuya ilkez bakıyorsanız, daha dikkatli olmanızı öneririm. Çünkü programlamanın temellerinden biridir. Tabi temeli sağlam atmak lazım. Bu içerikte nerler öğreneceğiz bunlara bir göz atalım.
- Aritmetik İşleçeler
- Karşılaştırma işleçleri
- Kimlik İşleçleri
- Bool İşleçleri
- Aitlik İşleçleri
- Değer Atama İşleçleri
Hadi Python’da işleçlere başlayalım.
Python Aritmetik İşleçler
Python artimetik işleçler + (Topma), – (Çıkarma) , / (Bölme), * (Çarpma), ** (Kuvvet), % (Mod) ve // (Tam ) olarak sınıflandırabiliriz. Anlaşıldığı gibi bu işleçler matematiksek işlemlerde kullanılmaktadır. Aynı zamanda farklı göreveler için kullanılabiliyor.
Öncelik dört işlemi yapan bir program yazalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | s1=int(input("Lütfen tam sayı giriniz. \n")) s2=int(input("Lütfen bir tam sayı daha giriniz. \n")) toplam=s1+s2 #iki sayının toplamını aldık cikarma=s1-s2 #s1'den s1'yi çıkardık. carpma=s1*s2 #s1 ile s2'yi çarptık bolme=s1/s2 #s1'i s2'ye kesirli böldük yani geriye float bir değer döndü. tabanBolme=s1//s2 #taban bölme geriye int (Tam sayı) bir değer dönderir mod=s1%s2 #s1'in s2'ye bölümünden kalanı aldık. kuvvet=s1**s2 #s1'in s2 inci kuvvetini aldık. print("{} ile {} nin toplamı {}\n".format(s1,s2,toplam)) print("{} ile {} nin çıkarımı {}\n".format(s1,s2,cikarma)) print("{} ile {} nin çarpımı {}\n".format(s1,s2,carpma)) print("{} ile {} nin kesirli bölümü {}\n".format(s1,s2,bolme)) print("{} ile {} nin tam sayılı bölümü {}\n".format(s1,s2,tabanBolme)) print("{} ile {} nin kuvveti {}\n".format(s1,s2,kuvvet)) print("{} ile {} nin modu {}\n".format(s1,s2,mod)) ###################Ekran Çıktısı########################### #Lütfen tam sayı giriniz. #5 #Lütfen bir tam sayı daha giriniz. #5 #5 ile 5 nin toplamı 10 # #5 ile 5 nin çıkarımı 0 # #5 ile 5 nin çarpımı 25 # #5 ile 5 nin kesirli bölümü 1.0 # #5 ile 5 nin tam sayılı bölümü 1 # #5 ile 5 nin kuvveti 3125 # #5 ile 5 nin modu 0 ###################Ekran Çıktısı########################### |
Birlikte aritmetik operatörlerle birer örnek yaptık. Şimid bu operatörlerden + (Toplama) ve * (Çarpma) operatörlerinin ikinci görevlerinden bahsedelim
Toplama operatörü aynı zamanda yan yana gelen iki string verinin birleştirilmesindede kullanılmaktadır. Örneğin
1 2 3 4 5 6 7 8 9 10 11 12 | ad=input("Adınızı Giriniz. \n") soyad=input("Soyadınızı Giriniz. \n") print("Merhaba "+ad+" "+soyad+" öğrenci sistemine hoş geldiniz.") ###################Ekran Çıktısı########################### #Adınızı Giriniz. #Çağlar #Soyadınızı Giriniz. #BOSTANCI #Merhaba Çağlar BOSTANCI öğrenci sistemine hoş geldiniz. ###################Ekran Çıktısı########################### |
Yine çarpma operatörü olarak kullandığımız * operatör ise string bir ifadenin girilen adedince tekrar edilmesini sağlamaktadır.
1 2 3 4 5 6 7 8 | ad=input("Adınızı Giriniz. \n") print(ad*5) ###################Ekran Çıktısı########################### #Adınızı Giriniz. #Bende #BendeBendeBendeBendeBende ###################Ekran Çıktısı########################### |
Birde bu % mod alma olayına değinmek istedim. Python ve diğer programlama dillerinde de sıklıkla kullanılan mod alma operatörü iki sayının bir birine bölümünden kalını veririr. Örneğin 5 % 2 == 1 beşin ikiye bölümünden kalan bir dir. Bu işlemi bir sayının iki ye tam bölüp bölümedini hesaplayan bir program yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 | sayi=int(input("Lütfen bir sayı giriniz \n")) if sayi%2==0: print("Sayı ikiye tam bölünür"); else: print("Sayı ikiye tam bölünmez. Kalan {}".format(sayi%2)) ###################Ekran Çıktısı########################### #Lütfen bir sayı giriniz #234234231 #Sayı ikiye tam bölünmez. Kalan 1 ###################Ekran Çıktısı########################### |
Python round() Kullanımı
Matematiksel işlemlerde sayılar yuvalamak için kullanılan fonsiyondur.
1 2 3 4 5 6 7 8 9 | sayi=float(input("Lütfen kesirli bir sayı giriniz.\n")) yuvarla=round(sayi) print("girilen sayı {} round() yuvarlandıktan sonraki değeri {}".format(sayi,yuvarla)) ###################Ekran Çıktısı########################### #Lütfen kesirli bir sayı giriniz. #5.5 #girilen sayı 5.5 round() yuvarlandıktan sonraki değeri 6 ###################Ekran Çıktısı########################### |
Round fonksiyonunda dikkat edilmesi gereken husus; eğer sayinin noktadan sonraki değeri 4 ve aşağısı ise aşağı yuvarlar, 5 ve yukarısı ise yukarı yuvarlar.
1 2 3 4 5 6 7 8 9 | sayi=float(input("Lütfen kesirli bir sayı giriniz.\n")) yuvarla=round(sayi) print("girilen sayı {} round() yuvarlandıktan sonraki değeri {}".format(sayi,yuvarla)) ###################Ekran Çıktısı########################### #Lütfen kesirli bir sayı giriniz. #5.4 #girilen sayı 5.4 round() yuvarlandıktan sonraki değeri 5 ###################Ekran Çıktısı########################### |
Yine round fonksiyonunda hassiyet durumunu belirleyebiliyorsunuz. round(2.55,1) şekilindeki kullanımda virgülden sonra kaç basamak dikkate alınacağınız belirliyor.
1 2 3 4 5 6 7 8 9 10 11 | sayi=float(input("Lütfen kesirli bir sayı giriniz.\n")) yuvarla=round(sayi,1) yuvarla2=round(sayi,2) print("girilen sayı {} round() tek basamak yuvarlandıktan sonraki değeri {}\n iki basamak yuvarladıktan sonraki değeri {}".format(sayi,yuvarla,yuvarla2)) ###################Ekran Çıktısı########################### #Lütfen kesirli bir sayı giriniz. #5.69 #girilen sayı 5.69 round() tek basamak yuvarlandıktan sonraki değeri 5.7 # iki basamak yuvarladıktan sonraki değeri 5.69 ###################Ekran Çıktısı########################### |
Python pow() Kullanımı
Pythonda bir değerin kuvvetini almak için ** operatörü kullanılıyordu. Aynı zamanda pow() fonksiyonunda kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 | sayi=int(input("Lütfen bir tam sayı giriniz.\n")) ustu=int(input("Lütfen kuvvetini giriniz.\n")) kuvveti=pow(sayi,ustu) print("girilen sayı {} üstü {} sonuc {}".format(sayi,ustu,kuvveti)) ###################Ekran Çıktısı########################### #Lütfen bir tam sayı giriniz. #40 #Lütfen kuvvetini giriniz. #2 #girilen sayı 40 üstü 2 sonuc 1600 ###################Ekran Çıktısı########################### |
Python Karşılaştırma İşleçleri (Operatorleri)
Verilen iki değişkeni aşağıdaki operatörlerle sınamasını yapabilmekteyiz. Bu sınama sonrasında geriye dönen
değer ise boolean bir değer olmaktadır. Bu sebebten if-else yapılarında çok rahat bir şekilde kullanmaktayız.
Python aritmetik işleçler aşağıda sıralanmıştır.
== | Eşittir | Girilen iki değerin bir birine eşitliğini kontrol etmektedir. Eşits True değer döner. |
!= | Eşit Değilse | Eşitliğin sağlamadığı durumlarda geriye true değer döner. |
< | Büyükse | Sağdaki değerin soldaki değere büyüklüğünü kontrol eder. Geriye true değer döner |
> | Küçükse | Soldaki sayının sağdankinden küçük olduğunda true değer döndürür. |
<= | Büyükeşit | Soldaki değer sağdaki değerden büyükse veya eşitse geriye true değer döner. |
>= | Küçükeşit | Soldaki değer sağdaki değerden küçükse veya eşitse true değer döner |
Şimdi bu işleçlere uygun bir örnek yapalım. Kullanıcı login işlemine örnek bir uygulama:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | user=input("Lütfen kullanıcı adınızı giriniz: ") passw=input("Lütfen şifrenizi giriniz: ") if len(user)<=5: print("Kullanıcı adı beş karakterden büyük olmalı.") elif len(passw)<8: print("Şifreniz sekiz karakterden küçük olamaz.") else: if user=="caglarhoca": if passw=="12345678": print("Hoş Geldiniz.") else: print("Şifreniz Hatalı") else: print("Kullanıcı Adınız Hatalı!") ###################Ekran Çıktısı########################### #Lütfen kullanıcı adınızı giriniz: caglarhoca #Lütfen şifrenizi giriniz: 12345678 #Hoş Geldiniz. ###################Ekran Çıktısı########################### |
Bool İşleçleri
Hepimizin bildiği gibi bilgisar yapıl olarak 1 ve 0 ile kurulmuştur. Burada 1 == true iken 0==false olarak belirlenmiştir. Boolean değişkenler ise adını İngiliz Matematikçi George Boole’den almaktadır.
Karar yapılarında operatörler geriye boolean bir değer döndürür. Örnegin
1 2 3 4 5 | print(3==3) ###################Ekran Çıktısı########################### #True ###################Ekran Çıktısı########################### |
Aynı zamanda bool() fonksiyonu ile boolean teyidini yapabiliriz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | print('bool("")=={} '.format(bool(""))) print('bool(0)=={} '.format(bool(0))) print('bool("a")=={} '.format(bool("a"))) print('bool(" ")=={} '.format(bool(" "))) print('bool("asdf")=={} '.format(bool("asdf"))) print('bool("*")=={} '.format(bool("*"))) ###################Ekran Çıktısı########################### #bool("")==False #bool(0)==False #bool("a")==True #bool(" ")==True #bool("asdf")==True #bool("*")==True ###################Ekran Çıktısı########################### |
Python and Kullanımı
İf-else yapısında bir seferde birden çok şart kullanımı sağlayacaksanız and,or veya not’ı kullanabilirsiniz. Tabi and kullanımında sonucu true olabilmesi için her iki şartında true olması gerekmektedir. Aksi diğer hallerde false olacaktır. Aşağıdaki tabloda detaylı olarak verilmiştir
Kıyas | Sonuc |
true and true | true |
false and true | false |
true and false | false |
false and false | false |
Şimdide and operatorunu kullanarak bir login işlemi yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | user=input("Kullanıcı adınızı giriniz : ") sifre=input("Şifrenizi giriniz : ") if user=="caglarhoca" and sifre=="123": print("Hoş Geldiniz") else: print("Lütfen hesap bilgilerinizi kontrol ediniz. ") ###################Ekran Çıktısı########################### #Kullanıcı adınızı giriniz : caglarhoca #Şifrenizi giriniz : 123 #Hoş Geldiniz ###################Ekran Çıktısı########################### |
Python or Kullanımı
İf-else yapısında bir seferde birden çok şart kullanımı sağlayacaksanız and,or veya not’ı kullanabilirsiniz. Tabi or kullanımında sonucu true olabilmesi için şartlardan sadece birinin true olması yeterlidir. Sonucun false çıkabilmesi için her iki şartında false olması gerekmektedir. Aşağıdaki tabloda detaylı olarak verilmiştir
Kıyas | Sonuc |
true or true | true |
false or true | true |
true or false | true |
false or false | false |
Şimdi ise or işleçi için bir örnek yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | yas=32 cinsiyet="ERKEK" if (yas>=0 and yas<=17) and (cinsiyet=="ERKEK" or cinsiyet=="KADIN"): print("Ergen Yaş Grubu") elif (yas>=18 and yas<=65) and (cinsiyet=="ERKEK" or cinsiyet=="KADIN"): print("Genç Yaş Grubu") elif (yas>=66 and yas<=79) and (cinsiyet=="ERKEK" or cinsiyet=="KADIN"): print("Orta Yaş Grubu") elif (yas>=88) and (cinsiyet=="ERKEK" or cinsiyet=="KADIN"): print("Yaşlı Grubu") else: print("Tanımsız yaş aralığı") ###################Ekran Çıktısı########################### #Genç Yaş Grubu ###################Ekran Çıktısı########################### |
Python Değer Atama İşleçleri
Python ve bir çok yazılım dilinde bir değişkene değer ataması yaparken = “eşittir” işlecini kullanmaktayız. Bunun yanı sara birden çok değer atama işleci bulunmaktadır. Bunlar bir bir aşağıda sıralanmıştır.
a=5 | a değişkenine beş değerini atadık |
a+=5 | a değişkeni ile 5 rakamını topladı ve sonucu tekrar a değişkenine atadı |
a-=5 | a değişkeninden beş değerini çıkardı ve tekrar sonucu a değişkenine atadı. |
a/=5 | a değişkenindeki değeri 5 rakamına böldü ve sonucu a değişkenine tekrar atadı. |
a*=5 | a değikenindeki değer ile 5 rakamını çarptı sonucu tekrar a değişkenine atadı. |
a%=5 | a değerini 5 sayısına böldü ve kalanını tekrar a değişkenine atadı. |
a**=5 | a değişkenin 5 inci kuvvetini aldı ve tekrar sonucu a değişkenine atadı. |
a//=2 | a değişken değerini 2 ye bölüp kalan değeri tekrar a değişkenine atadı. |
(a:=int(input(“gelenDeger”)))>5 | Bu := işleç if bloğu içerisinde kullanıcıdan bilgi alayıp a değişkenine atamamızı sağlıyor. |
Birer örnek ile atama işleçlerini işleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | a=10 a+=5 print("a+=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a-=5 print("a-=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a*=5 print("a*=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a/=5 print("a/=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a//=5 print("a//=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a**=5 print("a**=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) a=10 a%=5 print("a%=5 işlemin sonucu a'nın değeri {} dir \n".format(a)) if(a:=int(input("Bir Sayı Giriniz : ")))<10: print("Girilen değer 10 dan küçük \n") print('a:=int(input("Bir Sayı Giriniz")))<10 işlemin sonucu a\'nın değeri {} dir \n'.format(a)) if a:=int(input("Bir Sayı Giriniz : "))<10: print("Girilen değer 10 dan küçük \n") print('a:=int(input("Bir Sayı Giriniz")))<10 işlemin sonucu a\'nın değeri {} dir \n'.format(a)) ###################Ekran Çıktısı########################### """ a+=5 işlemin sonucu a'nın değeri 15 dir a-=5 işlemin sonucu a'nın değeri 5 dir a*=5 işlemin sonucu a'nın değeri 50 dir a/=5 işlemin sonucu a'nın değeri 2.0 dir a//=5 işlemin sonucu a'nın değeri 2 dir a**=5 işlemin sonucu a'nın değeri 100000 dir a%=5 işlemin sonucu a'nın değeri 0 dir Bir Sayı Giriniz : 5 Girilen değer 10 dan küçük a:=int(input("Bir Sayı Giriniz")))<10 işlemin sonucu a'nın değeri 5 dir Bir Sayı Giriniz : 2 Girilen değer 10 dan küçük a:=int(input("Bir Sayı Giriniz")))<10 işlemin sonucu a'nın değeri True dir """ ###################Ekran Çıktısı########################### |
Aitlik işleçleri
Python’da aitlik işleci olarak in kullanılmaktadır. Bu işleç verilen değerin içerisinde aranan değerin bulunduğunda geriye true değerini bulamadığında ise false değerini dönderir.
Python in kullanımını bir örnekle açıklayalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | a="Çağlar Bostancı" aranan="tan"; if aranan in a : print("değişken değeri {} \naranan değer {}\n bulundu.".format(a,aranan)) else: print("Aranan değer bulunamadı."); ###################Ekran Çıktısı########################### #değişken değeri Çağlar Bostancı #aranan değer tan # bulundu. # ###################Ekran Çıktısı########################### |
Kimlik İşleçleri
Python’da oluşturlan her nesne için bir id numarası verilmektedir. Bu id’ye kimlik denilyor. Şimdi bu kimlikler nedir nereden geliyor. Eğer C veya C++ dilleriyle ilgilendiysenin görstericiler ve referans numaraları dediğim aradaki benzerliği çıkarmış olmalısınız. Yeni oluşturlan her nesne ram’de bir yer alıyor ve o yerede bir id veriliyor. Bunlara C++ da referans numaraları deniliyor ve bu referans numarları gösterici değişkenlerle tutulabiliyor. Python’daki id mantığıda buradan gelmektedir. Yani sadece Python’a özgü bir durum değildir. Şimdi bunu örneklerle açıklayalım.
1 2 3 4 5 6 | a="Python" #a değişkenine değer atadık print(id(a)) #ve a değişkenin id numarasını bulduk. ###################Ekran Çıktısı########################### #1568142693488 ###################Ekran Çıktısı########################### |
Python değişkenlere atanan değerler aynı ram’de farklı yerlere yerleştirmek yerine ilkinin id’sini ona vermektedir. Budurum ram’da yer israfını önlemiş programların daha hızlı ve kullanışlı olmasını sağlamıştır. Bunu aşağıdaki uygulamayla daha net anlayacağız.
1 2 3 4 5 6 7 8 9 10 11 12 | a="Python" print(id(a)) b="Python" print("\n") print(id(b)) ###################Ekran Çıktısı########################### #1636530361456 # # #1636530361456 ###################Ekran Çıktısı########################### |
Yukarıdaki uygulamada da anlaşıldığı gibi değişkenlerdeki değer python olduğu için ikisininde id’si aynı
Yine id numlaralarını is işleciyle karşılaştırabiliyoruz
1 2 3 4 5 6 7 8 9 10 11 12 | a="Python" b="Python" if a is b: print("id numaraları aynı a id=({}) == b id({})".format(id(a),id(b))) else: print("id numarları farklı") ###################Ekran Çıktısı########################### #id numaraları aynı a id=(1941920912432) == b id(1941920912432) ###################Ekran Çıktısı########################### |
Dikkat Python id numarası atamasında küçük verilerde aynı id numarasını atarken büyük verilerde ise
farklı id() numaraları atamaktadır.
Evet umarım Python işleçler içeriği sizlere faydalı olmuştur. Başarılar.