← Все вопросы

Почему метод replace() не меняет строку, хотя я его вызвал?

Задан 2 месяца назад6 просмотров1 ответ
0

text = "Hello World Python" text.replace(" ", "_") print(text) # Выводит "Hello World Python" — без изменений! Я ожидал "Hello_World_Python". Метод replace же должен заменять символы. Почему строка не изменилась? Как правильно сделать замену?

1 ответ

0

строки в питоне неизменяемые, поэтому replace (как и все строковые методы) не меняет строку на месте, а возвращает НОВУЮ. ты вызвал text.replace(...), он вернул изменённую строку, но ты её никуда не сохранил — вот text и остался прежним.

надо присвоить результат:

text = text.replace(" ", "_")
print(text)  # Hello_World_Python

это общее правило для строк: upper(), strip(), replace() и прочие всегда отдают новую строку, а оригинал не трогают

Ваш ответ

, чтобы ответить на вопрос.