学习强国中车万翔老师回文数代码在python3.7中输出inf问题

首先感谢车万翔老师在学习强国上的教学视频(程序设计的基础知识,3.3.2章节)
在学习回文数代码编写时,由于老师用的是py2.7版本,我用的是py3.7。

1、老师的代码
学习强国中车万翔老师回文数代码在python3.7中输出inf问题_第1张图片2、我的代码学习强国中车万翔老师回文数代码在python3.7中输出inf问题_第2张图片可见我计算给赋值为1,num_p的结果还是inf(无限),这里其实是精度问题,计算的时候在py3.7中num这个是一直除以10,最终结果并不是0。所以num_p就无限上加。所以在老师py2.7的是默认以整数(int)计算,在最终输出num的时候是0,而我在输出num的时候是0.0。说明了是以浮点数计算。

于是我改变得代码如下:
num = int(12321)
num_p = int(0)
num_t = int(num)
while int(num) != 0:
num_p = int(num_p) * 10 + int(num )% 10
num = int(num) / 10

if num_t == num_p:
print(“Yes”)
print(num_p, num)
else:
print(“No”)
print(num_p, num)

输出结果见图
学习强国中车万翔老师回文数代码在python3.7中输出inf问题_第3张图片我再计算的数值上都定义了整数(int),而num在计算到0.1的时候就结束了循环,0.1失去精度,就满足了num==0,num_p也就不会不会一直加下出,出现inf的情况。

浏览到了另一篇文章,说是除法中的问题,连接如下https://blog.csdn.net/qq_37521610/article/details/87865161

你可能感兴趣的:(学习强国中车万翔老师回文数代码在python3.7中输出inf问题)