You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python求sin(n)²/n序列代码报错Invalid NaN comparison如何解决?

报错原因及修复方案

报错根因

  • 循环for n in range(9999)的首个遍历值为0,执行XN=(sin(n)**2)/n时触发除以0运算,得到的结果为NaN(非数值),NaN无法和常规数值做大小比较,因此抛出对应错误。
  • 额外注意:你的代码没有导入sin函数依赖的math模块,即便解决NaN问题也会触发未定义函数报错。

修复代码

你可以直接修改循环的起始值为1,同时补上math模块导入即可:

import math
Listttt=[0]
for n in range(1, 9999):
    XN=(math.sin(n)**2)/n 
    if XN >= 1.e-9:
        Listttt.append(XN)

KK=len(Listttt)-1
print(KK)

如果你有必须遍历n=0的场景,也可以增加0值判断跳过除法运算:

import math
Listttt=[0]
for n in range(9999):
    if n == 0:
        continue
    XN=(math.sin(n)**2)/n 
    if XN >= 1.e-9:
        Listttt.append(XN)

KK=len(Listttt)-1
print(KK)

内容的提问来源于stack exchange,提问作者RWleaner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 06:15:10