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

Google Python Class Verbing练习的更简洁Python实现方法咨询

Google Python Class Verbing练习简洁实现

你的原写法语义基本符合要求,但存在冗余判断,还藏了个小逻辑bug,可以按下面的思路简化:

  • 先处理长度小于3的边界情况,直接返回原串即可,后续逻辑天然是长度≥3的场景,不用重复判断长度条件
  • 不要手动切片判断后缀,Python字符串自带的endswith()方法就是专门用来判断后缀的,写起来简洁还不容易出错
  • 没必要给s重新赋值再返回,字符串拼接完直接返回即可,减少冗余代码

精简后的实现代码

def verbing(s):
    if len(s) < 3:
        return s
    return s + 'ly' if s.endswith('ing') else s + 'ing'

整段核心逻辑仅2行,完全匹配题目规则。

原代码的隐藏bug

你原来写的elif s[:-3] != 'ing'判断逻辑有误:s[:-3]取的是字符串砍掉最后三位之后的前缀部分,根本不是判断结尾。举个反例,传入s='ingabc'时,字符串长度为6≥3,最后三位是'abc',按题目要求应该返回ingabcing,但你的代码里第二个if判断结尾是不是ing?不满足,进不去分支;然后elif判断砍掉最后三位的前缀是不是不等于'ing'?这里前缀正好是'ing',条件不成立,最后函数没有任何返回值,会输出None。换成endswith('ing')就可以完全规避这个问题。

测试用例验证

上述精简代码可以全部通过你给出的测试用例:

  • verbing('hail') 返回 hailing
  • verbing('runt') 返回 runting
  • verbing('swiming') 返回 swimingly
  • verbing('do') 返回 do
  • verbing('hi') 返回 hi

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:06:25