Вы пытаетесь запустить кодовую базу Python 2 с Python 3. xrange()
был переименован range()
в Python 3.
Запустите игру с Python 2 вместо. Не пытайтесь портировать его, если вы не знаете, что делаете, скорее всего, будет больше проблем, чем xrange()
противrange()
.
Для записи, что вы видите, это не синтаксическая ошибка, а исключение времени выполнения.
Если вы знаете, что делаете, и активно делаете кодовую базу Python 2 совместимой с Python 3, вы можете связать код, добавив глобальное имя в свой модуль в качестве псевдонима для range
. (Учтите, что вам, возможно, придется обновить любое существующее range()
использование в базе кода Python 2, list(range(...))
чтобы гарантировать, что вы по-прежнему получаете объект списка в Python 3):
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(...))
или заменить все виды использования xrange(...)
с range(...)
в кодовую , а затем использовать другую подкладку , чтобы сделать синтаксис Python 3 совместим с Python 2:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
Последнее предпочтительнее для кодовых баз, которые хотят быть совместимыми с Python 3 только в долгосрочной перспективе, тогда проще использовать синтаксис Python 3, когда это возможно.