Esto se debe a que las cadenas son inmutables en Python .
Lo que significa que X.replace("hello","goodbye")
devuelve una copia de los X
reemplazos 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
,strip
están regresando una cadena sin modificar el original. Si intenta modificar una cadena, como podría pensarwell it is an iterable
, fallará.fuente