9 Şubat 2017 Perşembe

Python 2 ve 3 arasındaki farklar

Bu yazımda sizlere python 3.x ve 2.x sürümleri arasındaki farklılıkları ve hangi sürümü seçmeniz gerektiğinden bahsedeceğim.


Print


İki sürüm arasında en çok bilinen değişikliktir.

Bu fonksiyonun Python 2'de kullanımı şu şekildedir:

print "Merhaba Dünya!"

Bu kullanımın aksine Python'2 de bu bu kodu yazmanın hiçbir sakıncası yoktur:

print ("Merhaba Dünya!")
Ancak python 3 de parantez olmadan bu işlem gerçekleştirilemez. Bu kullanım desteklenmeyeceğinden dolayı, Syntax Error alırsınız.

File "<stdin>", line 1
    print "Merhaba Dünya"
                        ^
SyntaxError: Missing parentheses in call to 'print'

Tamsayı bölme farklılıkları

Şahsen en çok beğendiğim değişikliklerdendir.

Python 2'de bir tamsayayı bir tamsayıya böldüğünüzde normalde size float tipi bir sonuç vermesi gerekirken
python sonucu en yakın tamsayıya tamamlayıp o sonucu gösterir. Eğer float tipi bir sonuç almak istiyorsanız
böleceğiniz sayıyı da ondalıklı olarak yazmanız gerekiyor.

Python 3'de ise bu durum değiştirildi. Eğer sayıyı "/" opretörü ile kullanırsanız size float  (olması gereken) sonucu gösteriyor. Pythonın sayıyı yuvarlamasını istiyorsanız "//" operatörünü tercih etmeniz gerekiyor.
Aynı zamanda float tipi bir sayı ile işlem yaparsanız "/" operatörü doğru çıktıyı verecek, "//" operatörü ise sonucu yine yuvarlayacak fakat yuvarlanmış sonucu float tipinde gösterecektir.

Unicode farklılıkları

Python 2'de byte tipi yoktur. Ancak Python 3'de Unicode (utf-8) dizeleri ve 2 bayt sınıfları eklenmiştir, byte ve bytearrays.

xrange() fonksiyonu

Python 3'de bu fonksiyon range() fonksiyouna dönüştürülmüş ve kaldırılmıştır.

next() fonksiyonu ve next() metodu

Python 2'de her iki şekilde de kullanılabilmesine karşın; Python 3'de sadece metod olarak kullanılabilir.

Döngüsel değişkenler ve genel ad alan sızıntısı

Python 2'de bir değişken tanımlayıp onu bir for döngüsü içinde kullanırsanız; değişken for döngüsünün
özel alanına girmez, döngüde yaptığınız işlem değişkeni etkiler. Yani Python 2 değişkenin döngü içinde veya dışında olup olmadığını umursamaz, tek bir değişken olarak kabul eder.

Python 3'de ise döngünün içinde ayrı, dışında ayrı değişkenler kabul edilir.

input() ve raw_input() fonksiyonu


Python 2'de raw_input() string, input() integer tipi sonuç verirken Python 3'de artık raw_input() yok ve input() fonksiyonunun çıktısı her zaman string.

Yuvarlama işlemleri


Python 2'de round() fonksiyonu normalde ondalıklı sayıları eğer ondalık değer 5 ve 5'ten büyükse üst sayıya yuvarlıyordu. Python 3'de artık önceki veya sonraki çift sayıya yuvarlanıyor.












Hiç yorum yok:

Yorum Gönder