This is because strings are immutable in Python.
Which means that
X.replace("hello","goodbye") returns a copy of
X with replacements made. Because of that you need replace this line:
with this line:
X = X.replace("hello", "goodbye")
More broadly, this is true for all Python string methods that change a string’s content “in-place”, e.g.
You must assign their output to something if you want to use it and not throw it away, e.g.
X = X.strip(' \t') X2 = X.translate(...) Y = X.lower() Z = X.upper() A = X.join(':') B = X.capitalize() C = X.casefold()
and so on.