Це тому, що струни незмінні в Python .
Що означає, що X.replace("hello","goodbye")
повертає копію X
із зробленими замінами . Через це вам потрібно замінити цей рядок:
X.replace("hello", "goodbye")
за допомогою цього рядка:
X = X.replace("hello", "goodbye")
У більш широкому сенсі, це вірно для всіх строкових методів Python , що змінити вміст струни «на місці» , наприклад replace
, strip
, translate
, lower
/ upper
, join
...
Ви повинні призначити їх вихід чомусь, якщо ви хочете використовувати його, а не викидати його, наприклад
X = X.strip(' \t')
X2 = X.translate(...)
Y = X.lower()
Z = X.upper()
A = X.join(':')
B = X.capitalize()
C = X.casefold()
і так далі.
x += 'a'
особливого випадку, наприклад , stackoverflow.com/a/40996908/6260170