ValueError and TypeError in python
A Value error is
Raised when a built-in operation or function receives an argument that has the right type but an inappropriate value
the float
function can take a string, ie float('5')
, it's just that the value 'string'
in float('string')
is an inappropriate (non-convertible) string
On the other hand,
Passing arguments of the wrong type (e.g. passing a list when an int is expected) should result in a TypeError
so you would get a TypeError
if you tried float(['5'])
because a list can never be converted into a float.
ValueError a function is called on a value of the correct type, but with an inappropriate value
TypeError : a function is called on a value of an inappropriate type
Just would like to add one more point to David's answer.
TypeError can also occur, when we pass incorrect no of arguments to a function.
eg:
def hello(int x,int y): passhello(12)
This also gives you TypeError:
hello() missing 1 required positional argument: 'y'