Python str() Function Explained

The Python str() function converts a value into a string.

A string is text in Python. Beginners often use str() when they need to turn a number into text before combining it with other strings.

Quick example

age = 25
text = str(age)

print(text)
print(type(text))

Output:

25
<class 'str'>

Use str() when you need a string version of a value, such as a number before joining or concatenating text.

What str() does

str() converts a value into a string.

That means:

  • An integer like 10 becomes "10"
  • A float like 3.14 becomes "3.14"
  • A boolean like True becomes "True"
  • A list like [1, 2, 3] becomes "[1, 2, 3]"

The result is text, so you can:

  • print it
  • combine it with other strings
  • save it to a file
  • use it in messages

Basic syntax

The basic syntax is:

str(object)

Here, object is the value you want to convert.

str() always returns a string.

A very common beginner use case is converting a number before combining it with text:

score = 100
message = "Your score is " + str(score)

print(message)

Output:

Your score is 100

If you are not sure what type a value has, the type() function can help you check.

Simple examples

Convert an integer to a string

number = 10
text = str(number)

print(text)
print(type(text))

Output:

10
<class 'str'>

Convert a float to a string

price = 3.14
text = str(price)

print(text)
print(type(text))

Output:

3.14
<class 'str'>

Convert a boolean to a string

value = True
text = str(value)

print(text)
print(type(text))

Output:

True
<class 'str'>

Convert a list to a string

items = [1, 2, 3]
text = str(items)

print(text)
print(type(text))

Output:

[1, 2, 3]
<class 'str'>

This gives you the string form of the list. It does not join the items into a clean sentence.

When to use str()

Use str() when you want a text representation of another data type.

Common cases:

  • Before concatenating text with numbers
  • Before writing mixed values to a file
  • Before displaying values in messages
  • When you want text instead of a numeric value

Example:

name = "Maya"
age = 25

message = name + " is " + str(age) + " years old."
print(message)

Output:

Maya is 25 years old.

If you need help with cleaner message building, see how to format strings in Python.

str() vs print()

These two functions do different jobs:

  • str() converts a value and returns a string
  • print() displays output on the screen

Example:

value = 42

text = str(value)
print(text)
print(type(text))
print(type(value))

Output:

42
<class 'str'>
<class 'int'>

Notice:

  • str(value) created a string
  • print() only displayed values
  • print() did not change value from int to str

You can learn more about output with the print() function.

str() vs repr() for beginners

For beginners, the main idea is simple:

  • str() is the more readable text version
  • repr() is more developer-focused

In everyday beginner code, you will usually need str() much more often.

For example, when showing values in a message, str() is usually the right choice.

Common beginner mistakes

Thinking str() changes the original variable

str() does not modify the original value. It returns a new string.

age = 25
text = str(age)

print(age)
print(type(age))
print(text)
print(type(text))

Output:

25
<class 'int'>
25
<class 'str'>

Forgetting to store the result

This works:

age = 25
text = str(age)

But if you only do this:

age = 25
str(age)

the conversion happens, but you did not save the result anywhere.

Using str() too early

If you convert a number to a string, you can no longer use it directly for math.

price = 10
text_price = str(price)

# print(text_price + 5)   # This would cause an error

If you need a number again, convert it back with int() or float(), depending on the situation.

Expecting str(list_value) to create user-friendly formatting

This:

items = ["apple", "banana", "orange"]
print(str(items))

prints:

['apple', 'banana', 'orange']

That is the string representation of the list. It is not the same as a nicely formatted sentence.

Return value

str() returns a new string.

Important points:

  • It always returns a string
  • It does not modify the original object
  • You can use type() to confirm the result

Example:

value = 99
converted = str(value)

print(converted)
print(type(converted))

Output:

99
<class 'str'>

Common causes of confusion

Beginners usually run into trouble with str() for these reasons:

  • Trying to add a string and an integer without conversion
  • Confusing conversion with printing
  • Using str() too early and then trying to do math on the result
  • Assuming list or dictionary conversion creates user-friendly formatting

A very common related error happens when you try to combine text and a number directly. If that is your problem, see how to fix TypeError: can only concatenate str not int to str.

Useful debugging steps

If you are not sure what is happening, print both the value and its type:

value = 25

print(value)
print(type(value))

converted = str(value)
print(converted)
print(type(converted))

This helps you see exactly when a value changes from int, float, or another type into str.

FAQ

What does str() return in Python?

It returns a string version of the value you pass in.

Does str() change the original variable?

No. It creates and returns a new string.

Can str() convert numbers to text?

Yes. It can convert integers, floats, and other values into strings.

Why use str() before combining text and numbers?

Because Python does not let you directly concatenate a string with an integer or float.

Is str() the same as print()?

No. str() converts to text. print() shows output.

See also