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.