3、Python编程中的陷阱、循环与列表使用

Python编程中的陷阱、循环与列表使用

1. 编程数学时的陷阱

在进行数学编程时,虽然大多数情况下数学运算能按预期工作,但仍存在一些潜在的错误源,即使这些情况相对罕见,了解它们也是很有必要的。

1.1 舍入误差

计算机由于舍入误差,其算术运算并不精确。例如计算 1/49 * 49 1/51 * 51

v1 = 1/49.0*49
v2 = 1/51.0*51
print(f"{v1:.16f} {v2:.16f}")

输出结果为:

0.9999999999999999 1.0000000000000000

大多数实数在计算机中都是近似表示的,精度通常为17位。 1/49 1/51 都无法精确表示,误差约为 10^-16 。这种误差一般不会产生太大影响,但在两种特定情况下可能会变得显著:
- 误差可能会在多次计算中累积,最终导致结果出现显著误差。
- 比较两个小数时可能会出现不可预测的结果。例如:

print(v1 == 1)
print(v2 == 1)

输出结果为:

False
True

为了解决这个问题,我们应该使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值