Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据版本更改内置Python_Python_Python 2.7_Python 3.x - Fatal编程技术网

根据版本更改内置Python

根据版本更改内置Python,python,python-2.7,python-3.x,Python,Python 2.7,Python 3.x,假设我有一个程序需要同时在Py2和Py3中运行。功能上的唯一区别是range与xrange。有可能这样做吗 if version == 3: pass else: range = xrange 我知道我以前见过类似的东西,但是我似乎在谷歌机器上找不到一个例子。 谢谢各位 是的,您可以执行以下操作: import sys if sys.version_info.major > 2: xrange = range 另一种方法是将xrange语句包装在try/catch块中: >

假设我有一个程序需要同时在Py2和Py3中运行。功能上的唯一区别是
range
xrange
。有可能这样做吗

if version == 3: pass
else: range = xrange
我知道我以前见过类似的东西,但是我似乎在谷歌机器上找不到一个例子。
谢谢各位

是的,您可以执行以下操作:

import sys
if sys.version_info.major > 2:
    xrange = range
另一种方法是将
xrange
语句包装在try/catch块中:

>>> try:
...     r = xrange(10)
... except NameError:
... # No xrange in Python3
...     r = range(10)

是的,您可以执行以下操作:

import sys
if sys.version_info.major > 2:
    xrange = range
另一种方法是将
xrange
语句包装在try/catch块中:

>>> try:
...     r = xrange(10)
... except NameError:
... # No xrange in Python3
...     r = range(10)

您可以使用
sys.version\u info
。这是一个包含版本号的元组,因此类似的内容应该可以工作:

import sys
if sys.version_info[0] < 3:
    range = xrange 
导入系统 如果系统版本信息[0]<3: 范围=X范围
如果您需要对版本(次要编号)进行更精确的控制,您可以使用给出版本第一个和第二个编号的
major/minor
,或者简单地使用
sys.version\u info[:2]
,这是一个元组,可以与
=,>=,…
结合使用
sys.version\u info
。这是一个包含版本号的元组,因此类似的内容应该可以工作:

import sys
if sys.version_info[0] < 3:
    range = xrange 
导入系统 如果系统版本信息[0]<3: 范围=X范围
如果您需要对版本(次要编号)进行更精确的控制,您可以使用给出版本第一个和第二个编号的
major/minor
,或者简单地使用
sys.version\u info[:2]
,这是一个元组,可以与
=,>=,如果要手动执行,请检查
sys.version\u info
tuple。谷歌搜索
six
python future
nine
,搜索旨在解决此问题的第三方库。
如果range为None:range=xrange
由于编译时间的增加,我最喜欢你的答案。如果你想手动操作,请检查
sys.version\u info
tuple。谷歌搜索
six
python future
nine
,搜索旨在解决此问题的第三方库。
如果range为None:range=xrange
由于编译时间的增加,我最喜欢你的答案。