Python range ve xrange
Python 2 ile python 3 arasında range fonksiyonu farklılık
gösteriyor. Python betiklerinde kullanılan bu fonksiyon, eğer doğru
python yorumlayıcısında çalıştırılmazsa, istenildiğinden farklı
davranabilir. Bu sorundan kurtulmak için, aşağıdaki yöntemi
kullanıyorum.
Yöntemden bahsetmeden önce, sorun hakkında biraz bilgi vereceğim.
Python 2 sürümünde, range ve xrange adıyla iki farklı fonksiyon
var. range isimli fonksiyon, bir liste döndürüyor. xrange isimli
fonksiyon ise bir "generator" (tr: üretici) fonksiyon. Bu iki fonksiyon
arasındaki fark, hafıza kullanımında. xrange fonksiyonu her
çağırıldığında yeni bir obje döndürdüğü için, daha az hafıza
kullanılıyor.
range ve xrange arasındaki bu fark nedeniyle, programlarınızda
xrange fonksiyonunu tercih edenlerdenseniz, kodlarınızı python 3
yorumlayıcı çalışıtırmayacaktır. Çünkü python 3 ile birlikte, xrange
fonksiyonu kaldırıldı ve range fonksiyonu, python 2'deki xrange
fonksiyonu gibi davranmaya başladı.
Aşağıda görülebilen örnek kod ile, python sürümleri arasındaki farkdan
oluşan bu sorunun üstesinden gelebilirsiniz. Bu kodları modülünüzün
yukarılarında kullanmalı, ve xrange kullanmak yerine range kullanmayı
tercih etmelisiniz. Bu kodun çalıştığı platforma göre, xrange ve
range fonksiyonu kendiliğinden kullanılacak.