PYTHONDA VERİ TİPİ DÖNÜŞÜMLERİ
Python programlama dilinde ve diğer programlama dilinde veri döüşümleri algoritmalar için çok kritik noktalardır.Ondalıklı sayıdan tam sayıya çevirme,stringden ondalıklı sayıya çevirme gibi dönüşümlere veri dönüşümü denir.
1) a=" dün geldiler"
print(a)-------------------->çıktı=dün geldiler
<> Burada görüldüğü üzere bir string tanımladık ve bu tanımladığımız veri tipi bir string veri tipi ondan dolayı çift tırnak içinde tanımladı.
1)string---->integer(karakter dizisi---->tamsayı)
**Bu tür örneklerde dikkatinizi çektiğini düşündüğüm bir durum var.Neden hep çift tırnak içinde hep kelime tanımlıyoruz.Yada aynı şekilde çift tırnak içinde neden hep harf kullanıyoruz da rakam yada sayı kullanmıyoruz.Bu durumu kısaca örnekler ile açıklamaya çalışalım.
/\ a="123"
print(a)-------------------->çıktı=123
/\ a="123"
b="123"
print(a+b)---------------->çıktı=123123
***Burayı dikkatlice okumanızı tavsiye ediyorum burası gerçekten bu kısımın can alıcı noktalarından birisi.Örneklerde görüldüğü gibi şimdiye kadar öğrendiğimiz bütün önemli konuları buralarda artık anlayarak kullanıyoruz ve uyguluyoruz.Can alıcı kısıma dönecek olursak 2.örnekte neden sonuç 246 olacağı yerde 123123 şeklinde bize yazdırıldı?.İşte bu kısımın cevabı bizim can alıcı kısımımız.
Sorunun cevabına gelecek olursak buradaki sorumuzun cevabı "veri dönüşümü"olarak yanıtlayabiliriz.Bu kısımı örnekler ile destekleyelim.
2)a="123"
b="123"
c=int(a)+int(b)
print(c)-------------------->çıktı=246
***Bu örneği inceleyecek olursak yorumumuz şu şekilde olacaktır;
Burada öncelikle a ve b adında iki değişken belirlendi ve bu değişkenlere 123 sayısı atandı.Burada veri dönüşümü stringden integer yani karakter dizisinden tamsayı tipine dönüştürüldü.Eğer burada tamsayı dönüşümü yapılmasaydı yukarıdaki örnekte görüldüğü gibi sayı değerimiz işlediğimiz işlemi yaptırmadan birleşmiş bir şekilde 123123 şeklinde bize yazdırılıcaktır.İşte veri tipi dönüşümünün bize sağladığı en büyük avantaj herhangi bir türde verilen değer işimize yaramayacak bir değer ise bu değeri istediğimiz türe dönüştürmemize olanak sağlar. Örnekte görüldüğü gibi "int(x)" veri dönüşümü verilen değeri tamsayıya dönüştüren bir kod yazımıdır.Bu kısımları örnekler ile destekleyecek olursak;
3)a=111
b=222
c=int(a)+int(b)
print(c)-------------------->çıktı=333
<>Bu örneği açıklayacak olursak burada öncelikle verilen a ve b değerlerini integer sayı değerine dönüştürdük ve daha sonra bu yapılan dönüşümleri tek bir sabite atayarak print fonksiyonu ile yazdırıyoruz.
4)a=222
b=78
c=int(a)+int(b)
print(c)-------------------->çıktı=300
<>Bu örneğimizde aynı yukarıdaki örnekteki basamakları teker teker yaparak en sonda print fonksiyonu ile yazdırıyoruz.
5)a=58
b=42
c=int(a+b)
print(c)-------------------->çıktı=100
<>Burada aynı şekilde iki değere atama yaparak bunları en sonda tek bir int() dönüşüm parantezinde toplayarak print fonksiyonu ile yazdırıyoruz.Burada öğrendiğimiz şey demekki tek bir int() parantezinde de bu veri dönüşüm işlemini gerçekleştiriyoruz.
6)a="36"
b=64
c=int(a)+b
print(c)-------------------->çıktı=100
<>Burada kafanız belki biraz karışabilir.Ama emin olun hiçbir farklı birşey yok bu örnekte benim dikkatinizi çekmeye çalıştığım kısım hangi değer başka bir türe dönüştürülmek isteniyorsa ona göre veri türü değişimi yaptırıyoruz. dikkat etmenizi istediğim nokta bu.
7)a=88
b="62"
c=int(a+b)
print(c)------------------->çıktı=error
<>Aslında en karışık ve benim için de açıklaması en zor kısım bu kısım.Burada sorulabilecek bütün soruları soralım.
soru1)Neden burada hata verdi.
----Burada hata vermesinin sebebi string veri tipi ile integer sayı tipinin aynı parantez içinde okunamaması.
soru2)Neden 5.örnekte bir sıkıntı olmadı da bu örnekte sıkıntı oldu.
----İşte bu sorunun cevabını açıklamak inanın çok zor.Yani bu sorunun cevabını şöyle verebiliriz diye düşünüyorum.Çünkü bu örnekte değişkenlerin ikisi de farklı türden ama 5.örnekte her iki değişkende aynı türden olduğu için bu kodumuzda sıkıntı olmadı.
Burada ki örneklerde bize verilen stringleri biz integer tipine dönüştürdük ve yapmak istediğimiz işlemi bu dönüşüm sayesinde yapabildik.Şimdi diğer veri tipi dönüşümlerine bakalım.
2)integer---->float(tamsayı---->ondalıklı)
Float veri tipi Python programlama dilinde ondalıklı sayıları temsil eder.Aynı integer tipinde olduğu gibi bu veri tipinde de kelimenin kısaltmasıyla dönüştürme işlemini yapıyor.Bu kısımı örneklerle destekleyerek anlatalım.
/\ a=100
float(a)
print(float(a))------------------->çıktı=100.0
/\ a=100
c=float(a)
print(c)------------------->çıktı=100.0
**Burada ki iki örnekte görüldüğü gibi integer sayı tipi ondalıklı sayı tipine dönüştürülüyor.Burada asıl bizim dikkat etmemiz gereken kısım en başta tanımlanan değerin iki şekilde print fonksiyonu ile okunabilir olması.Üstteki örnek için analiz yaparsak;
Bu örnekte öncelikle 100 sayısı a değerine atanıyor.Burada gördüğünüz gibi a değeri tamsayı tipinde biz bu değeri bu örnekte float(atama yapılan değer) şeklinde ondalıklı sayı tipine dönüştürüyoruz.Ve son olarak da float(atama yapılan değer) şeklinde print fonksiyonu ile yazdırılıyor.
İkinci örnekte de aynı adımlar tekrarlanıyor.Ama burada farklı olarak biz float veri tipine dönüştürdüğümüz sayıyı başka bir değere atıyoruz ve aynı şekilde print fonksiyonu ile yazdırılıyor.
**Bizim bu iki örnekten öğrenmemiz gereken burada veri tipi dönüşümünü iki farklı türde yapabiliyoruz.Birincisi direkt olduğu gibi print fonksiyonu ile yazdırıyoruz.İkinci örnekte ise yapılan veri tipi dönüşümünü bir değere atayarak print ile yazdırıyoruz ikisinde sonucu 100.0 olarak bize veriliyor.Aralarında ki tek fark algoritmalarında ki değişiklikler geri kalan herşey aynı.
3)string---->integer(karakter dizi---->tamsayı)
/\ a="155112156"
b=int(a)
print(b)------------------>çıktı=155112156
**Bu örnekte a değeri bir string olarak tanımlandırılmış bize.Biz burada bu a değerini başka bir sabite atayarak integer olmasını istediğimiz şekilde veri tipi dönüşümü yapıyoruz.Ve son olarak da bu tamsayı ataması yaptığımız değeri print fonksiyonu ile yazdırıyoruz.
/\ a="222434"
print(int(a))------------------>çıktı=222434
**Bu örneğinde yukarıda bahsettiğim gibi tek bir farkı var.Atamada yapılan farklılıklar burada a sabitini "x=int(a)" şeklinde x sabitine atayabilirdik ama direkt olarak "print(int(a))" şeklinde yazdırma işlemini gerçekleştirdik görüldüğü gibi hiçbir farklılık olmadan kodumuzu yazdırabiliyoruz.
4)string---->float(karakter dizi---->ondalıklı)
/\ a="9998" a="9998"
b=float(a) ====================== print(float(a))
print(b)
**Yukarıdaki örneklerde belirttiğimiz gibi bu kısımdada aynı kod dizimi ile bu veri tipi dönüşümünü yapıyoruz.Bu iki örnekte sizin de tahmin ettiğiniz gibi sonuç 9998 olarak bize verilecektir.Bu veri tipi dönüşümlerini anladınız diye umuyorum eğer hala sıkıntınız varsa çok fazla takılmayın bu kısımları ve şu ana kadar gördüğümüz kısımları çok fazla örnekle ayrıntılı bir şekilde anlatacağız zaten.Benden şimdilik bu kadar dostlar.Kendinize iyi bakın. Hoşçakalın.
2)a="123"
b="123"
c=int(a)+int(b)
print(c)-------------------->çıktı=246
***Bu örneği inceleyecek olursak yorumumuz şu şekilde olacaktır;
Burada öncelikle a ve b adında iki değişken belirlendi ve bu değişkenlere 123 sayısı atandı.Burada veri dönüşümü stringden integer yani karakter dizisinden tamsayı tipine dönüştürüldü.Eğer burada tamsayı dönüşümü yapılmasaydı yukarıdaki örnekte görüldüğü gibi sayı değerimiz işlediğimiz işlemi yaptırmadan birleşmiş bir şekilde 123123 şeklinde bize yazdırılıcaktır.İşte veri tipi dönüşümünün bize sağladığı en büyük avantaj herhangi bir türde verilen değer işimize yaramayacak bir değer ise bu değeri istediğimiz türe dönüştürmemize olanak sağlar. Örnekte görüldüğü gibi "int(x)" veri dönüşümü verilen değeri tamsayıya dönüştüren bir kod yazımıdır.Bu kısımları örnekler ile destekleyecek olursak;
3)a=111
b=222
c=int(a)+int(b)
print(c)-------------------->çıktı=333
<>Bu örneği açıklayacak olursak burada öncelikle verilen a ve b değerlerini integer sayı değerine dönüştürdük ve daha sonra bu yapılan dönüşümleri tek bir sabite atayarak print fonksiyonu ile yazdırıyoruz.
4)a=222
b=78
c=int(a)+int(b)
print(c)-------------------->çıktı=300
<>Bu örneğimizde aynı yukarıdaki örnekteki basamakları teker teker yaparak en sonda print fonksiyonu ile yazdırıyoruz.
5)a=58
b=42
c=int(a+b)
print(c)-------------------->çıktı=100
<>Burada aynı şekilde iki değere atama yaparak bunları en sonda tek bir int() dönüşüm parantezinde toplayarak print fonksiyonu ile yazdırıyoruz.Burada öğrendiğimiz şey demekki tek bir int() parantezinde de bu veri dönüşüm işlemini gerçekleştiriyoruz.
6)a="36"
b=64
c=int(a)+b
print(c)-------------------->çıktı=100
<>Burada kafanız belki biraz karışabilir.Ama emin olun hiçbir farklı birşey yok bu örnekte benim dikkatinizi çekmeye çalıştığım kısım hangi değer başka bir türe dönüştürülmek isteniyorsa ona göre veri türü değişimi yaptırıyoruz. dikkat etmenizi istediğim nokta bu.
7)a=88
b="62"
c=int(a+b)
print(c)------------------->çıktı=error
<>Aslında en karışık ve benim için de açıklaması en zor kısım bu kısım.Burada sorulabilecek bütün soruları soralım.
soru1)Neden burada hata verdi.
----Burada hata vermesinin sebebi string veri tipi ile integer sayı tipinin aynı parantez içinde okunamaması.
soru2)Neden 5.örnekte bir sıkıntı olmadı da bu örnekte sıkıntı oldu.
----İşte bu sorunun cevabını açıklamak inanın çok zor.Yani bu sorunun cevabını şöyle verebiliriz diye düşünüyorum.Çünkü bu örnekte değişkenlerin ikisi de farklı türden ama 5.örnekte her iki değişkende aynı türden olduğu için bu kodumuzda sıkıntı olmadı.
Burada ki örneklerde bize verilen stringleri biz integer tipine dönüştürdük ve yapmak istediğimiz işlemi bu dönüşüm sayesinde yapabildik.Şimdi diğer veri tipi dönüşümlerine bakalım.
2)integer---->float(tamsayı---->ondalıklı)
Float veri tipi Python programlama dilinde ondalıklı sayıları temsil eder.Aynı integer tipinde olduğu gibi bu veri tipinde de kelimenin kısaltmasıyla dönüştürme işlemini yapıyor.Bu kısımı örneklerle destekleyerek anlatalım.
/\ a=100
float(a)
print(float(a))------------------->çıktı=100.0
/\ a=100
c=float(a)
print(c)------------------->çıktı=100.0
**Burada ki iki örnekte görüldüğü gibi integer sayı tipi ondalıklı sayı tipine dönüştürülüyor.Burada asıl bizim dikkat etmemiz gereken kısım en başta tanımlanan değerin iki şekilde print fonksiyonu ile okunabilir olması.Üstteki örnek için analiz yaparsak;
Bu örnekte öncelikle 100 sayısı a değerine atanıyor.Burada gördüğünüz gibi a değeri tamsayı tipinde biz bu değeri bu örnekte float(atama yapılan değer) şeklinde ondalıklı sayı tipine dönüştürüyoruz.Ve son olarak da float(atama yapılan değer) şeklinde print fonksiyonu ile yazdırılıyor.
İkinci örnekte de aynı adımlar tekrarlanıyor.Ama burada farklı olarak biz float veri tipine dönüştürdüğümüz sayıyı başka bir değere atıyoruz ve aynı şekilde print fonksiyonu ile yazdırılıyor.
**Bizim bu iki örnekten öğrenmemiz gereken burada veri tipi dönüşümünü iki farklı türde yapabiliyoruz.Birincisi direkt olduğu gibi print fonksiyonu ile yazdırıyoruz.İkinci örnekte ise yapılan veri tipi dönüşümünü bir değere atayarak print ile yazdırıyoruz ikisinde sonucu 100.0 olarak bize veriliyor.Aralarında ki tek fark algoritmalarında ki değişiklikler geri kalan herşey aynı.
3)string---->integer(karakter dizi---->tamsayı)
/\ a="155112156"
b=int(a)
print(b)------------------>çıktı=155112156
**Bu örnekte a değeri bir string olarak tanımlandırılmış bize.Biz burada bu a değerini başka bir sabite atayarak integer olmasını istediğimiz şekilde veri tipi dönüşümü yapıyoruz.Ve son olarak da bu tamsayı ataması yaptığımız değeri print fonksiyonu ile yazdırıyoruz.
/\ a="222434"
print(int(a))------------------>çıktı=222434
**Bu örneğinde yukarıda bahsettiğim gibi tek bir farkı var.Atamada yapılan farklılıklar burada a sabitini "x=int(a)" şeklinde x sabitine atayabilirdik ama direkt olarak "print(int(a))" şeklinde yazdırma işlemini gerçekleştirdik görüldüğü gibi hiçbir farklılık olmadan kodumuzu yazdırabiliyoruz.
4)string---->float(karakter dizi---->ondalıklı)
/\ a="9998" a="9998"
b=float(a) ====================== print(float(a))
print(b)
**Yukarıdaki örneklerde belirttiğimiz gibi bu kısımdada aynı kod dizimi ile bu veri tipi dönüşümünü yapıyoruz.Bu iki örnekte sizin de tahmin ettiğiniz gibi sonuç 9998 olarak bize verilecektir.Bu veri tipi dönüşümlerini anladınız diye umuyorum eğer hala sıkıntınız varsa çok fazla takılmayın bu kısımları ve şu ana kadar gördüğümüz kısımları çok fazla örnekle ayrıntılı bir şekilde anlatacağız zaten.Benden şimdilik bu kadar dostlar.Kendinize iyi bakın. Hoşçakalın.
Yorumlar
Yorum Gönder