A string conversion evaluates the contained expression list and
converts the resulting object into a string according to rules
specific to its type.
If the object is a string, a number, None, or a tuple, list or
dictionary containing only objects whose type is one of these, the
resulting string is a valid Python expression which can be passed to
the built-in function eval() to yield an expression with the
same value (or an approximation, if floating point numbers are
involved).
(In particular, converting a string adds quotes around it and converts
``funny'' characters to escape sequences that are safe to print.)
It is illegal to attempt to convert recursive objects (e.g., lists or
dictionaries that contain a reference to themselves, directly or
indirectly.)
The built-in function repr() performs exactly the same
conversion in its argument as enclosing it in parentheses and reverse
quotes does. The built-in function str() performs a
similar but more user-friendly conversion.