str() is mostly used to create output for end users. repr() is mainly used for debugging and exploring.
For example, if you suspect a string has non-printing characters in it, or a float has a small rounding error, repr() will show you; str() may not be useful in this case
repr() can also be useful for generating literals to paste into your source code.