Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.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 3.x_Python 2.7_Integer Division - Fatal编程技术网

python中整数除法的检测

python中整数除法的检测,python,python-3.x,python-2.7,integer-division,Python,Python 3.x,Python 2.7,Integer Division,我必须让Python从2跳到3跳。整数除法是唯一让我害怕的东西。我们的测试套件还可以,但不一定是为了审查部门而设置的。是否存在某种包装器、环境或黑客,我可以从中运行脚本,以检测何时使用整数除法?我主要在Windows上使用Anaconda Python 2.7。您可以使用Python 2引擎运行代码,但使用-3开关: L:\>Python27_X64\python.exe -3 test.py test.py:1: DeprecationWarning: classic int divis

我必须让Python从2跳到3跳。整数除法是唯一让我害怕的东西。我们的测试套件还可以,但不一定是为了审查部门而设置的。是否存在某种包装器、环境或黑客,我可以从中运行脚本,以检测何时使用整数除法?我主要在Windows上使用Anaconda Python 2.7。

您可以使用Python 2引擎运行代码,但使用
-3
开关:

L:\>Python27_X64\python.exe -3 test.py
test.py:1: DeprecationWarning: classic int division
  i = 2/3
如果希望在Python2或Python3中实现相同的行为,请使用

from __future__ import division
在您运行的每个模块的开头:现在除法是浮动的,除非您使用
/

这是一个运行时选项,而不是静态选项,因此您需要良好的代码覆盖率来捕获这些选项。例如,它不会在该代码上检测到任何内容:

if False:
    i = 2/3
-3
开关还将检测其他不兼容(并非所有)而不会中断,因此您可以一次修复所有不兼容

除此之外,分裂并不是最难的问题。字符串vs字节位很烦人。考虑这一点:

with open("toto.txt","wb") as f:
    f.write("foo")

这在Python3中现在是无效的(字符串不能写入二进制流),并且
-3
脚本没有检测到这一点。

来自导入部分的导入部分:完成了。