我正在搭建一个类似Matlab的环境,所以我下载了带有所有模块的最新版本的python(x,y),并下载了Python 3.4.1。Python(x,y)不能运行最新版本的Python吗?我注意到这一点是因为Python(x,y) shell不能将数学运算自动计算为浮点数,而我读到这是Python 2.x和3.x之间的区别。我只需要等待新版本的(x,y)发布还是我漏掉了什么?
from __future__ import division
__future__
中的导入应该放在文件的顶部。可能有一种自动加载这个表达式的方法(我知道在IPython中是可能的),但我不熟悉python(x,y)。
如果想了解更多关于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
>>>
感觉原问题特别涉及到Python(x,y)分发和Python 3,我的(长)答案是:
我使用这个分发很多年了,很喜欢它。但对我来说,似乎没有计划升级它以包括Python 3环境。
现在,我建议使用Anaconda分发/项目(https://www.anaconda.com/)。与Python(x,y)的想法非常相似,但维护更好,支持“最新的一切”。
8/3将得到2
,但是8.0/3或8/3.0将得到2.6666666666666665
。 - Tanmaya Meher8/3
会得到2.666...
,而8//3
则会得到2
。谢谢提醒。现在我可能需要更多的Python 3代码练习了。也许用Python 3复现我之前用Python 2写的代码会有所帮助。 :) - Tanmaya Meher3.4.1
,正如你发现的那样。但是PythonXY不支持这个版本,只支持前一个版本,也就是Python2.7
。 - Carlos Cordoba