Python(x,y)上的Python 3.x?

5

我正在搭建一个类似Matlab的环境,所以我下载了带有所有模块的最新版本的python(x,y),并下载了Python 3.4.1。Python(x,y)不能运行最新版本的Python吗?我注意到这一点是因为Python(x,y) shell不能将数学运算自动计算为浮点数,而我读到这是Python 2.x和3.x之间的区别。我只需要等待新版本的(x,y)发布还是我漏掉了什么?


你使用的是Windows系统吗?你可以使用WinPython,它有一个64位的3.3.5.0版本:http://sourceforge.net/projects/winpython/files/WinPython_3.3/3.3.5.0/ - EdChum
Python不会自动将计算结果转换为浮点数。但是你可以很容易地通过8/3将得到2,但是8.0/3或8/3.0将得到2.6666666666666665 - Tanmaya Meher
1
@TanmayaMeher 这在大多数情况下对于Python 2是正确的。Python 3可以正确地进行除法运算。而且你也可以让Python 2做到这一点。请参见我下面的答案。 - Roland Smith
是的!我忘了!在Python 3中,8/3会得到2.666...,而8//3则会得到2。谢谢提醒。现在我可能需要更多的Python 3代码练习了。也许用Python 3复现我之前用Python 2写的代码会有所帮助。 :) - Tanmaya Meher
2
鉴于整个讨论都涉及到版本问题,我想给你更多关于PythonXY的背景信息。最新可用的Python版本是 3.4.1,正如你发现的那样。但是PythonXY不支持这个版本,只支持前一个版本,也就是Python 2.7 - Carlos Cordoba
显示剩余2条评论
3个回答

1
您可以使用以下命令使Python 2的除法行为与Python 3相同:
from __future__ import division

__future__中的导入应该放在文件的顶部。可能有一种自动加载这个表达式的方法(我知道在IPython中是可能的),但我不熟悉python(x,y)。


1
如果你正在运行Python 2,那么这绝对是一个可怕的想法;它会破坏读取你代码的人合理的期望。 - sapi
3
@sapi 这是文件的开头,即使人们匆忙浏览也应该注意到。在99%的情况下,旧行为实际上没有任何意义... - Tobias Kienzler
2
这实际上是运行脚本的唯一方式,既兼容Python 2.7又兼容3.4,并且是每个新Python 2.7代码的标准行,配合unicode_literals、print_functions和absolute_import使用。 - Bite code

1

如果想了解更多关于Python的知识,请参考python.org上提供的教程。建议使用最新版本的Python3。

由于您正在进行转换过程,请查看SciPy(http://www.scipy.org)和Sage(http://www.sagemath.org/tour.html)。这些可能更适合您需要解决的问题。

如果您在终端上进行大量交互式工作,请查看ipython(http://ipython.org)。

关于除法运算符,在Python2中默认为整数除法,但在Python3中将变为普通除法。您可以在启动解释器时使用-Q标志来更改此设置(请执行 python --help)。例如:

$ python2.7 -Qnew
Python 2.7.6 (default, Nov 18 2013, 15:12:51) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0.5
>>> 
$ python2.7
Python 2.7.6 (default, Nov 18 2013, 15:12:51) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0
>>> 
$ python3.4
Python 3.4.1 (default, May 21 2014, 01:39:38) 
[GCC 4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.40)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 1/2
0.5
>>> 

0

感觉原问题特别涉及到Python(x,y)分发和Python 3,我的(长)答案是:

我使用这个分发很多年了,很喜欢它。但对我来说,似乎没有计划升级它以包括Python 3环境。

现在,我建议使用Anaconda分发/项目(https://www.anaconda.com/)。与Python(x,y)的想法非常相似,但维护更好,支持“最新的一切”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接