Python'da int (integer, tamsayı) ve float (ondalıklı) olmak üzere temelde iki türlü sayı tipi mevcuttur. Temelde diyorum çünkü complex sayılar da Python'da veri tipi olarak mevcuttur. Fakat iş hayatımızda ve projelerimizde kompleks sayıları kullanmayacağımız için int ve float nümerik veri tipleri yeterlidir.
Bir önceki bölümde oluşturduğumuz PythonDataTypes PyCharm projemizi açalım ve main.py sayfasına yukarıdaki gibi 3 farklı değişken tanımlayalım. (String Data Type konusunda PythonDataTypes projesini nasıl oluşturduğumuzu görebilirsiniz.)
a değişkeni 2 değerine sahip bir tamsayıdır (integer'dir') ve tipi <class 'int'> olarak tamsayı tipinde yazdırılır.
b değşkeni 4.48 değerine sahip ondalıklı bir sayıdır (float'dur). Tipi <class 'float'> olarak ondalıklı sayı tipinde yazdırılır.
c değişkeninin değeri "6"'dır. Tırnak işareti içerisinde kullanıldığı için Python bu sayıyı metin olarak algılar. Bu sebeple tipi <class 'str'> olacak şekilde string (metinsel) veri tipinde gösterilir. Sonuç olarak tırnak işareti içerisinde yazılı tüm değerler Python tarafından metinsel ifade olarak algılanır diyebiliriz. Sayısal değerlerin hiçbirinde tırnak işareti kullanmamalıyız.
+ (artı) operatörü ile toplama, - (eksi) operatörü ile çıkarma, * (yıldız, asteriks) operatörü ile çarpma ve / (slaş, slash) operatörü ile bölme işlemi yapabiliriz. Toplama, çıkarma ve çarpma işlemi yapan tüm operatörler tamsayı (integer) çıktısı verirken sadece bölme operatörü ondalıklı (float) çıktısı vermiştir.
Eğer sonucu illa tamsayı olarak görme gibi bir takıntımız varsa ilk çözüm olarak // (çift slaş) işareti ile bölme yapabiliriz. Bu şekilde ondalıklı ifadeler çıktı olarak gösterilmeyecektir. Ya da bölme işlemini int() fonksiyonu ile integer (tamsayı) değerine çevirebiliriz. İki değer de aynı sonucu verecektir.
Fakat bu yöntem aslında sağlıklı sonuç vermez. Örneğin 5/2 işleminin sonucunu 2.5 beklerken 2 yazdırılmıştır. İstatistiksel olarak 2.5, 3'e daha yakın bir sayıdır. Bu sebeple ondalıklı sayıların gösterilmemesi konusunda dikkatli olmalıyız.
Bir tamsayı ile tamsayının çarpımı tamsayı sonucunu verecektir. Fakat bir tamsayı (int) ile ondalıklı (float) sayının çarpımı daima ondalıklı (float) sonuç verecektir. Bu aslında beklenen bir sonuçtur. Fakat illa ki tamsayı cinsinden sonuç gösterilmek isteniyorsa çarpım int() fonksiyonu ile yazdırılabilir ve sonuç tamsayıya dönüştürülebilir.
Üstlü ifadelerde ** (çift yıldız) kullanılması yeterlidir. Örneğin; 2 üzeri 8'in sonucu 2**8 şeklinde hesaplanır. Bu şekilde sonuç 256 bulunur.
Bir bölme işleminin kalanını bulmak için % (yüzde) operatörü kullanılır. 10/3 işleminin bölümü 3, kalanı 1'dir.
Python'da matemetiksel işlemler ile uğraşırken kullanabileceğimiz birçok hazır matematik fonksiyonu bulunmaktadır.
Dilimizdeki tam anlamı yuvarla'dır. Ondalıklı sayıları yuvarlamak için kullanılır.
2.1, 2.5 ve 2.7 sayılarını yuvarladığımızda sırasıyla 2, 2 ve 3 sonuçlarını elde ederiz. İstatistiksel olarak 2.5'in 3'e yuvarlanmasını bekleriz ama Python yuvarlamayı 2 olarak yapmaktadır.
Bölme işleminde de sonuç 2 olarak görüntülenecektir.
Diğer birçok matematiksel işlemi yapabilmek için import math komutu ile math modülünü çağırabiliriz.
sqrt() fonksiyonu ile 9'un karekökünü 3 olarak bulabiliriz. pi komutu ile pi sayısını yazdırabiliriz.
math modülünün diğer tüm matematiksel fonksiyonlarına ulaşmak için W3 Schools'un sayfasını ziyaret edebilirsiniz.
Python'da belirli bir değişken üzerinde aritmetik işlemler yapmak istiyorsak +=, -=, *= ve /= operatörlerini kullanabiliriz. Yukarıdaki örnekte a değişkenine 10 değerini tanımladık. += ile 5 değerini ekledik. Çıktı olarak da 15 sayısını elde ettik.
Bir string veri ile nümerik verinin toplanabilmesi için dönüştürme işlemi yapmalıyız.
Yukarıdaki örnekte a sayısal bir değişken olmasına rağmen b metinsel bir ifadedir. Bu yüzden bu iki değişkeni toplamaya çalıştığımızda veri tipi hatası aldık.
İki değişkeni toplamak istersek string veri tipinde olan değişkeni integer (tamsayı) veri tipine dönüştürmemiz yeterlidir. Bunun için int() fonksiyonunu kullanıyoruz.
Python'da veri tiplerini dönüştürmek için int(), float() ve str() fonksiyonlarını kullanabiliriz. Yukarıdaki örnekte 2.4 değerine sahip a float değişkenini tamsayıya (int'e), 4 tamsayı değerine sahip b değişkenini ondalıklı sayıya (float'a), 7 tamsayı değerine sahip c değişkenini ise metinsel bir ifadeye (string'e) dönüştürüp yazdırdık.
Dilersek yukarıdaki komutlar ile dönüştürme işlemini kalıcı hâle getirebiliriz. Bu şekilde tüm değişkenlerimizin veri tipleri değişecektir.
Uygulama 01: 4x7, 8/9 ve 144+25 işlemlerinin sonuçlarını Python'da yazdırınız.
Yukarıdaki komutları uyguladığımızda tüm işlemlerin sonuçlarına ulaşabiliriz. İşlemlerin sonuçları sırasıyla
28olacaktır.
0.8888888888888888
169
Uygulama 02: 4 üzeri 8 işleminin sonucunu Python'da bulunuz.
Üslü işlemler için ** (çift yıldız) operatörünü kullanmamız yeterlidir. İşlemin sonucu
65536olacaktır.
Uygulama 03:
Yukarıdaki a ve b değişkenini toplayınız.
İki değişkeni toplayabilmek için b string değişkenini integer değişkene dönüştürmeliyiz. Bunun için int(b) ifadesini kullanıyoruz ve toplama işlemini gerçekleştiriyoruz. Sonuç
30olacaktır.