Esto se debe a que las cadenas son inmutables en Python .
Lo que significa que X.replace("hello","goodbye")devuelve una copia de los Xreemplazos realizados . Por eso necesita reemplazar esta línea:
X.replace("hello", "goodbye")
con esta linea:
X = X.replace("hello", "goodbye")
En términos más generales, esto es cierto para todos los métodos de las cadenas de Python que cambian el contenido de una cadena "in situ" , por ejemplo replace, strip, translate, lower/ upper, join, ...
Debe asignar su salida a algo si desea usarlo y no tirarlo, por ejemplo
X = X.strip(' \t')
X2 = X.translate(...)
Y = X.lower()
Z = X.upper()
A = X.join(':')
B = X.capitalize()
C = X.casefold()
y así.
x += 'a'casos especiales, por ejemplo stackoverflow.com/a/40996908/6260170Todas las funciones de cadena como
lower,upper,stripestán regresando una cadena sin modificar el original. Si intenta modificar una cadena, como podría pensarwell it is an iterable, fallará.fuente