Sie versuchen , eine Python 2 Code - Basis mit Python ausführen 3. xrange()umbenannt wurde range()3 in Python.
Führen Sie das Spiel stattdessen mit Python 2 aus. Versuchen Sie nicht , zu portieren , wenn Sie wissen , was Sie tun, wahrscheinlich wird es mehr Probleme über sein xrange()vs. range().
Für den Datensatz wird kein Syntaxfehler angezeigt, sondern eine Laufzeitausnahme.
Wenn Sie wissen, was Sie tun, und eine Python 2-Codebasis aktiv mit Python 3 kompatibel machen, können Sie den Code überbrücken, indem Sie Ihrem Modul den globalen Namen als Alias für hinzufügen range. (Berücksichtigen Sie, dass Sie möglicherweise eine vorhandene range()Verwendung in der Python 2-Codebasis mit aktualisieren müssen, um list(range(...))sicherzustellen, dass Sie in Python 3 weiterhin ein Listenobjekt erhalten.)
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(...))
oder ersetzen Sie alle Verwendungen von xrange(...)durch range(...)in der Codebasis und verwenden Sie dann einen anderen Shim, um die Python 3-Syntax mit Python 2 kompatibel zu machen:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
Letzteres ist für Codebasen vorzuziehen, die nur auf lange Sicht Python 3-kompatibel sein möchten. Es ist einfacher, wenn möglich nur die Python 3-Syntax zu verwenden.