You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何第一段代码中的replace函数无法生效?

问题:Python中str.replace()调用后未生效的原因

我尝试在以下代码1中将字符串里的"crazy"替换为"strange",但运行后输出原字符串,replace函数未生效:

Code 1

message = "He had a crazy, crazy dream!"
message.replace("crazy","strange")
print(message)

Output:

He had a crazy, crazy dream!

而将replace的返回值赋值给变量后(代码2),替换功能正常:

Code 2

message = "He had a crazy, crazy dream!"
b = message.replace("crazy","strange")
print(b)

Output:

He had a strange, strange dream!

请问代码1存在什么问题?为何replace函数无法生效?


解答

核心原因是Python中的字符串是不可变对象:

  • 调用str.replace()时,这个方法不会修改原字符串本身,而是创建并返回一个包含替换结果的新字符串。
  • 代码1仅调用了replace()但未接收返回的新字符串,原message变量仍指向最初的字符串,因此打印结果还是原内容。
  • 代码2将replace()返回的新字符串赋值给了变量b,打印b就能看到替换后的结果。

你也可以直接把返回值重新赋值给原变量,效果和代码2一致:

message = "He had a crazy, crazy dream!"
message = message.replace("crazy","strange")
print(message)

内容的提问来源于stack exchange,提问作者Defiler 4.0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 23:14:56