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

Python中为何无法像调用main()那样调用convert_snake函数?

驼峰转蛇形命名代码无法运行的原因及修正方案

核心运行错误原因

你在代码末尾直接调用convert_snake()时未传入任何参数,但convert_snake函数定义要求接收一个驼峰格式的字符串参数(比如前面代码里的user_input),参数不匹配会直接触发TypeError,导致代码无法正常执行。

你提到的两处代码错误及修正

  • append方法参数错误:列表的append()方法仅能接收一个参数,若要添加带下划线的字符,需先把下划线和转成小写的大写字母拼接成单个字符串,再传入append()。
  • 变量名拼写错误:将错误的charcter修正为正确的character。

修正后的完整代码

def convert_snake(camel_str):
    snake_list = []
    for character in camel_str:
        if character.isupper():
            # 拼接下划线与小写字母,作为单个参数传入append
            snake_list.append('_' + character.lower())
        else:
            snake_list.append(character)
    # 拼接列表为字符串,可选去除开头下划线(根据需求调整)
    snake_case = ''.join(snake_list).lstrip('_')
    return snake_case

# 主逻辑调用
user_input = input("Enter text in Camel case ")
snake_case = convert_snake(user_input)
print(snake_case)

若你习惯用类似main()的方式组织代码,可将主逻辑封装后触发,示例如下:

def convert_snake(camel_str):
    snake_list = []
    for character in camel_str:
        if character.isupper():
            snake_list.append('_' + character.lower())
        else:
            snake_list.append(character)
    return ''.join(snake_list).lstrip('_')

def main():
    user_input = input("Enter text in Camel case ")
    snake_case = convert_snake(user_input)
    print(snake_case)

if __name__ == "__main__":
    main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 15:24:55