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 1print "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