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

在学习车万翔老师关于回文数的Python代码时,发现在Python3.7中出现inf问题。原因在于Python3.7中浮点数除法导致精度问题。通过将变量转换为整数类型避免了这个问题,修改后的代码能正确判断回文数并避免无限循环。
摘要由CSDN通过智能技术生成

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

1、老师的代码
在这里插入图片描述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)

输出结果见图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值