Você está tentando executar uma base de código Python 2 com o Python 3. xrange()
foi renomeada para range()
no Python 3.
Execute o jogo com o Python 2. Não tente porta-lo se você não sabe o que está fazendo, provavelmente haverá mais problemas além xrange()
vs. range()
.
Para o registro, o que você está vendo não é um erro de sintaxe, mas uma exceção de tempo de execução.
Se você sabe o que está fazendo e está ativamente tornando uma base de código Python 2 compatível com o Python 3, você pode conectar o código adicionando o nome global ao seu módulo como um alias para range
. (Leve em consideração que pode ser necessário atualizar qualquer range()
uso existente na base de código do Python 2 list(range(...))
para garantir que você ainda obtenha um objeto de lista no 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(...))
ou substitua todos os usos de xrange(...)
com range(...)
na base de código e use um calço diferente para tornar a sintaxe do Python 3 compatível com o Python 2:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
O último é preferível para bases de código que desejam ser compatíveis com Python 3 apenas a longo prazo; é mais fácil usar a sintaxe do Python 3 sempre que possível.
adicione
xrange=range
seu código :) Funciona para mim.fonte
Resolvi o problema adicionando esta importação
Mais informações
fonte
no python 2.x, xrange é usado para retornar um gerador enquanto range é usado para retornar uma lista. No python 3.x, o xrange foi removido e o range retorna um gerador como o xrange no python 2.x. Portanto, no python 3.x, você precisa usar range em vez de xrange.
fonte
Substituir
Python 2
xrange
paraPython 3
range
Descanse tudo igual.
fonte
Concordo com a última resposta.Mas existe outra maneira de resolver esse problema.Você pode fazer o download do pacote chamado future, como o pip install future.E no arquivo .py, insira "from past.builtins import xrange" .Este método é para a situação em que existem muitas xranges no seu arquivo.
fonte
past.builtings.range
faz é simplesmente definidoxrange
para ser uma referênciarange
. Isso é útil ao criar uma base de código poliglota do Python 2/3, mas não é adequada para um projeto existente projetado para funcionar apenas no Python 2.