นี้เป็นเพราะสายจะไม่เปลี่ยนรูปในหลาม
ซึ่งหมายความว่าX.replace("hello","goodbye")ผลตอบแทนที่ได้สำเนาXที่มีการเปลี่ยนที่ทำ ด้วยเหตุนี้คุณจึงต้องแทนที่บรรทัดนี้:
X.replace("hello", "goodbye")
ด้วยบรรทัดนี้:
X = X.replace("hello", "goodbye")
กว้างกว่านี้เป็นจริงสำหรับทุกวิธีสตริงหลามที่มีการเปลี่ยนแปลงเนื้อหาของสตริง "ในสถานที่"เช่น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