if math.isnan(tem[i]) == True: TypeError: must be real number, not str
时间: 2024-02-29 17:52:10 浏览: 235
判断输入数据,是否为有效数字
这个错误是因为你在使用 `math.isnan()` 函数时传入的参数不是一个实数类型,而是一个字符串类型。`math.isnan()` 函数用于判断一个数是否为 NaN(非数字),它只能接受实数类型的参数。
要解决这个问题,你需要确保传入 `math.isnan()` 函数的参数是一个实数类型。你可以使用 `float()` 函数将字符串转换为实数类型,例如:
```
tem = ["1.2", "2.3", "NaN"]
for i in range(len(tem)):
if tem[i].lower() == "nan":
tem[i] = float("nan")
else:
tem[i] = float(tem[i])
if math.isnan(tem[i]) == True:
print("tem[{}] is NaN".format(i))
```
在这个例子中,我们使用 `float()` 函数将字符串类型的 "NaN" 转换为实数类型的 NaN,然后再进行判断。注意,在判断 "NaN" 时,我们使用了 `lower()` 方法将字符串转换为小写字母,这是为了避免大小写带来的问题。
阅读全文