Điều này là do các chuỗi là bất biến trong Python .
Điều đó có nghĩa là X.replace("hello","goodbye")
trả về một bản sao X
với các thay thế được thực hiện . Do đó, bạn cần thay thế dòng này:
X.replace("hello", "goodbye")
với dòng này:
X = X.replace("hello", "goodbye")
Nói rộng hơn, điều này là đúng cho tất cả các phương pháp chuỗi Python mà thay đổi nội dung của một chuỗi "tại chỗ" , ví dụ như replace
, strip
, translate
, lower
/ upper
, join
...
Bạn phải gán đầu ra của chúng cho một cái gì đó nếu bạn muốn sử dụng nó và không vứt nó đi, vd
X = X.strip(' \t')
X2 = X.translate(...)
Y = X.lower()
Z = X.upper()
A = X.join(':')
B = X.capitalize()
C = X.casefold()
và như thế.
x += 'a'
trường hợp đặc biệt, ví dụ stackoverflow.com/a/40996908/6260170