Vous essayez d'exécuter une base de code Python 2 avec Python 3. a xrange()
été renommé range()
en Python 3.
Exécutez plutôt le jeu avec Python 2. Ne pas essayer de le porter à moins que vous savez ce que vous faites, le plus probable , il y aura plus de problèmes au - delà xrange()
contre range()
.
Pour mémoire, ce que vous voyez n'est pas une erreur de syntaxe mais une exception d'exécution à la place.
Si vous savez ce que vous faites et que vous créez activement une base de code Python 2 compatible avec Python 3, vous pouvez relier le code en ajoutant le nom global à votre module comme alias pour range
. (Tenez compte du fait que vous devrez peut- être mettre à jour toute range()
utilisation existante dans la base de code Python 2 list(range(...))
pour vous assurer d'obtenir toujours un objet de liste dans 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 remplacez toutes les utilisations de xrange(...)
with range(...)
dans la base de code, puis utilisez un shim différent pour rendre la syntaxe Python 3 compatible avec Python 2:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
Ce dernier est préférable pour les bases de code qui souhaitent viser à être compatibles Python 3 uniquement à long terme, il est plus facile d'utiliser simplement la syntaxe Python 3 chaque fois que possible.