Py学习  »  Python

Python xrange名称错误?[副本]

benbro00002 • 5 年前 • 1664 次点击  

运行python程序时出现错误:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 110, in <module>
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py", line 27, in __init__
  File "C:\Program Files (x86)\Wing IDE 101 4.1\src\debug\tserver\class\inventory.py", line 17, in __init__
builtins.NameError: global name 'xrange' is not defined

游戏来自 here

是什么导致了这个错误?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56185
 
1664 次点击  
文章 [ 6 ]  |  最新文章 5 年前
Not Genius
Reply   •   1 楼
Not Genius    7 年前

我同意最后一个答案。但是有另一种方法可以解决这个问题。你可以下载名为future的包,比如pip install future。在你的.py文件中输入“from past.builtins import xrange”。这个方法是针对你的文件中有很多xrange的情况。

Harry_pb
Reply   •   2 楼
Harry_pb    6 年前

替换

巨蟒2 xrange

蟒蛇3 range

Ahmad Farhan
Reply   •   3 楼
Ahmad Farhan    5 年前

在python 2.x中, 用于在 范围 用于返回列表。在python 3.x中, 润智 已经被移除并且 返回一个生成器,就像 因此,在Python2.x中,需要使用range而不是xrange。

Andrés Gutiérrez
Reply   •   4 楼
Andrés Gutiérrez    6 年前


更多 info

from past.builtins import xrange
Frost Xu
Reply   •   5 楼
Frost Xu    7 年前

添加 xrange=range 在你的代码中:)对我有效。

Martijn Pieters
Reply   •   6 楼
Martijn Pieters    6 年前

您正在尝试使用Python 3运行Python 2代码库。 xrange() range() 在Python 3中。

改用Python 2运行游戏。除非你知道你在做什么,否则不要试图移植它,很可能会有更多的问题超出 与。 范围() .

对于记录,您看到的不是语法错误,而是运行时异常。


如果您知道自己在做什么,并且正在积极地使Python2代码库与Python3兼容,那么可以通过将全局名称作为 range 可以 必须更新任何现有的 在Python 2代码库中使用 list(range(...)) 要确保在Python 3中仍然获得list对象,请执行以下操作:

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(...)

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语法就更容易了。