What is the difference between str and repr in Python?

Better Stack Team
Updated on January 26, 2023

In Python, str is used to represent a string in a more readable format, while repr is used to represent a string in an unambiguous and official format. The main difference between the two is that str is meant to be more user-friendly, while repr is meant to be more machine-friendly.

For example, consider the following code:

 
s = 'Hello, world!'

print(str(s))
print(repr(s))

This will output the following:

 
Hello, world!
'Hello, world!'

As you can see, the output of str(s) is more readable, while the output of repr(s) includes quotes around the string to make it clear that it is a string.

In general, you should use str when you want to display a string to the user, and repr when you want to represent a string in a way that can be used to recreate the original object, such as in a debugger or when logging the state of an object.

Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →