求助:capitalize_letter函数无法运行,求排查代码逻辑问题
代码问题分析与修复
你的代码存在几个核心问题,导致无法实现“将文本中指定字母转为大写”的预期功能:
- 循环遍历
text的字符x但完全未使用这个变量,循环没有实际作用 letter.upper()会生成一个新的大写字符串,但你既没保存这个结果,也没将其应用到原文本中(字符串是不可变类型,调用方法不会直接修改原变量)- 函数直接返回原始的
text,根本没对目标文本做任何修改
修复后的代码示例
如果要实现“把文本中所有指定字母(忽略大小写)转为大写”的功能,可以这样写:
def capitalize_letter(text, letter): target_lower = letter.lower() target_upper = letter.upper() # 遍历每个字符,匹配到目标字母就替换成大写,否则保留原字符 return ''.join([target_upper if c.lower() == target_lower else c for c in text]) print(capitalize_letter('goku', 'O')) # 输出: gOku
如果只需要严格匹配传入的letter(比如传入小写'o'才替换文本里的小写'o'),可以简化成:
def capitalize_letter(text, letter): return text.replace(letter, letter.upper()) print(capitalize_letter('goku', 'o')) # 输出: gOku
内容的提问来源于stack exchange,提问作者Thegreatidiotcoder
相关产品推荐
相关产品推荐

