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

使用字典转换camelCase为snake_case时触发NameError的问题

解决camelCase转snake_case时的NameError问题

错误原因

你触发的NameError: name 'uppercaseLetters' is not defined,核心问题是字典定义语法错误:
Python中创建字典需要用=给变量赋值,而你写的uppercaseLetters: { ... }是类型注解语法,它只用来标注变量类型,并不会实际创建字典对象,所以后续循环找不到这个变量。

修正后的代码

把字典定义的冒号改成等号,同时建议避免用input作为变量名(会覆盖Python内置的input()函数):

uppercaseLetters = {
    "A": "_a",
    "B": "_b",
    "C": "_c",
    "D": "_d",
    "E": "_e",
    "F": "_f",
    "G": "_g",
    "H": "_h",
    "I": "_i",
    "J": "_j",
    "K": "_k",
    "L": "_l",
    "M": "_m",
    "N": "_n",
    "O": "_o",
    "P": "_p",
    "Q": "_q",
    "R": "_r",
    "S": "_s",
    "T": "_t",
    "U": "_u",
    "V": "_v",
    "W": "_w",
    "X": "_x",
    "Y": "_y",
    "Z": "_z",
}
input_str = input("camelCase: ").strip()
for letter in uppercaseLetters:
    input_str = input_str.replace(letter, uppercaseLetters[letter])
print("snake_case: ", input_str)

更简洁的优化方案

不用手动编写全字母字典,直接通过字符判断实现转换,代码更精简:

input_str = input("camelCase: ").strip()
# 遍历每个字符,大写字母前加下划线并转小写,其他字符直接保留
snake_case = ''.join(f"_{c.lower()}" if c.isupper() else c for c in input_str)
print("snake_case: ", snake_case)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:55:22