python中的ValueError和TypeError

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的ValueError和TypeError相关的知识,希望对你有一定的参考价值。

我无法完全理解Python3x中Type和Value错误之间的区别。

当我尝试使用float('string')而不是TypeError时,为什么会得到ValueError?不应该给出一个TypeError因为我传递一个'str'类型的变量要转换成float?

In [169]: float('string')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-169-f894e176bff2> in <module>()
----> 1 float('string')

ValueError: could not convert string to float: 'string'
答案

值错误是

当内置操作或函数接收到具有正确类型但值不合适的参数时引发

float函数可以取一个字符串,即float('5'),它只是'string'中的值float('string')是一个不合适的(不可兑换的)字符串

另一方面,

传递错误类型的参数(例如,在期望int时传递列表)应该导致TypeError

因此,如果您尝试使用TypeError,您将获得float(['5']),因为列表永远不能转换为浮点数。

Cite

以上是关于python中的ValueError和TypeError的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Python 中的“ValueError:找到样本数量不一致的输入变量”问题

Python中的ValueError,数组中的索引数不匹配

Python asyncio/aiohttp:ValueError:Windows 上 select() 中的文件描述符过多

Python中的ValueError:解压缩的值太多[重复]

ValueError:pytorch 中的“str”python 维度太多

ValueError:无法处理 Python/MySQL 中的参数