Python 3 ile bir Python 2 kod tabanı çalıştırmaya çalışıyorsunuz. Python 3 xrange()
olarak yeniden adlandırıldı range()
.
Bunun yerine oyunu Python 2 ile çalıştırın. Eğer ne yaptığınızı bilmedikçe portuna bunu kalkmayın, büyük olasılıkla ötesinde daha fazla sorun olacak xrange()
vs. range()
.
Kayıt için, gördüğünüz sözdizimi hatası değil, çalışma zamanı istisnasıdır.
Ne yaptığınızı biliyorsanız ve Python 3 ile uyumlu bir Python 2 kod tabanı oluşturuyorsanız, genel adı modülünüze takma ad olarak ekleyerek kodu köprüleyebilirsiniz range
. ( Python 3'te hala bir liste nesnesi aldığınızdan emin olmak için Python 2 kod tabanındaki mevcut kullanımları güncellemeniz gerekebileceğini dikkate alın ):range()
list(range(...))
try:
# Python 2
xrange
except NameError:
# Python 3, xrange is now named range
xrange = range
# Python 2 code that uses xrange(...) unchanged, and any
# range(...) replaced with list(range(...))
ya da her kullanım yerine xrange(...)
ile range(...)
kod temeli ve Python 2 Python 3 sözdizimi uyumlu hale getirmek için, farklı bir dolgu kullanımı:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
İkincisi, sadece uzun vadede Python 3 uyumlu olmayı amaçlayan kod tabanları için tercih edilir , daha sonra mümkün olduğunda Python 3 sözdizimini kullanmak daha kolaydır.