Bu yazıda, tür dönüşümü ve tür dönüşümünün kullanımı hakkında bilgi edineceksiniz.
Python’da tür dönüşümünü öğrenmeden önce, Python Veri Tipleri hakkında bilgi sahibi olmalısınız.
Python Türü Dönüştürme:
Bir veri tipinin (tamsayı, string, float, vb.) değerini başka bir veri tipine dönüştürme işlemi, tip dönüşüm olarak adlandırılır. Python’un iki tür tipi dönüşümü vardır.
- Kapalı Tip Dönüşüm
- Açık Tip Dönüşüm
Python Kapalı Tür Dönüşüm:
Örtük tür dönüşüm de denilir, Python otomatik olarak bir veri türünü başka bir veri türüne dönüştürür. Bu işlem herhangi bir kullanıcı katılımına ihtiyaç duymaz.
Python’un veri kaybını önlemek için daha düşük veri tipinin (tamsayı) daha yüksek veri türüne (float) dönüştürülmesini teşvik eder. Aşağıdaki bu kavram için güzel bir örnektir.
Örnek 1: Tam sayıyı ondalıklı sayıya dönüştürme
1 2 3 4 5 6 7 8 9 10 11 12 | num_int = 123 num_flo = 1.23 num_yeni = num_int + num_flo print("Tam Numara Türü:",type(num_int)) print("Odalıkı Numara Tür:",type(num_flo)) print("Yeni Numara:",num_yeni) print("Yeni Numara Türü:",type(num_yeni)) |
Çıktı:
Yukarıdaki programda ne oldu
- int ve float türünde iki tane değişken oluşturuldu
- Oluşturulan bu iki değişkenin değeri num_yeni adında başka bir değişkene aktarıldı.
- Aktarılan değişkenin tipi daha geniş olan ondalıklı değişken olarak belirlendi.
- num_yeni değişkeni ondalıklı veriyi kaydetmek için ondalıklı hale gelmiş oldu.
Şimdi bir String ve tamsayı eklemeyi deneyelim ve Python’un nasıl davrandığını görelim.
Örnek 2: String (daha yüksek) veri türü ve tam sayı (alt) veri türü eklenmesi
1 2 3 4 5 6 7 8 9 | num_int = 123 num_str = "456" print("Tam Sayı Türü:",type(num_int)) print("String Türü:",type(num_str)) print(num_int+num_str) |
Tam Sayı Türü: <class ‘int’>
String Türü: <class ‘str’>
Traceback (most recent call last):
File “C:/Users/H2O/AppData/Local/Programs/Python/Python37/dsa.py”, line 7, in <module>
print(num_int+num_str)
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’
Yukarıdaki programda neler oldu
num_int ve num_str adında iki değişken oluşturup içine yukarıdaki değerleri aktardık. Çıktıdan görebileceğimiz gibi, TypeError (Tip Hatası) aldık. Python bu durumda Implicit Conversion kullanamaz. Ancak Python, Açık Dönüşüm olarak bilinen bu tür bir durum için çözüm sunmaktadır.
String türü ile diğer veri türlerini açık veri türü kullanarak birleştirebiliriz. Kapalı şekilde yapma şansımız yok.
Python Açık Tür Dönüşümü:
Açık Tip Dönüşüm’de, kullanıcılar bir nesnenin veri türünü gerekli veri türüne dönüştürür. Açık tip dönüşümü gerçekleştirmek için int(), floa (), str(), vb. gibi önceden tanımlı fonksiyonları kullanırız.
Bu tür dönüşüm, typecasting olarak da adlandırılır, çünkü kullanıcı nesnelerin veri tipini değiştirir (değiştirir).
Sözdizimi:
1 2 3 | (istenilen_tur)(ifade) |
İfade için gerekli veri tipi fonksiyonunun atanmasıyla tahminleme yapılabilir.
Örnek 3: Açık dönüşüm kullanarak String ve Tamsayıyı Toplama
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | num_int = 123 num_str = "456" print("int turu:",type(num_int)) print("string turu :",type(num_str)) num_str = int(num_str) print("Type Casting ile tür dönüşümü:",type(num_str)) num_sum = num_int + num_str print("tur dönüşümü ile sayıların toplamı:",num_sum) print("Toplamın türü:",type(num_sum)) |
Çıktı:
Ayrıca tür dönüşüm fonksiyonları ile tür dönüşümünü sağlamak için aşağıdaki dönüşüm fonksiyonlarını kullanarak tür dönüşümü yapılabilir
Python Tür Dönüşümü Fonksiyonları
Fonksiyon ve Tanım |
---|
int(a [,taban])a değişkenini belirtilen taban türüne çevirir. |
long(a [,taban] )a değişkeninin belirtilen taban türüne dönüştürür. |
float(a)a değişkenini ondalıklı türe çevirir. |
complex(real [,imag])Kompleks sayıya çevirir. |
str(a) a değişkenini string türüne çevirir. |
repr(a)Bir a nesnesinin yazdırılabilir bir temsilini içeren bir dizgi döndürür. |
eval(str)String dizgesinden bir nesne döndürür. |
tuple(a)a değişkenini tuple türüne çevirir. |
list(a)a değişkenini list türüne çevirir. |
set(s)s nesnesini ayar nesnesine çevirir. |
dict(d)d nesnesini dictionary nesnesine çevirir. d (key,value) tipinde olmalıdır. |
frozenset(s)s nesnesini frozenset nesnesine çevirir. |
chr(x)tamsayıyı karaktere çevirir. |
unichr(x)tam sayıyı unicode olarak dönüştürür. |
ord(x)Tek karakteri tam sayıya çevirir. |
hex(x)Tam sayıyı hexadecimal değere çevirir. |
oct(x)Tam sayıyı oktal değere çevirir. |
Bu dersimizde tür dönüşümü konusunu inceledik. Bir sonraki Python Giriş Komutları yada tüm Python konuları için Python Dersleri ile devam edebilirsiniz.
1 Yorum