社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python xrange名称错误?[副本]

benbro00002 • 4 年前 • 838 次点击  

运行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
 
838 次点击  
文章 [ 6 ]  |  最新文章 4 年前
Not Genius
Reply   •   1 楼
Not Genius    6 年前

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

Harry_pb
Reply   •   2 楼
Harry_pb    5 年前

替换

巨蟒2 xrange

蟒蛇3 range

Ahmad Farhan
Reply   •   3 楼
Ahmad Farhan    4 年前

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

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


更多 info

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

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

Martijn Pieters
Reply   •   6 楼
Martijn Pieters    5 年前

您正在尝试使用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语法就更容易了。