Sayılar ve Matematik İşlemleri
Pythonda henüz dört başı mamur bir program yazamasak da en azından şimdilik onu basit bir hesap
makinesi niyetine kullanabiliriz. Örneğin:
1
2
3
4
5
6
7
2 + 5
5 2
2 * 5
6 / 2
İsterseniz bunların başına print komutu ekleyerek de kullanabilirsiniz bu işlevi. Bir örnek verelim:
1
print 234 + 546
Gördüğünüz gibi tamsayıları (integer) yazarken tırnak işaretlerini kullanmıyoruz. Eğer tırnak işareti
kullanırsak Python yazdıklarımızı tamsayı (integer) olarak değil karakter dizisi (string), yani bir
nevi harf olarak algılayacaktır. Bu durumu birkaç örnekle görelim:
1
print 25 + 50
Bu komut, 25 ve 50′yi toplayıp sonucu çıktı olarak verecektir. Şimdi aşağıdaki örneğe bakalım:
1
print "25 + 50"
Bu komut 25 ile 50′yi toplamak yerine, ekrana 25 + 50″ şeklinde bir çıktı verecektir. Peki şöyle bir
komut verirsek ne olur:
1
print "25" + "50"
Böyle bir komutla karşılaşan Python derhal 25″ ve 50″ karakter dizilerini (bu sayılar tırnak içinde
olduğu için Python bunları sayı yerine koymaz ) yan yana getirip birleştirecektir. Yani şöyle bir şey
yapacaktır:
1
2
3
print "25" + "50"
2550
Uzun lafın kısası, 25″ ifadesi ile Ben Python, Monty Python! ifadesi arasında Python açısından
hiç bir fark yoktur. Bunların ikisi de karakter dizisi sınıfına girer. Ancak tırnak işareti olmayan 25
ile Ben Python, Monty Python! ifadeleri Python dilinde ayrı anlamlar taşır. Çünkü bunlardan biri
tamsayı (integer) öteki ise karakter dizisidir (string).
Şimdi matematik işlemlerine geri dönelim. Öncelikle şu komutun çıktısını inceleyelim:
1
2
3
print 5 / 2
2
Ama biz biliyoruz ki 5′i 2′ye bölerseniz 2 değil 2,5 çıkar O zaman nedir bu şimdi? Yoksa Python
matematikten anlamıyor mu?! Anlıyor anlamasına ama bizim de Pythona biraz yardımcı olmamız
gerekiyor. Aynı komutu bir de şöyle deneyelim:
1
2
3
print 5.0 / 2
2.5
Gördüğünüz gibi bölme işlemini oluşturan bileşenlerden birinin yanına .0″ koyulursa sorun
çözülüyor. Böylelikle Python bizim sonucu tamsayı yerine kayan noktalı (floating point) sayı
cinsiden görmek istediğimizi anlıyor. Bu .0″ ifadesini istediğimiz sayının önüne koyabiliriz. Birkaç
örnek görelim:
1
2
3
print 5 / 2.0
print 5.0 / 2.0
Pythonda matematik işlemleri yapılırken alıştığımız matematik kuralları geçerlidir. Yani mesela
aynı anda bölme çıkarma, toplama, çarpma işlemleri yapılacaksa işlem öncelik sırası, önce bölme
ve çarpma sonra toplama ve çıkarma şeklinde olacaktır. Örneğin:
1
print 2 + 6 / 3 * 5 4
işleminin sonucu 8 olacaktır. Tabii biz istersek parantezler yardımıyla Pythonun kendiliğinden
kullandığı öncelik sırasını değiştirebiliriz. Bu arada yapacağımız matematik işlemlerinde sayıları
kayan noktalı sayı cinsinden yazmamız işlem sonucunun kesinliği açısından büyük önem taşır
Eğer her defasında .0″ koymaktan sıkılıyorsanız, şu komutla Pythona, Bana her zaman kesin
sonuçlar göster, mesajı gönderebilirsiniz:
1
from __future__ import division
Not: Burada __ işaretini iki kez art arda klavyedeki alt çizgi tuşuna basarak yapabilirsiniz.
Artık bir sonraki Python oturumuna kadar bütün matematik işlemlerinizin sonucu kayan noktalı
sayı cinsinden gösterilecektir.
Buraya kadar Pythonda üç tane veri tipi (data type) olduğunu gördük. Bunlar:
Karakter dizileri (strings)
Tamsayılar (integers)
Kayan noktalı sayılar (floating point numbers)
Pythonda bunların dışında başka veri tipleri de bulunur. Ama biz şimdilik veri tiplerine ara verip
değişkenler (variables) konusuna değinelim biraz.
Değişkenler
Kabaca, bir veriyi kendi içinde depolayan birimlere değişken adı veriyorlar. Ama şu anda aslında
bizi değişkenin ne olduğundan ziyade neye yaradığı ilgilendiriyor. O yüzden hemen bir örnekle
durumu açıklamaya çalışalım. Mesela;
1
n = 5
ifadesinde n bir değişkendir. Bu n değişkeni 5″ verisini sonradan tekrar kullanılmak üzere
depolar. Python komut satırında n = 5″ şeklinde değişkeni tanımladıktan sonra print n komutunu
verirsek ekrana yazdırılacak veri 5 olacaktır. Yani:
1
2
3
4
5
n = 5
print n
5
Bu n değişkenini alıp bununla matematik işlemleri de yapabiliriz:
1
2
3
n * 2
n / 5
Hatta bu n değişkeni, içinde bir matematik işlemi de barındırabilir:
1
2
3
4
5
n = 34 * 45
print n
1530
Şu örneklere bir göz atalım:
1
2
3
4
5
6
7
8
9
a = 5
b = 3
print a * b
15
print "a ile b'yi çarparsak", a * b, "elde ederiz!"
a ile byi çarparsak 15 elde ederiz!
Burada değişkenleri karakter dizileri arasına nasıl yerleştirdiğimize, virgülleri nerede
kullandığımıza dikkat edin.
Aynı değişkenlerle yaptığımız şu örneğe bakalım bir de:
1
print a, "sayısı", b, "sayısından büyüktür"
Değişkenleri kullanmanın başka bir yolu da özel işaretler yardımıyla bunları karakter dizileri içine
gömmektir. Şu örneğe bir bakalım:
1
print "%s ile %s çarpılırsa %s elde edilir" % (3, 5, 3*5)
Burada, kullanacağımız her bir tamsayı için %s ekliyoruz. İfadenin en sonunda da % işaretinin
ardından parantez içinde bu değişkenleri teker teker tanımlıyoruz. Buna göre birinci değişkenimiz
3″, ikincisi 5″, üçüncüsü ise bunların çarpımı
Bir de şu örneği inceleyelim:
1
print "%s %s'yi seviyor!" % ("Ali", "Ayşe")
Görüleceği gibi, bu kez değişkenlerimiz tamsayı yerine karakter dizisi olduğu için parantez içinde
değişkenleri belirtirken tırnak işaretlerini kullanmayı unutmuyoruz.
Pythonda henüz dört başı mamur bir program yazamasak da en azından şimdilik onu basit bir hesap
makinesi niyetine kullanabiliriz. Örneğin:
1
2
3
4
5
6
7
2 + 5
5 2
2 * 5
6 / 2
İsterseniz bunların başına print komutu ekleyerek de kullanabilirsiniz bu işlevi. Bir örnek verelim:
1
print 234 + 546
Gördüğünüz gibi tamsayıları (integer) yazarken tırnak işaretlerini kullanmıyoruz. Eğer tırnak işareti
kullanırsak Python yazdıklarımızı tamsayı (integer) olarak değil karakter dizisi (string), yani bir
nevi harf olarak algılayacaktır. Bu durumu birkaç örnekle görelim:
1
print 25 + 50
Bu komut, 25 ve 50′yi toplayıp sonucu çıktı olarak verecektir. Şimdi aşağıdaki örneğe bakalım:
1
print "25 + 50"
Bu komut 25 ile 50′yi toplamak yerine, ekrana 25 + 50″ şeklinde bir çıktı verecektir. Peki şöyle bir
komut verirsek ne olur:
1
print "25" + "50"
Böyle bir komutla karşılaşan Python derhal 25″ ve 50″ karakter dizilerini (bu sayılar tırnak içinde
olduğu için Python bunları sayı yerine koymaz ) yan yana getirip birleştirecektir. Yani şöyle bir şey
yapacaktır:
1
2
3
print "25" + "50"
2550
Uzun lafın kısası, 25″ ifadesi ile Ben Python, Monty Python! ifadesi arasında Python açısından
hiç bir fark yoktur. Bunların ikisi de karakter dizisi sınıfına girer. Ancak tırnak işareti olmayan 25
ile Ben Python, Monty Python! ifadeleri Python dilinde ayrı anlamlar taşır. Çünkü bunlardan biri
tamsayı (integer) öteki ise karakter dizisidir (string).
Şimdi matematik işlemlerine geri dönelim. Öncelikle şu komutun çıktısını inceleyelim:
1
2
3
print 5 / 2
2
Ama biz biliyoruz ki 5′i 2′ye bölerseniz 2 değil 2,5 çıkar O zaman nedir bu şimdi? Yoksa Python
matematikten anlamıyor mu?! Anlıyor anlamasına ama bizim de Pythona biraz yardımcı olmamız
gerekiyor. Aynı komutu bir de şöyle deneyelim:
1
2
3
print 5.0 / 2
2.5
Gördüğünüz gibi bölme işlemini oluşturan bileşenlerden birinin yanına .0″ koyulursa sorun
çözülüyor. Böylelikle Python bizim sonucu tamsayı yerine kayan noktalı (floating point) sayı
cinsiden görmek istediğimizi anlıyor. Bu .0″ ifadesini istediğimiz sayının önüne koyabiliriz. Birkaç
örnek görelim:
1
2
3
print 5 / 2.0
print 5.0 / 2.0
Pythonda matematik işlemleri yapılırken alıştığımız matematik kuralları geçerlidir. Yani mesela
aynı anda bölme çıkarma, toplama, çarpma işlemleri yapılacaksa işlem öncelik sırası, önce bölme
ve çarpma sonra toplama ve çıkarma şeklinde olacaktır. Örneğin:
1
print 2 + 6 / 3 * 5 4
işleminin sonucu 8 olacaktır. Tabii biz istersek parantezler yardımıyla Pythonun kendiliğinden
kullandığı öncelik sırasını değiştirebiliriz. Bu arada yapacağımız matematik işlemlerinde sayıları
kayan noktalı sayı cinsinden yazmamız işlem sonucunun kesinliği açısından büyük önem taşır
Eğer her defasında .0″ koymaktan sıkılıyorsanız, şu komutla Pythona, Bana her zaman kesin
sonuçlar göster, mesajı gönderebilirsiniz:
1
from __future__ import division
Not: Burada __ işaretini iki kez art arda klavyedeki alt çizgi tuşuna basarak yapabilirsiniz.
Artık bir sonraki Python oturumuna kadar bütün matematik işlemlerinizin sonucu kayan noktalı
sayı cinsinden gösterilecektir.
Buraya kadar Pythonda üç tane veri tipi (data type) olduğunu gördük. Bunlar:
Karakter dizileri (strings)
Tamsayılar (integers)
Kayan noktalı sayılar (floating point numbers)
Pythonda bunların dışında başka veri tipleri de bulunur. Ama biz şimdilik veri tiplerine ara verip
değişkenler (variables) konusuna değinelim biraz.
Değişkenler
Kabaca, bir veriyi kendi içinde depolayan birimlere değişken adı veriyorlar. Ama şu anda aslında
bizi değişkenin ne olduğundan ziyade neye yaradığı ilgilendiriyor. O yüzden hemen bir örnekle
durumu açıklamaya çalışalım. Mesela;
1
n = 5
ifadesinde n bir değişkendir. Bu n değişkeni 5″ verisini sonradan tekrar kullanılmak üzere
depolar. Python komut satırında n = 5″ şeklinde değişkeni tanımladıktan sonra print n komutunu
verirsek ekrana yazdırılacak veri 5 olacaktır. Yani:
1
2
3
4
5
n = 5
print n
5
Bu n değişkenini alıp bununla matematik işlemleri de yapabiliriz:
1
2
3
n * 2
n / 5
Hatta bu n değişkeni, içinde bir matematik işlemi de barındırabilir:
1
2
3
4
5
n = 34 * 45
print n
1530
Şu örneklere bir göz atalım:
1
2
3
4
5
6
7
8
9
a = 5
b = 3
print a * b
15
print "a ile b'yi çarparsak", a * b, "elde ederiz!"
a ile byi çarparsak 15 elde ederiz!
Burada değişkenleri karakter dizileri arasına nasıl yerleştirdiğimize, virgülleri nerede
kullandığımıza dikkat edin.
Aynı değişkenlerle yaptığımız şu örneğe bakalım bir de:
1
print a, "sayısı", b, "sayısından büyüktür"
Değişkenleri kullanmanın başka bir yolu da özel işaretler yardımıyla bunları karakter dizileri içine
gömmektir. Şu örneğe bir bakalım:
1
print "%s ile %s çarpılırsa %s elde edilir" % (3, 5, 3*5)
Burada, kullanacağımız her bir tamsayı için %s ekliyoruz. İfadenin en sonunda da % işaretinin
ardından parantez içinde bu değişkenleri teker teker tanımlıyoruz. Buna göre birinci değişkenimiz
3″, ikincisi 5″, üçüncüsü ise bunların çarpımı
Bir de şu örneği inceleyelim:
1
print "%s %s'yi seviyor!" % ("Ali", "Ayşe")
Görüleceği gibi, bu kez değişkenlerimiz tamsayı yerine karakter dizisi olduğu için parantez içinde
değişkenleri belirtirken tırnak işaretlerini kullanmayı unutmuyoruz.
