当我运行以下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
..........
答案 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
添加到脚本的顶部。