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

为什么Python的for循环能正常运行,封装的相同逻辑函数却返回None?

问题原因
  • 函数没有显式返回值:Python规则中,所有函数如果没有写return语句指定返回内容,默认会返回None。另外字符串是Python的不可变类型,你在函数内部修改data变量只是修改了函数作用域内的局部变量,不会改变外部传入的原字符串变量,必须通过返回值把处理后的结果传递出来。你的clean函数处理完字符串后没有加return data语句,所以output拿到的就是默认的None。
  • 两段代码替换逻辑不一致:你第一段可正常运行的代码是把指定特殊符号替换为空字符串"",但封装的函数里是替换为空格" ",如果要和原逻辑输出完全一致,需要修正这个替换值的差异。
修正后的完整代码
def clean(data):
    chars = "()[]?+"
    for ch in chars:
        if ch in data:
            data = data.replace(ch,"")
    # 新增返回语句,把处理后的字符串返回
    return data

bob = "8 (including George Blake, aged 69, and Robert Reynolds, aged 12)"
print(bob)
output = clean(bob)
print(output)

内容的提问来源于stack exchange,提问作者John Prescott

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:15:09