← Все вопросы
Почему метод replace() не меняет строку, хотя я его вызвал?
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() и прочие всегда отдают новую строку, а оригинал не трогают
Ваш ответ
, чтобы ответить на вопрос.