Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn String Immutability | Strings
Data Types in Python

bookString Immutability

In Python, strings are immutable: once created, the characters they contain cannot be changed in place. Any "modification" you do actually creates a new string. This matters for correctness (no accidental in-place edits) and for performance (how you build larger strings).

No In-Place Edits

You can read characters by index, but you cannot assign to them.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

Most string methods return a new string and leave the original unchanged.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Chaining is fine, but remember you're getting a new object each step.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Modifying" by creating a new string

Use slicing, replace, or concatenation to produce a new value.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Efficient building

Repeated + in large loops can be slow (many intermediate strings). A common pattern is to collect pieces and join once:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Note

You'll learn more joining/formatting patterns in the next chapter.

1. Which line attempts to modify a string in place and will raise an error?

2. What will the code output?

3. You need to assemble a long string from many small pieces. What's recommended?

question mark

Which line attempts to modify a string in place and will raise an error?

Select the correct answer

question mark

What will the code output?

Select the correct answer

question mark

You need to assemble a long string from many small pieces. What's recommended?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 4

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

Suggested prompts:

Can you explain why strings are immutable in Python?

What happens if I try to modify a string in place?

How can I efficiently build large strings in Python?

Awesome!

Completion rate improved to 5

bookString Immutability

Swipe to show menu

In Python, strings are immutable: once created, the characters they contain cannot be changed in place. Any "modification" you do actually creates a new string. This matters for correctness (no accidental in-place edits) and for performance (how you build larger strings).

No In-Place Edits

You can read characters by index, but you cannot assign to them.

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

Most string methods return a new string and leave the original unchanged.

123456
name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
copy

Chaining is fine, but remember you're getting a new object each step.

1234
msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
copy

"Modifying" by creating a new string

Use slicing, replace, or concatenation to produce a new value.

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
copy

Efficient building

Repeated + in large loops can be slow (many intermediate strings). A common pattern is to collect pieces and join once:

12
parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
copy
Note
Note

You'll learn more joining/formatting patterns in the next chapter.

1. Which line attempts to modify a string in place and will raise an error?

2. What will the code output?

3. You need to assemble a long string from many small pieces. What's recommended?

question mark

Which line attempts to modify a string in place and will raise an error?

Select the correct answer

question mark

What will the code output?

Select the correct answer

question mark

You need to assemble a long string from many small pieces. What's recommended?

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 3. ChapterΒ 4
some-alt