对使用Python 2.7和Python 3.4之间的不同结果感到困惑

时间:2015-11-17 07:29:43

标签: python-2.7 python-3.4

当我运行以下Python代码时,使用Python 2.7和Python 3.4获得了不同的结果,我不知道为什么......

import sys

def main():
    total = 0
    number = 568

    while number:
        total += number % 10
        print("total = %d" % total)
        number /= 10


if __name__ == '__main__':
    main()

使用Python 2.7输出结果:

总计= 8

总计= 14

总计= 19

使用Python 3.4输出结果(我删除了一些输出,因为它太长了):

总计= 8

总计= 14

总计= 20

总计= 21

总计= 21

总计= 21

..........

1 个答案:

答案 0 :(得分:3)

Python 2.X实现整数除法,因此568/10 = 56。

Python 3.X实现了真正的除法,因此568/10 = 56.8。

"total = %d"更改为"total = %f"以查看差异。

要强制进行整数除法,请使用//代替/

要使Python 2像Python 3一样工作,请将from __future__ import division添加到脚本的顶部。