0

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

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() 参数必须是字符串或数字。

我觉得我在做一些愚蠢的事情。

4

1 回答 1

1

你们中的一个电话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()
于 2013-11-08T03:35:08.637 回答