Veri Tipleri

Veri tipleri (Data Types), her programlama dilinin vazgeçilmezidir. Python'da temel olarak 4 adet veri tipi vardır. Bunları sırasıyla görelim.

string (str)

string dediğimiz bu veri tipleri, metinsel ifadeleri kapsar. Bir önceki blogda 'name = "Cyber Worm"' şeklinde bir değişken tanımlaması yapmıştık. İşte, bu değişken aslında string değişkendir ve Python'da bu, 'str' olarak gösterilir. Bu noktada string ifadeler tırnak içerisine alınan ifadelerdir. Tırnak içerisinde olmayan bir değer string değer olarak algılanmaz.

int (integer)

Bu, görselde de gördüğünüz üzere tam sayıları kapsar. Yani bu durumda örneğin 'age' isimli bir değişkene '23' değerini verirseniz 'age' değişkeni int değer haline gelir. Bu noktada dikkat etmeniz gereken bir durum var. int bir değeri tırnak içerisine alırsanız bu artık int değil, string olarak algılanacaktır. Dolayısıyla int değerler için kesinlikle tırnak işreti kullanılmamalıdır. Birazdan örnekleri gördükçe daha net anlayacaksınızdır.

float

Kesirli sayıları ifade eder. Bu da int gibi tırnak içerisine alınmadan kullanılır; tırnak içerisindeyken kendisi artık bir float değil, string olarak algılanacaktır.

bool

İlk bakışta pek işe yaramıyormuş gibi gözüken ama aslında çok işlevli olan bir veri tipidir. Bu, sadece 'true' ve 'false' değerler alabilir ancak Python içerisinde bunu yazarken ilk harfleri büyük olmalıdır; 'True' ve 'False'. Ayrıca tırnak içerisine alınmazlar.

Peki, bir değişkenin hangi veri tipine sahip olduğunu öğrenmenin bir yolu var mıdır? Elbette, bakalım.

Bunun için 'type' komutunu kullanıyoruz. Type, İngilizce'den gelir ve anlamı 'tip' şeklindedir. Örneğin ilk satır için Python'a şunu demiş oluyoruz: "Bana name değişkeninin tipini yazdır". Kurduğum cümleye bakarsanız anlayacaksınız ki programlamada kodlar soldan sağa değil, sağdan sola doğru okunur.

Sağ taraftaki terminal ekranına baktığınızda emirlerimizi yerine getirmiş olduğunu ve sırasıyla hepsinin hangi veri tipine sahip olduğunu söylediğini göreceksinizdir.

Veri tiplerinin ne olduklarını gördüğümüze göre 'veri tipi dönüştürme' kavramını öğrenmemiz gerekir.

Veri Tipi Dönüştürme (Type Conversion)

Python'da normal bir şekilde matematiksel işlemleri yapabiliyoruz. Ancak farklı değerler ile işlem yapmak istediğimiz zaman karşımıza türlü sorunlar çıkıyor. İsterseniz birkaç toplama işlemi yapalım ve en son kısımda bir int ile bir string'i toplamayı deneyelim; ne olacağına bakalım.

Dikkat edelim. İlk çıktımız 45; bu, num1 + num2 ifadesinin sonucudur. İkincisi, name + surname ifadesinin sonucudur. Buraya kadar herhangi bir problem yok. Demek ki aynı veri tipine sahip ifadeleri toplayabiliyoruz. Ancak son satıra geldiğimizde bir hata ile karşılaşıyoruz. Hatanın ismi 'TypeError' yani 'Tip Hatası'. Bize söylenen şey şu: "İşlenen tipler desteklenmiyor". Zaten mantıksal açıdan bakıldığında bir sayı ile bir metni nasıl toplayabilirsiniz ki? Çarpabilirsiniz, evet ancak toplayamazsınız.

Biraz önce int ve float tiplerinin tırnak içerisinde yazılması durumunda string olarak algılanabileceklerini söylemiştim. Şimdi, veri tipini geçici olarak değiştirmeyi göreceğiz. Yani int olan değeri geçici olarak string haline getirip toplama işlemi yapmayı deneyeceğiz. Bunu nasıl yaparız?

En aşağıdaki satıra dikkat edin. Normal şartlarda num1 değişkeninin tipi int idi. Ancak biz 'str()' ifadesi ile bunu geçici olarak string ifadeye dönüştürmeyi başardık ve çıktımıza baktığınızda biraz önce hata veren kod, şu an '20Cyber' olarak gözüküyor. Demek ki toplama işlemimiz başarılı. Ancak burada unutmamanız gereken şey; bu işlemin, veri tipini geçici olarak değiştirdiğidir. Yani num1 değişkeninin değeri hâlâ int; sadece geçici bir süreliğine onu string yaptık ve toplama işlemini gerçekleştirdik.

Bu durumu kanıtlamak açısından type komutunu kullanarak num1 değişkeninin veri tipine bakabiliriz.

Kod sayfasının ve terminal sayfasının en alt satırında num1 değişkeninin aslında int olduğunu görüyoruz. Buna rağmen "Type Conversion" dediğimiz olay sayesinde bunu geçici olarak string tipine dönüştürüp işlem yapıyoruz.

Peki, bu dönüşümü string'e uygularsak yani int(name) yaparsak ne olur?

Bu sefer 'ValueError' yani 'Değer Hatası' aldık. Burada mantığımızı kullanırsak zaten metinsel bir ifadenin sayısal ifadeye dönüştürülmesinin olanaksız olduğunu öngörebiliriz. Bu hatayı da bu yüzden aldık.

Peki, bir int ile float tipini toplarsak ne olur?

Tahmin edebileceğiniz üzere 20 + 25.5 = 45.5 olacaktır; bu olası bir şeydir. Peki, virgüllü kısmı görmek istemezsek veri tipi dönüştürme işlemine başvurabilir miyiz? Bakalım.

Yapmamız gereken tek şey float tipine sahip olan değişkeni int'e dönüştürmek olacaktır. Son bir örnek yapalım ve bu örnek, iki tam sayının toplamının virgüllü olarak gösterilmesi olsun.

Burada iki tane int tipinde değerimiz var. Normal şartlarda bunları topladığımızda 45 sonucunu alırız ancak ikisinden birini float tipine dönüştürerek bunun virgüllü bir şekilde gözükmesini sağlayabiliyoruz.

Bütün bu örneklerde aklınızı karıştıran bir nokta olabilir; "hangisini hangisine dönüştüreceğiz?". Tekrar dönüp baktığınızda bu işlemin dönüştürülecek olan değere uygulandığını fark edeceksinizdir. Eğer int bir değeri string'e dönüştürmek isterseniz str(num1) tarzında bir kullanım yapmanız gerekecektir. Eğer float bir değeri int değere dönüştürecekseniz de int(num1) tarzında bir kullanım yapacaksınızdır.


Yayınlanma Tarihi: 2022-10-21 23:02:58

Son Düzenleme Tarihi: 2023-02-04 20:05:18