Python代码中.lower()和.upper()方法不生效,问题出在哪里?
代码问题排查及修复
你的代码核心问题是忽略了Python中字符串是不可变对象的特性:所有字符串方法都不会修改原字符串,只会返回处理后的新字符串,你调用方法后没有重新赋值,所以修改全部不生效。
具体错误点
data.strip()仅调用方法但未赋值给变量,原data的首尾空格没有被移除result.lower()转换小写后的结果没有赋值回result,原字符串保持不变result[0].upper()既没有保存大写转换的结果,也无法直接修改原字符串的单个字符,同时如果筛选后result为空会触发索引越界错误
修复后的代码
def AddColon(data): data = data.strip() # 移除空格后重新赋值给data result = '' for i in range(len(data)): if str(data[i]).isalpha(): # 仅筛选字母字符 result = result + data[i] # 先转全小写,再处理首字母大写,增加空值判断避免索引报错 result = result.lower().capitalize() if result else '' finalresult = result + ' : Hello' return finalresult input1 = input('Insert Data : ') print(AddColon(str(input1)))
内容的提问来源于stack exchange,提问作者B v
相关产品推荐
相关产品推荐

