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

CS50P作业2问题1:实现camelCase转snake_case是否想复杂了?

针对CS50P作业2驼峰转蛇形问题的简洁解法

根据你目前学到的循环知识,其实有个更直接的解法——直接构建一个新的结果字符串,逐个处理输入的每个字符:

camelcase = input("camelCase: ")
snake_case = ""
for char in camelcase:
    if char.isupper():
        snake_case += "_" + char.lower()
    else:
        snake_case += char
print("snake_case:", snake_case)

思路解释

这个方法的核心就是逐个遍历字符,按需拼接结果:

  • 初始化一个空字符串用来存最终的蛇形命名
  • 遇到小写字母直接追加到结果里
  • 遇到大写字母,先追加下划线,再追加该字母的小写形式

这种写法完全只用了你已经学过的循环、条件判断和字符串拼接,不需要用到partition、split这类相对复杂的字符串方法,逻辑也更直观。

关于你的代码

你能通过尝试不同方法、查阅文档解决问题已经很棒了——尤其是意识到字符串不可变这一点,这是Python里很重要的细节。你的第二个解法虽然能运行,但每次循环都要拆分、插入再拼接原字符串,相对来说步骤更繁琐,而直接构建新字符串的方式效率和可读性都更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:32:36