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.