Python 2 到 3 发出警告

标签 python

我最近在使用 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/

相关文章:

python - 为什么 exec() 命令运行时没有错误,但没有产生预期的输出?

python - Tkinter 菜单删除项目

Python递归查找文件并移动到一个目标目录

python - Flask 应用程序的 Celery 配置

python - Jupyter Notebook 导入错误,%matplotlib qt

python - 带有 cron 任务的 uwsgi web 应用程序?

python - 检查执行时间的实用程序?

python - 在 PostgreSQL、Python、Jinja2 上编码

python - GitPython - 使用 ssh key 克隆 - 主机 key 验证失败

python - 动态更改日志级别而不重新启动应用程序