我最近在使用 python3 运行 python2 代码时遇到了一些相当“害羞”的错误。原因是整数除法自动转换为 float 。所以即使我没有这样做:
from __future__ import division
我的代码可以运行,但方式错误。
我知道2to3但问题如下:
- 我没有看到它提到任何有关除法的内容,它会处理它吗?
- 我不能让黑匣子更改我的代码,运行它并使用 diff 工具来检查更改是常见做法吗?
- 我需要一个只为我的 python2 代码发出警告的工具。有吗?
- 还有其他选择吗?
预先感谢您抽出宝贵的时间,对任何问题的反馈都会非常有帮助。
最佳答案
Python 3 默认实现 __future__
中 division
模块的行为。
Python 2:
>>> 1.0 / 2.0
0.5
>>> 1/2
0
>>> from __future__ import division
>>> 1.0 / 2.0
0.5
>>> 1/2
0.5
Python 3:
>>> 1.0 / 2.0
0.5
>>> 1/2
0.5
要实现版本 2 的行为特征,请使用 //
运算符:
>>> 1//2
0
>>> 1.0 // 2.0
0.0
关于Python 2 到 3 发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21817069/