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

