TypeError:float()参数必须是字符串或numb

2024-05-17 04:35:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我之前写了一段代码,但忘了保存,现在我正在把它放在一起,但我记不起我对这个块做了什么,现在我得到了一个错误。

writer = open(file_name, 'w')
for i in range (len(mammal_name)):
    mammal_lbs=round((float(mammal_kg[i]))*2.2046,3)    
    brain_lbs=round((float(brain_g[i]))*.0022046,3)
    writer.write(mammal_name[i]+','+str(mammal_lbs)+','+str(brain_lbs)+'\n')
writer.close()

如果我不更改列表中的内容或删除内容,代码就可以正常工作。 但是,在代码的其他部分,我添加到列表中,它会给我一个错误:

TypeError: float() argument must be a string or a number.

我觉得我在做傻事。


Tags: 代码name内容列表for错误openfloat
1条回答
网友
1楼 · 发布于 2024-05-17 04:35:06

其中一个对float的调用接收到无效参数。你可以这样追踪

writer = open(file_name, 'w')
for i in range (len(mammal_name)):
    try:
        mammal_lbs=round((float(mammal_kg[i]))*2.2046,3)    
        brain_lbs=round((float(brain_g[i]))*.0022046,3)
    except TypeError:
        print i
        print repr(mammal_kg[i])
        print repr(brain_g[i])
        raise
    writer.write(mammal_name[i]+','+str(mammal_lbs)+','+str(brain_lbs)+'\n')
writer.close()

相关问题 更多 >