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.

Cite


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


They are well explained in Python Documentation.

I would add examples for both of them:

TypeError:

10 + 'a'

ValueError:

int("hello")