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.