当前位置: 首页 > 面试题库 >

NameError:全局名称“ xrange”未在Python 3中定义

海翼
2023-03-14
问题内容

运行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

游戏从这里开始。

是什么导致此错误?


问题答案:

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

而是使用Python 2运行游戏。不要试图将它移植,除非你知道自己在做什么,很可能会出现超越更多的问题xrange()range()

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

如果您确实知道自己在做什么,并且正在积极地使Python 2代码库与Python
3兼容,则可以通过将全局名称添加为模块的别名来桥接代码range。(请注意,您 可能 必须更新range()Python
2代码库中的所有现有用法,list(range(...))以确保仍然在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(...))

或更换的所有用途xrange(...)range(...)在代码库,然后使用不同的垫片,使与Python 2的Python语法3兼容:

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语法,只要有可能。



 类似资料:
  • 问题内容: 我在Mac OS X上使用Python 2.6.1。 我有两个简单的Python文件(如下),但是当我运行时 我在终端上: 我尝试以不同的方式重命名文件和类,这就是为什么两端有x和z的原因。;) 文件sqlitedbx.py 文件update_url.py 问题答案: 您需要做:

  • 问题内容: 我发现有关滚动条的这段代码工作正常。 我尝试在我的代码中使用它,如下所示: 但是,当我运行上述代码时,插入行出现错误。 顺便说一句,我试图找到文档,而effbot的链接是我最近的链接,但仍然无法理解是什么错误。 问题答案: ,和都驻留在名称空间中。因此,需要通过以下方式来对他们进行资格鉴定: 或者,您可以根据需要显式导入它们:

  • 问题内容: 我正在尝试使用一个名为bidi的Python包。在此程序包(algorithm.py)中的模块中,尽管它是程序包的一部分,但仍有一些行会给我带来错误。 以下是这些行: 这是错误消息: 我应该如何重新编写代码的这一部分,使其可以在Python3中使用?另外,如果有人在Python 3中使用了bidi软件包,请让我知道他们是否发现了类似的问题。我感谢您的帮助。 问题答案: Python 3

  • 我试图使用一个名为Bidi的Python包。在这个包(algorithm.py)中的一个模块中,有一些行给我错误,尽管它是包的一部分。 以下是台词: 下面是错误消息: 我应该如何重新编写代码的这一部分,使其在Python3中工作?另外,如果有人将bidi软件包与Python3一起使用,请告诉我他们是否发现了类似的问题。我感谢你的帮助。

  • 问题内容: 我正在使用Python 3.2。试过这个: 并得到以下错误: 尝试打印到交互式控制台中-出现此错误: 是在Python 3.2中真正删除的吗?如果是这样,还有什么选择? 问题答案: 它已移至。

  • 问题内容: 我在自学Python,只是在“探索”。Google说datetime是一个全局变量,但是当我尝试在终端中查找今天的日期时,我在问题标题中收到NameError吗? 问题答案: 您需要先导入模块: 之后,它可以工作: