将Python 2转换为Python 3(使用Python 2样式执行)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Python 2转换为Python 3(使用Python 2样式执行)相关的知识,希望对你有一定的参考价值。

我在Python 2中有一个代码,我想将其转换为Python 3,但代码的行为必须与Python 2解释器完全相同。

特别是除法必须像Python 2解释器一样。

我尝试使用futurize第1阶段和第2阶段,但是在代码上仍然只是/,它会在执行时产生错误,因为返回的数字是float类型而不是类型int(这是在Python 2解释器上执行的代码的默认行为)。

编辑:3 // 2 = 1.0这是Python 3中的float。有没有办法返回int

答案

Futurize / Modernize / 2to3无法静态分析哪个分区是整数除法。

您需要在转换后的代码中手动完成除法运算,并找出哪些应该使用//进行整数除法,哪些应该使用/进行实际除法。

当然,您的代码库的测试用例应该在这里找到任何回归。 ;)

另一答案

整数除法运算符是python 3中的//

>>> 3 / 2
1.5
>>> 3 // 2
1

编辑:我知道从两个版本的python获得兼容行为的唯一方法是对python 2 /操作进行未来化,并将在python 2程序中期望整数除法的任何实例转换为使用//,它适用于两者的整数除法python 2和3。

以上是关于将Python 2转换为Python 3(使用Python 2样式执行)的主要内容,如果未能解决你的问题,请参考以下文章

python之模块py_compile用法 (将py文件转换为pyc文件)

使用 python 将 JSON 转换为 CSV

python---字符编码

python程序转换为exe程序,py2exe的使用方法

将python文件(.py)转换为可执行文件(.exe)的方法

python 将doc转换为docx file.py