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

Python替换空格为下划线报错:返回函数对象而非处理结果

问题排查与修复方案

核心错误分析

你看到<function replace at ...>的原因是直接打印了函数对象而非调用函数,同时代码本身存在多处逻辑错误,导致功能完全失效。

步骤1:修复函数调用问题

原代码最后两行写的是print(replace),这是输出函数本身的内存地址,必须改成调用函数的写法:print(replace())。

步骤2:修复函数逻辑错误

原函数replace存在多个致命问题:

  • 无返回值:替换字符串的代码仅做了拼接,但没有用return语句返回结果,等于白执行。
  • 替换逻辑错误:sentence[1 : sentence.index(" ")] +"_"+ sentence[sentence.index(" ")+1 : len(sentence)]仅处理了第一个空格的部分字符,无法覆盖所有空格。
  • 无限递归:else分支里return replace()会在无空格时不断调用自身,导致程序崩溃。

步骤3:重构正确的函数逻辑

直接利用Python字符串的replace()方法可以一键替换所有空格,无需手动切片:

sentence = input("Enter the sentence: ")
def replace_space(s):
    # 无空格直接返回原字符串,有空格替换所有空格为下划线
    return s.replace(" ", "_") if " " in s else s

print(replace_space(sentence))

额外优化建议

  • 避免全局变量:将输入的字符串作为参数传入函数,代码更健壮、可复用。
  • 函数命名更清晰:原函数名replace太宽泛,改成replace_space更明确。
  • 修正输入提示拼写:原代码里的Enter de sentence改成Enter the sentence更准确。

内容的提问来源于stack exchange,提问作者Ethan Quesnell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:15:32