Незмінність Рядків
У Python рядки є незмінними: після створення символи, які вони містять, не можна змінити безпосередньо. Будь-яка "модифікація" фактично створює новий рядок. Це важливо для коректності (неможливість випадкових змін) і для продуктивності (як ви формуєте більші рядки).
Неможливість змін на місці
Можна читати символи за індексом, але не можна присвоювати їм значення.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
Більшість методів рядків повертають новий рядок і не змінюють оригінал.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Ланцюжок методів допустимий, але пам'ятайте, що на кожному кроці створюється новий об'єкт.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Зміна" шляхом створення нового рядка
Використання зрізів, replace або конкатенації для отримання нового значення.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Ефективне складання
Багаторазове використання + у великих циклах може бути повільним (створюється багато проміжних рядків). Поширений підхід — збирати частини та об'єднувати їх один раз:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Більше про шаблони об'єднання та форматування буде розглянуто у наступному розділі.
1. Який рядок намагається змінити рядок на місці та викличе помилку?
2. Що виведе цей код?
3. Потрібно зібрати довгий рядок із багатьох маленьких частин. Який спосіб рекомендовано?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain why strings are immutable in Python?
What are some common mistakes when working with immutable strings?
How can I efficiently build large strings in Python?
Awesome!
Completion rate improved to 5
Незмінність Рядків
Свайпніть щоб показати меню
У Python рядки є незмінними: після створення символи, які вони містять, не можна змінити безпосередньо. Будь-яка "модифікація" фактично створює новий рядок. Це важливо для коректності (неможливість випадкових змін) і для продуктивності (як ви формуєте більші рядки).
Неможливість змін на місці
Можна читати символи за індексом, але не можна присвоювати їм значення.
123456s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
Більшість методів рядків повертають новий рядок і не змінюють оригінал.
123456name = " Alice " name.strip() # returns "Alice" but doesn't change 'name' print(name) # " Alice " name = name.strip() # assign the new value print(name) # "Alice"
Ланцюжок методів допустимий, але пам'ятайте, що на кожному кроці створюється новий об'єкт.
1234msg = " hello\n" clean = msg.strip().upper() print(msg) # original remains " hello\n" print(clean) # "HELLO"
"Зміна" шляхом створення нового рядка
Використання зрізів, replace або конкатенації для отримання нового значення.
1234567s = "data" s = s.replace("t", "T") # "daTa" print(t) s = s[:1] + "A" + s[2:] # "dAta" print(t)
Ефективне складання
Багаторазове використання + у великих циклах може бути повільним (створюється багато проміжних рядків). Поширений підхід — збирати частини та об'єднувати їх один раз:
12parts = ["ID:", " ", "123", "\n", "OK"] result = "".join(parts) # "ID: 123\nOK"
Більше про шаблони об'єднання та форматування буде розглянуто у наступному розділі.
1. Який рядок намагається змінити рядок на місці та викличе помилку?
2. Що виведе цей код?
3. Потрібно зібрати довгий рядок із багатьох маленьких частин. Який спосіб рекомендовано?
Дякуємо за ваш відгук!