为什么python在这个程序中将整数打印为浮点数


def hailstone(n):
print(n,end=' ')

while n!=1:
if n%2==1:
n=3*n+1  
print(n,end=' ')
else:
n=n/2
print(n,end=' ')

hailstone(7)

Output: 7 22 11.0 34.0 17.0 52.0 26.0 13.0 40.0 20.0 10.0 5.0 16.0 8.0 4.0 2.0 1.0

你好,我想知道为什么python在22之后将这些整数打印为浮点数。谢谢

在Python 3中,a/b是浮点除法,因此您的22/2是11.0

但是a//b是整数除法,所以22//2是11。

但是23//2也是11,请注意。。。但无论如何,在偶数情况下,你只能除以2,所以你不应该担心分数部分的损失。

最新更新