Вы пытаетесь запустить кодовую базу 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, когда это возможно.
добавить
xrange=range
в свой код :) Это работает для меня.источник
Я решил проблему, добавив этот импорт
больше информации
источник
в python 2.x xrange используется для возврата генератора, а range - для возврата списка. В python 3.x xrange был удален, а range возвращает генератор точно так же, как xrange в python 2.x. Поэтому в Python 3.x вам нужно использовать range, а не xrange.
источник
замещать
Python 2
xrange
дляPython 3
range
Отдыхай все же.
источник
Я согласен с последним ответом. Но есть и другой способ решения этой проблемы. Вы можете скачать пакет с именем future, например, pip install future.And, в свой файл .py введите это "from past.builtins import xrange" .Этот метод для ситуации, когда в вашем файле много xranges.
источник
past.builtings.range
значит просто установитьxrange
ссылку наrange
. Это полезно при создании кодовой базы полигонов Python 2/3, но не подходит для существующего проекта, который предназначен только для Python 2.