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
相关产品推荐
相关产品推荐

