Python Öğreniyorum - Ders 9 - Python'da Veri Tipleri Arası Dönüşümler

Hiç yorum yok
 

Bizi ilgilendire, şu ana kadar gördüğümüz 3 tane veri tipi vardı. Bunlar; integer(tam sayı), string(karakter dizisi), float(kayan noktalı sayı).

Hatırlarsanız 2.dersimizde şöyle bir örnek vermiştik.

5 / 2 yazdğımızda çıktısı 2 oluyordu. Sonuçta biz burada tam sayılarla işlem yapıyordur ve çıktı olarakda tam sayı elde ediyordur. Bunun üstesinden gelmenin 3 tane yolu vardı.

İlk olarak projenin başına   from _future_ import division    yazmaktı.
Diğer bir yolu ise sayılardan bir tanesini 5.0 gibi yazarak  kayan noktalı sayıya dönüştürmekti.
Diğer bir yolu ise float(5) fonksiyonun içine almaktı.

Öncelikle göstermek istediğim bir şey var.Type fonksiyonu verinin tipini belirler. Yani veri integer mı, string mi float mu onu söyler.

a = 5
type(a)   ==>  <type 'int'>     olarak bir çıktı veriyor bize Python. Yani buradaki int integer'nn int 'i.
Yani a'nın değer bir integer dır diyor.

a = "5"
type(a)  ==>  <type 'str'>   

a = "5"
type(a)  ==>  <type 'float'>
Biz veri tipi dönüşümlerinde buradaki kısaltmalaları temel alacağız.
Herhangi bir veriyi float'a dönüştürmek istersek float fonksiyonunu kullancağız.
Ya da herhangi bir veriyi integer'a dönüştürmeye çalışırsakda int fonksiyonunu kullancağız.

Hemen bir örnekle açıklayalım;

a = "5"
int(a)   ==> 5   a'nın  değeri normalde string iken biz başına int(a) yazdığımızda a'nın değeri sadece o  satırda kulllanılmak üzere integer oldu. Dikkat edilmesi gereken nokta. a halen daha string. Sadece int(a) kullanılan satırda integer oldu.

a = "5"
int(a) + 4    ==> 9   Normalde bir string le toplama işlemi yapılamazken biz onu int() fonksiyonu ile ineteger'a dönüştürdükten sonra artık toplama işlemi yapılabilir oldu.

string den integer'a dönüştürdük. Şimdide integer'dan string'e dönüştürelim.

a = 5
str(a)    ==>   '5'    Burada matematiksel işlem yaparsak hata verecektir. Çünkü bir string değeri ile matematiksel işlem yapılamaz.

Gelelim bunları nerede kullanacağımıza;

Hatırlarsanız input() fonskyonunundan bahsederken, input() fonksiyonun tehlikeli olduğunu hatta işletim sistemini çökertebilecek bazı kodlar bile yazılabileceğinden, kısacası güvenlik açıkları olan bir fonksiyon olduğunu söylemiştik.

O halde input() fonksiyonu kullanmayacaksak ve raw_input() fonksiyonu ilede matematiksel işlem yapamadığımza görede aklınızda ne ile matematiksel işlemler yaptıracağız diye bri soru uyanabilir.


Bu durumda imdadımıza int() fonksiyonu yetişiyor.


int(raw_input("Lütfen bir sayı giriniz : "))

int() fonksiyonunun içine raw_input() fonksiyonunu koyduk ve girilen değerin int olmasını sağladı. Eğer biz int() fonksiyonunu kullanmasaydık, girilen değer string olarak kalacaktı ve matematiksel işlem yapamaycaktık.

a = int(raw_input("Lütfen bir sayı giriniz : "))


Birde değinmek istediğim bir konuda şudur;


a = "elma"
int(a)   ==>  Traceback (most recent call last):
                       File "<pyshell#23>", line 1, in <module>
                            int(a)
                    ValueError: invalid literal for int() with base 10: 'elma' 


Biz her istediğimiz string'i de integer'a dönüştüremeyiz. Çünkü elma diye bir bir sayı yoktur. O yüzdende dönüştürme işlemi gerçekleşirken Python bize hata verdi.



Dersleri Youtube'dan Erdem Kalyoncu'nun kanalından 
https://www.youtube.com/channel/UC7-vb1QhYrs4pnBQPAFKdXA
 adresinden görsel ve sesli olarak da takip edebilirsiniz.

Hiç yorum yok :

Yorum Gönder